Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
836to840
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
836to840
836to840
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ersetzen durch - komfortabler möglich ?

Ersetzen durch - komfortabler möglich ?
11.01.2007 10:15:48
Bernd
Hallo,
ich habe eine äußerst große Artikeldatenbank, in der ich
relativ oft mal etwas ändern möchte/muß.
Beispiel:
- aus allen Artikelnummern, die 4000 enthalten, wird 4300
4100 -- 4400, 4200 -- 4500 usw.
- aus allen Artikelnummern, die 4010 enthalten, wird 4310
4110 -- 4410, 4210 -- 4510 usw.
.
.
.
- aus allen Artikelnummern, die 4090 enthalten, wird 4390
4190 -- 4490, 4290 -- 4590 usw.
Gleichzeitig ändern sich z.B. die Beschreibungen der Artikel
- enthält die Artikelbeschreibung "PH: 1,0 m" wird daraus "PH: 0,75 m"
- enthält die Artikelbeschreibing "Kiefer" wird daraus "Lärche"
Wenn ich nun als Beispiel in 200 Zellen 20 Änderungen vornehmen
möchte, muß ich den Ersetzen-Dialog 20mal aufrufen.
Und genau da kommt meine Frage:
Gibt es eine Möglichkeit, den Suchen-Ersetzen-Dialog etwas komfortabler
zu gestalten ?
Ich könnte mir das so vorstellen, daß ich in ein (meinetwegen separates)
Tabellenblatt in Spalte A den momentanen Text eingebe, der geändert werden
soll und in Spalte B eingeben, wie der neue Text heißt.
Also...
A B
1
2 4000 4100
3 4100 4200
4 PH: 1,0 m PH: 0,75 m
Danach markiere ich in meiner Datenbank den Bereich, der geändert werden
soll, drücke irgendwo einen Button und Schwups ... die Änderungen wurden
alle übernommen.
Gibt es so etwas ? Vielleicht irgendein vorhandenes Skript ?
Herzliche Grüße
Bernd Junker

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ersetzen durch - komfortabler möglich ?
11.01.2007 11:04:49
Heiko
Hallo Bernd,
z.B. so:
Eine extra Tabelle mit dem Namen "DatenZumErsetzen" muss vorhanden sein, oder im Code den Namen anpassen.
Zweitens gehe ich davon aus das in der Tabelle wo die Texte zum ersetzen stehen in der ersten Zeile eine Überschrift ist (z.B. A1 = ALT; B1 = NEU) und die Texte zum ersetzen ab Zeile 2 stehen.
Es werden alle Einträge von Zeile 2 bis zur letzten beschriebenen im Blatt "DatenZumErsetzen" abgearbeitet.

