Hallo Zusammen, ich habe einen Datensatz (Straßenliste) in der stehen die Straßen in allen Varianten mit Hausnummern. Beispiele: 10, NEUTURMSTRASSE 12-14 MAXIMILIAN STRASSE 2 DEPT. STORE NEUHAUSER STRASSE 18 ALTE AKADEMIE*NEUHAUSER STRA?E 8-10 AMALIENSTR.24 RGB. ARNULFSTR. 61-71 AUGUSTENSTR. 3 LADENGESCHAEFT BAYERSTRASSE 3-5/EINGANG ZWEIGSTR.5 ERZGIESSEREISTR. 24/III LANDSBERGER STR. 234 C, 1.OG
Hat jemand eine Idee wie ich evtl mit VBA mit den Straßenendungen (Str, Weg, etc....) eiine Textsuche machen kann...?
ich habe die Angewohnheiğt solche Aufgaben immer in einer kopierten Datei zu bearbeiten. Schutz for Datenverlust.
anbei ein kleines Makro mit dem man alle Arten von ;Strassen suchen und sich seitlich in 2 Spalten weiter notieren kann. Diese Spalten müssen natürlich frei sein. Oder den Offset von Offset(0, 2) auf (0, n) erhöhen. Sinn macht es wenn man vorher in Spalte A eine fortlaufende Lauf-Nr einfügt, sich Button zum Sortieren anlegt, und den Datensatz nach Strasse sortiert. Die Lauf-Nr braucht man zum Zurück-Sortieren. Damit findet man all Arten der Strassenangabe. Beim Sortieren blieben die Arten, die man nicht im Mkaro erfasst hat ja übrig. Deshalb sortiere ich gerne zur Kontrolle.
mfg Gast 123
Code:
Option Explicit '14.9.2016 Gast 123 für Clever Forum
Const Bereich = "A2:A13" 'deinen Such Bereich angeben
'Modul zum "STRASSE" auflisten
Sub Strassen_ausfiltern() Dim AC As Object, Label As String For Each AC In Range(Bereich) Label = Empty 'Label löschen
'STRASSE If InStr(AC, " STRASSE") Then Label = " STRASSE" AC.Offset(0, 2) = " STRASSE" ElseIf InStr(AC, "STRASSE") Then Label = " STRASSE" AC.Offset(0, 2) = "STRASSE" End If
'STRA?E If InStr(AC, " STRA?E") Then Label = " STRA?E" AC.Offset(0, 2) = " STRA?E" ElseIf InStr(AC, "STRA?E") Then Label = " STRA?E" AC.Offset(0, 2) = "STRA?E" End If
'STR. mit Punkt If InStr(AC, " STR.") Then Label = Label & ", STR." AC.Offset(0, 2) = " STR." ElseIf InStr(AC, "STR.") Then Label = Label & ",STR." AC.Offset(0, 2) = "STR."
'STR (ohne Punkt) If InStr(AC, "STRASSE") = 0 Then ElseIf InStr(AC, "STR.") Then ElseIf InStr(AC, " STR") Then Label = Label & ", STR" AC.Offset(0, 2) = " STR" ElseIf InStr(AC, "STR") Then Label = Label & ",STR" AC.Offset(0, 2) = "STR" End If End If
If InStr(AC, " WEG") Then Label = Label & ", WEG" AC.Offset(0, 2) = " WEG" ElseIf InStr(AC, "WEG") Then Label = Label & ",WEG" AC.Offset(0, 2) = "WEG" End If
'GASSE If InStr(AC, " GASSE") Then Label = Label & ", GASSE" AC.Offset(0, 2) = " GASSE" ElseIf InStr(AC, "GASSE") Then Label = Label & ",GASSE" AC.Offset(0, 2) = "GASSE" End If
'ALLEE If InStr(AC, " ALLEE") Then Label = Label & ", ALLEE" AC.Offset(0, 2) = " ALLEE" ElseIf InStr(AC, "ALLEE") Then Label = Label & ",ALLEE" AC.Offset(0, 2) = "ALLEE" End If
'CHAUSSE If InStr(AC, " CHAUSSE") Then Label = Label & ", CHAUSSE" AC.Offset(0, 2) = " CHAUSSE" ElseIf InStr(AC, "CHAUSSE") Then Label = Label & ",CHAUSSE" AC.Offset(0, 2) = "CHAUSSE" End If
'1. Komma in Label abschneiden Label = Trim(Mid(Label, 2, 100))
'auflisten wenn 2. Strasse in Label If InStr(Label, ",") Then AC.Offset(0, 2).Cells(1, 2) = Label End If Next AC End Sub
Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:1 Nutzer sagt Danke an Gast 123 für diesen Beitrag 28 • lycom87
ich habe die Angewohnheiğt solche Aufgaben immer in einer kopierten Datei zu bearbeiten. Schutz for Datenverlust.
anbei ein kleines Makro mit dem man alle Arten von ;Strassen suchen und sich seitlich in 2 Spalten weiter notieren kann. Diese Spalten müssen natürlich frei sein. Oder den Offset von Offset(0, 2) auf (0, n) erhöhen. Sinn macht es wenn man vorher in Spalte A eine fortlaufende Lauf-Nr einfügt, sich Button zum Sortieren anlegt, und den Datensatz nach Strasse sortiert. Die Lauf-Nr braucht man zum Zurück-Sortieren. Damit findet man all Arten der Strassenangabe. Beim Sortieren blieben die Arten, die man nicht im Mkaro erfasst hat ja übrig. Deshalb sortiere ich gerne zur Kontrolle.
mfg Gast 123
Code:
Option Explicit '14.9.2016 Gast 123 für Clever Forum
Const Bereich = "A2:A13" 'deinen Such Bereich angeben
'Modul zum "STRASSE" auflisten
Sub Strassen_ausfiltern() Dim AC As Object, Label As String For Each AC In Range(Bereich) Label = Empty 'Label löschen
'STRASSE If InStr(AC, " STRASSE") Then Label = " STRASSE" AC.Offset(0, 2) = " STRASSE" ElseIf InStr(AC, "STRASSE") Then Label = " STRASSE" AC.Offset(0, 2) = "STRASSE" End If
'STRA?E If InStr(AC, " STRA?E") Then Label = " STRA?E" AC.Offset(0, 2) = " STRA?E" ElseIf InStr(AC, "STRA?E") Then Label = " STRA?E" AC.Offset(0, 2) = "STRA?E" End If
'STR. mit Punkt If InStr(AC, " STR.") Then Label = Label & ", STR." AC.Offset(0, 2) = " STR." ElseIf InStr(AC, "STR.") Then Label = Label & ",STR." AC.Offset(0, 2) = "STR."
'STR (ohne Punkt) If InStr(AC, "STRASSE") = 0 Then ElseIf InStr(AC, "STR.") Then ElseIf InStr(AC, " STR") Then Label = Label & ", STR" AC.Offset(0, 2) = " STR" ElseIf InStr(AC, "STR") Then Label = Label & ",STR" AC.Offset(0, 2) = "STR" End If End If
If InStr(AC, " WEG") Then Label = Label & ", WEG" AC.Offset(0, 2) = " WEG" ElseIf InStr(AC, "WEG") Then Label = Label & ",WEG" AC.Offset(0, 2) = "WEG" End If
'GASSE If InStr(AC, " GASSE") Then Label = Label & ", GASSE" AC.Offset(0, 2) = " GASSE" ElseIf InStr(AC, "GASSE") Then Label = Label & ",GASSE" AC.Offset(0, 2) = "GASSE" End If
'ALLEE If InStr(AC, " ALLEE") Then Label = Label & ", ALLEE" AC.Offset(0, 2) = " ALLEE" ElseIf InStr(AC, "ALLEE") Then Label = Label & ",ALLEE" AC.Offset(0, 2) = "ALLEE" End If
'CHAUSSE If InStr(AC, " CHAUSSE") Then Label = Label & ", CHAUSSE" AC.Offset(0, 2) = " CHAUSSE" ElseIf InStr(AC, "CHAUSSE") Then Label = Label & ",CHAUSSE" AC.Offset(0, 2) = "CHAUSSE" End If
'1. Komma in Label abschneiden Label = Trim(Mid(Label, 2, 100))
'auflisten wenn 2. Strasse in Label If InStr(Label, ",") Then AC.Offset(0, 2).Cells(1, 2) = Label End If Next AC End Sub
Hallo, schaut schon mal spannend aus ::) kannst du mir das bitte einbauen ich bekomme es irgendwie nicht hin .
anbei die Beispieldatei mit erweitertem Makro für Strasse und Sortiermarko zurück. Man bekommt durch das Sortieren mehr Übersicht. Einige Fehler die ich erkannte werden als eigener Begriff ausgefiltert, wie z.B. GmbH anstatt Strasse. Beim speichern meckerte mein PC das er nicht alles speichern konnte. Aktive Steuerelemente könnten fehlen (Excel 2007) Die Makros laufen aber.
Bei Strasse unterscheide ich Strasse direkt am Wort, ohne Leerzeichen, und Strasse oder Weg etc. mit Leerzeichen. Eindeutige Fehler wie "STZR" oder "ASSE" sind in der Fehlerspalte erfasst.