Ich versteh nur leider nicht ganz was da eig passiert.
Wie gesagt: Ob es Dir gefallen wird... :)
er gibt mir dann immer den mg String wieder, im obigen Beispiel "5mg"
Richtig. Gemessen an dem obigen Beispiel. Wenn Du die Zeichenkette nun von 5mg auf 50mg, 500mg, 5000mg änderst, erkennst Du womöglich das dahinterliegende Potential.
(zugegebenermaßen ineffiziente) Verschachtelung von finden und links/rechts.
Sehe ich genauso. Gast8123 übrigens auch.
da funktioniert deine Funktion nicht.
Richtig - wollte ich aber auch gar nicht erreichen.
Ich kann nicht wissen, welche Möglichkeiten es gibt oder Du abzudecken hast. Ich kann das nicht wissen. Aber Du :)
Aber um nochmal zum Eingangspost zurück zu kommen: Das Problem ist das "3x10" sicher zu identifieren
Gemessen an dem Erfolgsbeispiel "5mg", hoffte Ich ehrlich gesagt, dass Du davon ableiten wirst. Hier sollte Dich längst die Frage beschäftigen: Wenn das Eine geht, geht das Andere dann auch?
Noch n Gedicht:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | Option Explicit
Public Enum enmArt
Bezeichnung1
Milligramm
Bezeichnung2
Tablettenform
Bezeichnung3
End Enum
Function getDescription( ByRef rng As Excel.Range, Optional Art As enmArt) As String
Dim o As Object
Select Case Art
Case Is = enmArt.Bezeichnung1
Case Is = enmArt.Milligramm
With CreateObject( "VBScript.RegExp" )
.Pattern = "[0-9]{1,4}mg"
If (.Test(rng.Value)) = True Then
Set o = .Execute(rng.Value)
getDescription = o(0).Value
End If
End With
Case Is = enmArt.Bezeichnung2
Case Is = enmArt.Tablettenform
With CreateObject( "VBScript.RegExp" )
.Pattern = "[0-9]{1,2}[x]{1}[0-9]{1,3}"
If (.Test(rng.Value)) = True Then
Set o = .Execute(rng.Value)
getDescription = o(0).Value
End If
End With
Case Is = enmArt.Bezeichnung3
End Select
End Function
|
Aber jetzt schreibst Du in Zelle A1 : =getDescription(A2;3)
Spätestens jetzt wäre zumindest ein Ahhhh angebracht, findest Du nicht auch? :)
Wenn Du den dahinterliegenden "Zauber" besser durchleuchten möchtest, empfehle Ich Dir, Dich mit "Regulären Ausdrücken" näher zu beschäftigen.
Hierzu folgende Links:
Regulärer Ausdruck – Wikipedia
Reguläre Ausdrücke - Das VBA-Tutorial
Fazit:
Du wirst mit dem gezeigten Code nicht alle Deine Möglichkeiten abdecken. Aber Du siehst nun eine mögliche Marschrichtung.
Wenn Du allerdings glaubst, Du "programmierst" mal geschwind und nebenbei Dein Vorhaben via VBA, weil man sagt, dass das wohl eines der leichtesten Skriptsprachen zu erlernen ist, dann wünsche Ich Dir nicht nur viel Erfolg, sondern recht viel Sitzfleisch und einen langen Atem.
Ich kann Dir die Tür nur zeigen, durchgehen musst Du schon selbst, Neo ;-)
|