Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1400to1404
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Aktenzeichen aus String filtern

Aktenzeichen aus String filtern
08.01.2015 21:44:01
Klaus
Hallo Forumsgemeinde,
ich verzweifle an einem Problem, welches ich in VBA nicht gelöst bekomme:
Ich möchte aus einem Textfeld ein Aktenzeichen auslesen.
Das Aktenzeichen hat immer das Format ##.##.## und kommt in dem zu prüfenden Textfeld immer an unterschiedlicher Position vor. Andere Zahlen können zusätzlich auch noch vorhanden sein.
Ob ein Aktenzeichen vorhanden ist, prüfe ich mit
If MeinText Like "*##.##.##*" Then ...
Das funktioniert gut.
Was nicht funktioniert ist die Bestimmung der Position mit
Aktenzeichen = InStr(1, MeinText, "##.##.##")
Das Format des Ergebnisses (Zahl oder String) wäre nicht so wichtig.
Hat jemand eine Idee dazu?
Grüße aus dem verregneten Rheinland und einen netten Abend noch.
Klaus

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Das kann mit Instr nichts wdn, denn diese Fkt ...
08.01.2015 22:27:38
Luc:-?
…kennt keine Platzhalter, Klaus;
wenn per Like-Vgl klar ist, dass ein AZ enthalten ist, muss der Text zeichenweise durchlaufen wdn, um den Anfang der AZ-ZeichenFolge zu finden. Der ist gefunden, wenn eine weitere Like-Operation True ergibt: If MeinText Like "##.##.##*" Then
Zum zeichenweisen Durchlaufen kannst du eine Do…Loop- oder For…Next-Schleife wählen. Bei ersterer musst du den Zeichen­Positions­Zähler selber erhöhen. Der Zähler bzw die LaufVariable hat dann den erforderlichen Wert, wenn du die Schleife bei wahrem 2.Like-Vgl verlässt (Exit Do/For).
Gruß, Luc :-?

Anzeige
AW: Das kann mit Instr nichts wdn, denn diese Fkt ...
09.01.2015 20:56:44
Klaus
Hallo Luc,
so etwas in der Art hatte ich befürchtet. :-(
Die Verkürzung des Strings bis die Zahlenkette am Anfang steht hatte ich als
letztes Möglichkeit nach hinten geschoben. Ich habe auf eine elegantere Möglichkeit
gehofft.
Aber vielen Dank für deine Antwort und ein schönes Wochenende
Gruß
Klaus
PS: Das Forum ist klasse! Macht weiter so! :-)

AW: Das kann mit Instr nichts wdn, denn diese Fkt ...
09.01.2015 22:55:39
Mullit
Hallo Klaus,
da gibt's mit dem Regexp-Objekt noch andere Möglichkeiten:
Option Explicit

Public Sub test()
    Dim objRegEx As Object, objMatch As Object
    Dim strText As String
    Dim intIndex As Integer
    strText = "Hier 45. steht 45.6779.88 irgendwo mein 34555440.20.304444 Aktenzeichen...."
    Set objRegEx = CreateObject("vbscript.regexp")
    With objRegEx
        .Global = True
        .IgnoreCase = True
        .MultiLine = False
        .Pattern = "\d\d\.\d\d\.\d\d"
        Set objMatch = .Execute(strText)
    End With
    For intIndex = 1 To objMatch.Count
        Debug.Print objMatch(intIndex - 1)
    Next
    Set objRegEx = Nothing
    Set objMatch = Nothing
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 12

s.a.:
http://msdn.microsoft.com/en-us/library/ms974570.aspx
Gruß, Mullit

Anzeige
AW: Das kann mit Instr nichts wdn, denn diese Fkt ...
10.01.2015 12:01:58
Klaus
Hallo Mullit,
DAS ist genau DAS was ich gesucht habe.
Mit deim Code hilfst du mir eine ganze Ecke weiter! *** freu ***
Ein fettes Dankeschön dafür!!!
Schönes Wochende
Gruß
Klaus

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige