Herbers Excel-Forum - das Archiv

Automatisches suchen und löschen??

Bild

Betrifft: Automatisches suchen und löschen??
von: Roland

Geschrieben am: 27.12.2006 19:13:48
Hallo,
ich benutze Excel 2004 für MAC und habe folgende(s) Frage/Problem.
Ich habe eine Adress-Datenbank in Excel. In zahlreichen Feldern dieser Datenbank (aber alle Felder in einer Spalte) befinden sich fehlerhafte Daten, die ich über die suchen-Funktion anzeigen lassen kann. Wenn ein Fehler in einem Feld gefunden worden ist, möchte ich aber die ganze Zeile löschen, in der sich das fehlerhafte Feld befindet.
Von Hand klappt das wie folgt super.
1. Klick in die Spalte, in der nach den fehlerhaften Feldern gesucht werden soll
2. Aufrufen der suchen-Funktion und definieren der Suchkriterien
3. Wenn ein fehlerhaftes Feld gefunden worden ist, schließen der suchen-Funktion
4. Markieren der Zeile, in der sich das fehlerhafte Feld befindet und löschen der ganzen Zeile
5. Weiter bei Punkt 1.
Meine Frage: Gibt es eine Möglichkeit, diesen Vorgang zu automatisieren? Denn wenn ich mich so durch 120.000 Datensätze/Zeilen arbeiten will, um fehlerhafte Felder aufzuspüren und zu löschen, dann sitze ich vermutlich Wochen da.
Danke für Info und viele Grüße
Bild

Betrifft: AW: Automatisches suchen und löschen??
von: Oberschlumpf

Geschrieben am: 27.12.2006 21:49:50
Hi Roland
Hast du es schon mal mit dem Makro-Recorder versucht?
In diesem Fall musst du zwar auch noch Zeile für Zeile anklicken, aber dann nur das Makro starten, welches ausgeführt werden soll - geht also auch schon schneller.
Wenn du ein Makro benötigst, welches mit nur 1 Klick alle Datensätze bearbeiten soll, dann müsstest du uns noch dieses verraten:
- in welchen Spalten befinden sich deine Daten? (wir könnten RATEN, aber du musst dann anpassen - kannst du das?)
- wenn wirklich nur 1 Spalte Daten enthält, WELCHE Spalte?
- in welcher Zeile soll die Suche beginnen? (wir könnten RATEN, aber du musst dann anpassen - kannst du das?)
- um welche Art von Fehler handelt es sich? (wir könnten RATEN, aber du musst dann anpassen - kannst du das?)
Na ja, und dann ist noch das Risiko, dass ein Makro - in Excel für nicht-MAC-PC programmiert, gar nicht im MAC funktioniert.
Das weiß ich leider nicht, da ich MAC-PC nicht kenne.
Ciao
Thorsten
Bild

Betrifft: AW: Automatisches suchen und löschen??
von: Roland

Geschrieben am: 28.12.2006 11:19:09
Hallo Thorsten,
danke für Deine Hilfe.
Anbei die notwendigen Angaben:
- Die Tabelle besteht aus 6 Spalten (A – F) - also Anrede, Vorname, Nachname, Postleitzahl, Ort, Straße mit Hausnummer.
- Die Spalte, die die Fehlerhaften Daten enthält, ist die Spalte E (Ort)
- Die Suche soll in der ersten Zeile beginnen
- In der Spalte E befinden sich Ortsangaben. Diese beinhalten stellenweise einen „/“ (Schrägstrich). Wenn eine Ortsangabe einen „/“ enthält, soll die ganze Adresse (Zeile) gelöscht und eingerückt werden. Danach sollen alle Adressen (Zeilen), die einen „-„ (Verbindungsstrich) enthalten gelöscht werden. Danach alle die einen „.“ (Punkt) enthalten.
Viele Grüße,
Roland
Bild

Betrifft: AW: Automatisches suchen und löschen??
von: Oberschlumpf

Geschrieben am: 28.12.2006 14:35:43
Hi Roland
Versuch es mal so:
1. Erstelle zuerst eine Sicherungskopie deiner Tabelle. Denn wenn 120.000 Datensätze futsch sind - ich war es nicht
2. Füge diesen Code in ein allgemeines Modul ein
Sub Loeschen()
Dim lloZeile As Long, lloLetzteZeile As Long
lloLetzteZeile = Cells(Rows.Count, 1).End(xlUp).Row
'die Zeile mit den meisten Einträgen wird ermittelt
For lloZeile = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
If lloLetzteZeile < Cells(Rows.Count, lloZeile).End(xlUp).Row Then
lloLetzteZeile = Cells(Rows.Count, lloZeile).End(xlUp).Row
End If
Next
'es werden alle Zeilen gelöscht, in denen in Ort ein "/", oder in der Straße ein "." oder "-" vorkommt
For lloZeile = 1 To lloLetzteZeile
If InStr(1, Range("E" & lloZeile).Value, "/") > 0 Or InStr(1, Range("F" & lloZeile).Value, "-") > 0 Or InStr(1, Range("F" & lloZeile).Value, ".") > 0 Then
Rows(lloZeile & ":" & lloZeile).Delete Shift:=xlUp
lloZeile = lloZeile - 1
End If
Next
End Sub

3. Wechsel in Excel in die Tabelle, in der die Zeilen gelöscht werden sollen
4. Starte über Extras/Makro/Makros das Makro mit dem Namen "Loeschen"
5. fertig
Konnte ich helfen?
Ciao
Thorsten
 Bild
Excel-Beispiele zum Thema "Automatisches suchen und löschen??"
Automatisches Komplettieren einer Zelleingabe Zellinhalt suchen und Zelle auswählen
Suchbegriff über mehrere Tabellenblätter suchen. Suchen und weitersuchen
Zahl +/- 1 suchen Ein Zeichen in einer Formel suchen
Datum suchen und Wert eintragen Wert in Tabelle suchen und in UserForm ausgeben
Letzte Zelle mit Inhalt suchen Textdatei nach Begriff durchsuchen und Fundzeile importieren