'6' aus String 'temp6.xls' extrahieren

juten tach!

weiss jemensch wie ich
die „6“ aus String „temp6.xls“,
bzw auch „12“ aus „temp12.xls“,(also auch eine mehrzeilige zahl) extrahieren kann?

vielen dank schonmal…

grüße
häpäß

Hallo!

Die Problembeschreibung ist etwas dünn, also nenn ich mal verschiedene Möglichkeiten:

Steht der Dateiname in einer Zelle und Du willst z. B. eine „12“ finden, dann geht das mit den Funktionen „suchen()“ und „finden()“.

Willst Du die Zahl an einer bestimmten Stelle (z. B. an der 7. und 8. Stelle) auslesen, geht das mit der teil()-Funktion

=teil(„tmpdat12.xls“;7;2) bringt 2 Zeichen ab der 7. Stelle

Im VBA-Code heißt diese Funktion mid() und die obigen (suchen/finden) heißen instr() (inString)

Hilft das?
(Woly)

das ganze in vba
hai woly

danke für deine schnelle antwort…
und sorry für meine wohl zukurz geratenede anfrage…

also ich brauch aus einer stringvariable mit einem wert wie
zb. „tmp6.xls“ die „6“ bzw eine „12“ aus „temp12.xls“.
das ganze soll in einer sub stattfinden…

gruß
h.

Hallo!

Die Problembeschreibung ist etwas dünn, also nenn ich mal
verschiedene Möglichkeiten:

Steht der Dateiname in einer Zelle und Du willst z. B. eine
„12“ finden, dann geht das mit den Funktionen „suchen()“ und
„finden()“.

Willst Du die Zahl an einer bestimmten Stelle (z. B. an der 7.
und 8. Stelle) auslesen, geht das mit der teil()-Funktion

=teil(„tmpdat12.xls“;7;2) bringt 2 Zeichen ab der 7. Stelle

Im VBA-Code heißt diese Funktion mid() und die obigen
(suchen/finden) heißen instr() (inString)

Hilft das?
(Woly)

Hi herpes,

versuch’s mal mit:

z = Val(Mid(a, 5, 1))
v = Val(Mid(a, 6, 1))
If v 0 Then z = 10 * z + v

Das liefert bei a = „temp12.xls“: z = 12 und bei a = „temp6.xls“: z = 6.

Gruß

Sculpture

hi sculpture :sunglasses:

also wenn ich
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
z = „temp6.xls“
z = Val(Mid(a, 5, 1))
v = Val(Mid(a, 6, 1))
If v 0 Then z = 10 * z + v
MsgBox z
End Sub

mache, kommt bei mir immer nur „0“ raus…
kannst du mir kurz erklären was val(Mid()) genau ist?
(dummerweise funktioniert meine vba-hilfe nicht…)
vielleicht krieg ichs dann ja hin…

grüüüüüüüüüüüüüsse!!!
herpes

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi herpes,

Du sollst auch nicht z = „temp6.xls“, sondern a = … schreiben. Dann geht es. Der Code macht folgendes:

z = Val(Mid(a, 5, 1))

Extrahiert den 5. Buchstaben aus dem String a, das heißt: Steht in a „temp6.xls“, so ist der 5. Buchstabe „6“. Die Mid-Funktion wird allgemein so verwendet: Mid(, , ), etwa: Mid(„HalloHerpes!“, 6, 6) = „Herpes“. Mit Val wird dieser Buchstabe in eine Zahl verwandelt (Val(„6“) = 6, Val(„a“) = 0), damit damit weitergerechnet werden kann.

v = Val(Mid(a, 6, 1))

Hier mache ich das gleiche mit dem 6. Buchstaben. Dieser ist nun entweder eine Ziffer (bei „temp12.xls“) oder der Punkt (bei „temp6.xls“).

If v 0 Then z = 10 * z + v

Wenn das 6. Zeichen der „.“ war, ist v nachher 0 (Val(".") = 0). Dann wird nichts weiter gemacht, und in z steht die gesuchte Zahl. Für „temp12.xls“ ist v aber nicht 0, sondern 2. Wir haben es hier also mit einer zweiziffrigen Zahl zu tun. Nun steht in z die 1 und in v die 2. Damit in z nachher die ganze Zahl 12 steht, wird also einfach 10*z+v gerechnet.

Alles klar???

Ciao

Sculp

danke! habs jetzt verstanden!!!
hi sculpi…
wiedermal super erklärt…
leider ist meine excell-hilfe nicht funktionstüchtig…
da könnte ich bestimmt auch selber mal nachscheuen (auch wenn du natürlich vie viel besser bist :smile: )
hab das porblem auch schon gepostet…
anyway, mein bester vielen dank

gruß
herpes

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]