Sub Ersetzen()
Dim lngI As Long, lnglastrow As Long
Dim rngZelle As Range
Dim wksSheet As Worksheet
Set wksSheet = ActiveWorkbook.Worksheets("DatenZumErsetzen")
lnglastrow = wksSheet.Cells(Rows.Count, 1).End(xlUp).Row
For Each rngZelle In Application.Selection
For lngI = 2 To lnglastrow
rngZelle = Replace(rngZelle, wksSheet.Cells(lngI, 1), wksSheet.Cells(lngI, 2))
Next lngI
Next rngZelle
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Ersetzen durch - komfortabler möglich ?
11.01.2007 11:17:34
Bernd
Hallo Heiko,
DANKE für Deine schnelle Antwort.
Ja, meine Datenbank hat Überschriften: A1 "Art.-Nr", B1 "Bezeichnung" usw.
Eine Extra-Tabelle namens "DatenZumErsetzen" kann ich selbstverständlichen anlegen.
Du schreibst u.A.
"Zweitens gehe ich davon aus das in der Tabelle wo die Texte zum ersetzen stehen in der ersten Zeile eine Überschrift ist (z.B. A1 = ALT; B1 = NEU) und die Texte zum ersetzen ab Zeile 2 stehen."
Vielleicht verstehe ich Dich jetzt auch falsch...
Ich möchte z.B. nicht den alten Text in A5 stehen haben und den neuen in B5, sondern der geänderte Text soll auch wieder in der gleichen Zelle stehen, wo vorher auch der alte Text drin stand. Wenn z.B. in A5 vorher "PH: 1,0 m" stand, soll da nach der Änderung dann z.B. "PH: 0,75 m" stehen.
Weiterhin hast Du geschrieben:
"Es werden alle Einträge von Zeile 2 bis zur letzten beschriebenen im Blatt "DatenZumErsetzen" abgearbeitet."
Von VB habe ich ja eigentlich keine Ahnung :-(
Heißt "For lngI = 2 To lnglastrow", daß alle Zellen geändert werden, die ich ab "2" markiere ? Ich würde nämlich ganz gerne Zellen markieren können, wo die Änderungen vorgenommen werden (Beispiel: A5:B25)
Anzeige
AW: Ersetzen durch - komfortabler möglich ?
11.01.2007 11:25:19
Heiko
Hallo Bernd,
vielleicht habe ich auch zu kompliziert beschrieben, schau doch mal in diese Beispieltabelle dann klärt sich vielleicht alles.
https://www.herber.de/bbs/user/39572.xls
Gruß Heiko
PS: Rückmeldung wäre nett !
AW: Ersetzen durch - komfortabler möglich ?
11.01.2007 11:56:40
Bernd
Bei mir klappt das nicht mit Deiner Datei.
Ich habe nichts geändert, sondern sie nur geöffnet und dann das Makro ausgeführt.
Fehler beim kompilieren:
Sub oder Function nicht definiert
Und "Replace" ist markiert bei
"rngZelle = Replace(rngZelle, wksSheet.Cells(lngI, 1), wksSheet.Cells(lngI, 2))
Anzeige
AW: Ersetzen durch - komfortabler möglich ?
11.01.2007 12:41:24
Heiko
Hallo Bernd,
da scheint an deiner EXCEL Version zu liegen, 8.0 kennt diesen Befehl (Replace) wohl noch nicht.
Werden mal drüber nachdenken wie man das anders regeln kann und mich nachher nochmal melden.
Gruß Heiko
AW: Ersetzen durch - komfortabler möglich ?
11.01.2007 13:22:36
Bernd
Okay, das wäre schön.
Sorry wegen der Excel-Version, aber ich habe hier in der Firma nur das OfficePaket 97. Mein Chef hat für neuere (neu ist gut) Software leider NIE Geld übrig :-(
Es grüßt
Bernd Junker
AW: Ersetzen durch - komfortabler möglich ?
11.01.2007 14:37:21
Heiko
Hallo Bernd,
ersetze mal diese Zeile im Code
rngZelle = Replace(rngZelle, wksSheet.Cells(lngI, 1), wksSheet.Cells(lngI, 2))
durch diese Zeile und teste dann.
rngZelle = Application.Substitute(rngZelle, wksSheet.Cells(lngI, 1), wksSheet.Cells(lngI, 2))
Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Ersetzen durch - komfortabler möglich ?
11.01.2007 15:09:05
Bernd
BRAVO !!! Das funktioniert.
Aber eine kleine Sache hätte ich da noch:
Es kann ja durchaus mal passieren, daß ich bestimmte Zellen mit neuen,
aber FALSCHEN Daten ersetzt habe. In der Beispieldatei hätte ich z.B.
statt "Neues Wort" "Neue Wort" in die Tabelle "DatenZumErsetzen" eingegeben.
Die Änderungen durch das ausgeführte Makro kann ich aber leider nicht RÜCKGÄNGIG
machen. Gibt es dafür auch noch´ne Möglichkeit oder müßte ich dann zwingend das
Makro erneut ausführen, nachdem ich ALT = "Neue Wort" und Neues Wort = "Neues Wort"
in der Tabelle "DatenZumErsetzen" festgelegt habe ?
Ich hoffe, Du verstehst wie ich das meine :-)
Mir fehlt einfach nur, die Aktion rückgängig zu machen
(falls das bei ausgefühjrten Makros überhaupt geht ?!?)
Ansonsten begnüge ich mch auch mit Deinem funktionierenden Lösungsvorschlag.
Greetz
Junker
Anzeige
AW: Ersetzen durch - komfortabler möglich ?
11.01.2007 15:50:43
Heiko
Hallo Bernd,
die Rückgängig Funktion aus EXCEL kann KEINE Veränderungen rückgängig machen die per VBA ausgeführt worden sind !!!
Da bleibt dann nur die Möglichkeit das Makro ein zweites mal durchlaufen zu lassen !
Gruß Heiko
PS: Rückmeldung wäre nett !
AW: Ersetzen durch - komfortabler möglich ?
11.01.2007 16:09:49
Bernd
Okay ... DANKE nochmals für Deine Hilfe !!!

226 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige