PDA

Vollständige Version anzeigen : Wiederkehrendes Suchen und ersetzen


lazy_koebeli
27.06.2006, 15:44
Hallo,

Gibt es in Excel irgendeine Funktion, ein Tool oder ev. einen Batch (kann ich den selbst Programmieren und falls ja, mit was?), mit welchem ich immer wieder von unserem Lieferanten gesandte Excel-Files mit Suchen und ersetzen anpassen kann.

Es wäre insbesondere wichtig, dass die Such und Ersetz-Daten gespeichert werden können und nicht immer wieder manuell eingegeben werden müssen wie bis heute.

Vielen Dank für Eure Hilfe.

Lumpensammler
27.06.2006, 15:48
Hallo, lazy_koebeli,

entweder eine Tabelle aufbauen, die sowohl die Such- als auch die Ersetzungsbegriffe beinhaltet und die zeilenweise in einer Schleife abgearbeitet wird oder dies durch Matrizen innerhalb des Codes durchführen lassen. Einen Hinweis auf die Suche ohne Fehlermeldung kannst Du z.B. beim User optimfish finden, wenngleich dort meiner Erinnerung nach nicht ersetzt wurde.

Gruß
LS

Woody
27.06.2006, 16:01
Hallo lazy,

aus dem Formelbereich sind vielleicht noch die Funktionen WECHSELN und ERSETZEN zu erwähnen, mit Hilfe derer eine Transformation der Daten durchführbar wäre.

lazy_koebeli
27.06.2006, 16:09
Hallo Lumpensammler,

Danke für Dein Feedback. Das mit der Schleiffenverarbeitung habe ich zwar begriffen, weiss aber nicht wie man dies programmiert oder die Anweisung eingibt? Ist das mir meinen Anwenderkenntnissen einfach machbar?

Gruss lazy_koebeli

lazy_koebeli
27.06.2006, 16:15
Hallo Woody,

Danke für Deine Antwort. Da es relativ viele Anpassungen sind, wird es mit der Funktion Wechsel relativ unübersichtlich. Du hast aber Recht, es wäre eine möglich Lösung!

Gruss lazy_koebeli

jinx
27.06.2006, 17:40
<font size="2" face="Century Gothic">Moin, lazy_koebeli,

vielleicht kann Dir da das Tutorila unter Schleifenprogrammierung (http://www.activevb.de/tutorials/tut_schleifen/schleifen.html) etwas unter die Arme greifen: Du benötigst die Obergrenze der Zellen (entweder durch den Zustand "" oder durch Feststellen über Funktionen), eine von mehreren Schleifenvariationen und zu Beginn gute Nerven und eine Kopie der Daten, denn es könnte nicht so ablaufen, wie Du es Dir vorstellst.

Ich würde über Letzte genutzte Zelle einer Spalte mit Leerzeilen (http://www.ms-office-wissen.de/askdrmof/details.php?id=43) unter Verwendung von Rows.Count statt 65536 die letzte genutzte Zeile feststellen lassen und dann eine Zählschleife über die Werte laufen lassen...</font>

lazy_koebeli
29.06.2006, 10:20
Hallo jinx,

Danke für Deinen Input. Ich habe versucht, die Schleifen anzuwenden und habe folgenden Effekt (Ziel: Inhalt in Zellen suchen und, wenn gefunden, ganze Zeile löschen):

1. Die Anforderung wird richtig durchgeführt.
2. Der Loop kommt nie auf EOF, d.h. bricht nicht ab.

Mein Code:

Sub Zeilen_löschen()

Dim gefZeile As Range

Open "C:\test.csv" For Input As #1

Do While Not EOF(1)

Set gefZeile = Nothing

Set gefZeile = ActiveSheet.Cells.Find(What:="Lagerware", After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False)

If Not gefZeile Is Nothing Then
gefZeile.Activate
Selection.EntireRow.Delete
End If

Wend

End Sub

Wo könnte der Hund begraben sein? Ich bin leider kein Profi und ich glaube es muss ein kleiner Anfängerfehler sein.

Vielen Dank für Deine Hilfe!

jinx
29.06.2006, 14:12
<font size="2" face="Century Gothic">Moin, lazy_koebeli,

in einer geöffneten Mappe sollte geprüft werden, ob die jeweilige Fundstelle mit der ersten übereinstimmt... ;) Siehe als Ansatz dazu Fortlaufende Suche unter Vermeidung eines Laufzeitfehlers (http://www.herber.de/mailing/058499h.htm).</font>

lazy_koebeli
30.06.2006, 14:20
Hallo,

Habe das Problem mit den Hinweisen lösen können.

Vielen Dank!