Thema Datum  Von Nutzer Rating
Antwort
23.02.2022 11:51:19 Gast123
NotSolved
23.02.2022 13:15:09 Mase
NotSolved
23.02.2022 14:31:37 Gast123
NotSolved
23.02.2022 14:55:45 Gast8132
NotSolved
Rot Hab Dir was, aber ob es Dir gefallen wird...
23.02.2022 15:45:17 Mase
NotSolved
23.02.2022 15:46:30 Links
NotSolved

Ansicht des Beitrags:
Von:
Mase
Datum:
23.02.2022 15:45:17
Views:
419
Rating: Antwort:
  Ja
Thema:
Hab Dir was, aber ob es Dir gefallen wird...

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:

Option Explicit
 
'*** folgende Aufzählung willkürlich gewählt
Public Enum enmArt
    Bezeichnung1    '   = 0
    Milligramm      '   = 1
    Bezeichnung2    '   = 2
    Tablettenform   '   = 3
    Bezeichnung3    '   = 4
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
            '// Regulärer Ausdruck
         
        Case Is = enmArt.Milligramm
            '// Regulärer Ausdruck
            With CreateObject("VBScript.RegExp")
                .Pattern = "[0-9]{1,4}mg"                   '<--- das zu suchende Muster bei Milligramm
                If (.Test(rng.Value)) = True Then
                    Set o = .Execute(rng.Value)
                    getDescription = o(0).Value
                End If
            End With
         
        Case Is = enmArt.Bezeichnung2
            '// Regulärer Ausdruck
         
        Case Is = enmArt.Tablettenform
            '// Regulärer Ausdruck
            With CreateObject("VBScript.RegExp")
                .Pattern = "[0-9]{1,2}[x]{1}[0-9]{1,3}"     '<--- das zu suchende Muster bei Tablettenform
                If (.Test(rng.Value)) = True Then
                    Set o = .Execute(rng.Value)
                    getDescription = o(0).Value
                End If
            End With
            
        Case Is = enmArt.Bezeichnung3
            '// Regulärer Ausdruck
             
    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 ;-)

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
23.02.2022 11:51:19 Gast123
NotSolved
23.02.2022 13:15:09 Mase
NotSolved
23.02.2022 14:31:37 Gast123
NotSolved
23.02.2022 14:55:45 Gast8132
NotSolved
Rot Hab Dir was, aber ob es Dir gefallen wird...
23.02.2022 15:45:17 Mase
NotSolved
23.02.2022 15:46:30 Links
NotSolved