Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Excel VB6 Makro - Text (Versionsummer) zerlegen

Mic2004 / 3 Antworten / Baumansicht Nickles

Hallo zusammen!

Ich suche mal wieder nach einem Code für ein Excel-Makro. Ich möchte gern eine Versionsnummer aus einer Excel-Tabelle in einzelne Zeichen in mehrere Spalten in eine andere Excel-Tabelle eintragen. Mein Problem ist, wie ich die Versionsnummer per Makro zerlegt bekomme.

Beispiel:
Die Versionsangabe 3.11
Soll zerlegt werden in
Spalte A: 3
Spalte B: 11

Dabei können die Anzahlen der Ziffern variieren (z.B.: 3.1 oder 5.111 oder 100.2 usw.)

Das Makro muss also den Punkt erkennen und dann „davor“ und „danach“ zerlegen.

Verwenden tue ich MS Excel 2003 mit VB6.

Kann mir da einer von euch weiter helfen?

Danke und Grüße,
Mic2004.

bei Antwort benachrichtigen
mawe2 Mic2004 „Excel VB6 Makro - Text (Versionsummer) zerlegen“
Optionen

Dafür brauchst Du kein Makro! das geht mit einfachen Zeichenkettenfunktionen (Kategorie: "Text").

Beispiel: In Zelle A1 steht die Versionsnumnmer 3.11

In Zelle B1 trägst Du folgenden Ausdruck ein:

=LINKS(A1;SUCHEN(".";A1;1)-1)
Dieser Ausdruck liefert die "3".


In Zelle C1 trägst Du folgenden Ausdruck ein:
=RECHTS(A1;LÄNGE(A1)-SUCHEN(".";A1;1))
Dieser Ausdruck liefert die "11".


Damit ist der Inhalt von A1 zerlegt.

Gruß, mawe2
bei Antwort benachrichtigen
neanderix Mic2004 „Excel VB6 Makro - Text (Versionsummer) zerlegen“
Optionen

Alternativ zu der lösung von mawe:

schau dir mal die VBA-funktion "Split" an.

Lenkst du deren Ausgabe in ein nicht dimensioniertes Array kannst du dessen Inhalt wiederum in einen Range schreiben.

Also der Art:

Public Function Aufteilen(ByVal wert as variant)
Dim arr() as Variant

arr=split(wert,".")

wert=arr

end function

Computers are like airconditioners - they stop working properly when you open Windows Ich bin unschuldig, ich habe sie nicht gewählt!
bei Antwort benachrichtigen
Mic2004 Nachtrag zu: „Excel VB6 Makro - Text (Versionsummer) zerlegen“
Optionen

Hallo,

diese ganze Funktion habe ich zwar nicht verwendet aber dieser Split-Befehl war genau das, was ich suchte. Vielen Dank!

Grüße,
Mic2004.

bei Antwort benachrichtigen