Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1344to1348
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

Replace

Replace
04.01.2014 14:21:23
Sascha
Hallo Excel Forum
Ich konnte schon viele Forumseinträge für meine VBA's brauchen, aber nun habe ich leider nichts mehr gefunden. Das Ziel wäre ein Replace-VBA welches auf ein File zugreift.
Heisst:
Cells.Replace What:="AAA", Replacement:="1", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Jetzt möchte ich aber nicht nur AAA durch 1 ersetzten sondern auch AAB duch 2 und AAC durch 3. Das ganze ergäbe eine Liste von ca. 500 Replacements, was zu zeitintensiv wäre zum schreiben. Nun habe ich eine andere Execldatei erstellt in welcher in Splate A1 "AAA" steht und in B1 "1".
Ist es nun möglich einen VBA Befehl zu schreiben, damit die ganze Liste A1:A500 gesucht und durch B1:B500 ersetzt wird (Im File orginal.xlsx)? Das Dokument mit der Liste würde replacelist.xlsx heissen.
Vielen Dank für Eure Antworten.
Gruss aus der Schweiz
Sascha

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Replace
04.01.2014 14:44:43
Hajo_Zi
Hallo Sascha,
das geht nicht, da eine XLSX Datei keinen Code enthält.
Kopiere doch einfach Spalte B nach Spalte A.

AW: Replace
04.01.2014 14:53:01
Sascha
Das Replacement soll ja im file "orginal.xlsx" erfolgen. Heisst ich habe dort in der Spalte D nur "AAA", "AAB" und "AAC" geschrieben. Diese müssten jetzt gem. der Liste replacelist.xlsx ersetzt werden. Da sich aber das Dokument replacelist.xls immer anpasst, muss es eben einen Verweis sein und ich kann es leider nicht direkt überschreiben.
Wäre es ggf. möglich die Replaceliste zu öffnen, den Inhalt der replacelist.xlsx in eine neue Mappe im File orginal.xlsx einzufügen und danach ein Replace VBA zu starten, welches sich von A1 durch B1 durcharbeitet bis A500 durch B500?

Anzeige
AW: Replace
04.01.2014 17:26:14
Matze
Hallo Sascha,
reden wir von nur einer Datei.XLSX wo du in SpalteA AAA gegen Spalte B 1 ersetzen willst?
Das kannst du innerhalb der selbigen Datei durch simples verschieben der Spalte B erreichen
bestätige die folgende Meldung mit OK. Fertig
Das ganze mit Dateien , markiere die zu kopierende Spalte Strg+c wechsel in die 2te Datei ,
markiere die Spalte die ersetzt werden soll, Strg+V Meldung bestätigen
In der Quelldatei noch ESC drücken damit das kopieren aufgehoben wird. Fertig
Gruß Matze

AW: Replace
04.01.2014 18:36:13
Sascha
Vielen Dank für die Erklärung von Ctrl+C und Ctrl+V ;) also ich versuche mich nochmals genauer auszudrücken....
Ich habe im Dokument orginal.xlsx etwa 6000 Zeilen welche gemischt mit Kategorien bezeichnet sind. Diese Kategorien (AAA oder AAB im vorherigen Beispiel) müssen nun durch Zahlen ersetzt werden. Die Liste welche Kategorie durch welche Zahl ersetzt werden muss habe ich im Dokument replacelist.xlsx. Daher bräuchte ich nun einen VBA Code welche in der replacelist die Spalte A holt, nach dieser im orginal.xlsx sucht und durch die Spalte B von der replacelist ersetzt.
Ists nun besser erklärt=? Vielen Dank für die Antworten.

Anzeige
AW: Replace
05.01.2014 08:17:53
Luschi
Hallo Sascha,
wenn Du statt vieler Worte 2 Demodateien mit den Testdaten hier bereitgestellt hättest, würden viele Helferlein schon längs an einer Vba-Lösung 'basteln'. Ich für meinen Teil werde in diesem Jahr nur noch aktiv, wenn der Fragesteller diese Vorleistung bring. Sich auch noch selber die Demodateien zusammenzustricken - das fällt in diesem Jahr aus. Da lese ich lieber in einem meiner vielen gesammelten Excel/Access-eBooks für Office 2010/2013.
Ich hoffe, daß auch andere Helferlein das so sehen und das Jahr 2014 entspannter angehen, denn was im Jahr 2013 in den Foren los war und um den heißen Brei herumgeredet wurde, das erspare ich mir ab jetzt.
Gruß von Luschi
aus klein-Paris.

Anzeige
AW: Replace
05.01.2014 17:13:44
Sascha
Kein Problem. Natürlich werde ich das nächste Mal zwei Demodateien bereitstellen. Da aber ransi (an dieser Stelle vielen herzlichen Dank!) aus meinen 100'000 Worten herauslesen konnte was ich meine und mir das VBA bereitgestellt hat, ist dies heute nicht mehr nötig. Ich bin jetzt noch auf Laufzeitenfehlersuche. Hoffe nun dass ich diesen in nützlicher Zeit finde. :)
Nochmals vielen Dank!

AW: Replace
05.01.2014 18:49:54
Sascha
Zur Vervollständigung. Musste noch den VBA Code mit einem Workbooks.Activate ergänzen. Jetzt läufts wie gewünscht =D! Merci!

Schleife über What: und Replacement:
04.01.2014 18:59:25
ransi
HAllo Sascha
Nehmen wir mal an das sind deine Daten:
Tabelle1

 AB
1AAA1
2AAB2
3AAC3
4AAD4
5AAE5
6AAF6
7AAG7
8AAH8
9AAI9
10AAJ10
11AAK11
12AAL12
13AAM13
14AAN14
15AAO15
16AAP16
17AAQ17
18AAR18
19AAS19
20AAT20
21AAU21
22AAV22
23usw.usw.


Tabelle1

 ABCDEFGH
1JFKFPWVWUZQMEHNPTENZSEZKHAWSQPMYZOBCCTBQ
2CFKPIIBZMEVCFDNITYFIVPUDZXYRVDZPBULHBVLC
3IBRWYUISBPPBBSBUUCQYTITHBMJOHCWLSRSJTJOD
4PURWHEJMVVWYRQMHMCVLXJKOATOQOEJBUGEVIIYR
5MXHSPHJBUJMYWZGZQBXRHMXBAURYDLXZEEMGJOPD
6ICZDAEPGALJNVPIQTEWFQUKWIIEQYUGCOCABIFOX
7OPREDTUJIFKTSQPWIFZXEGOMWDFSRLILPJKT194T
8ERXNGHROOOOAZEPTQYGDXCZKQNHFMLLHTICPFAUL
9MFQBHWPMHJTI333IAVXPJMYPJYPZLD12WTBZQRE


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Die erste Tabelle stammt aus replaceList.xlsm Tabelle1
Die zweite enthält deine zu manipulierenden Daten aus original.xlsx Tabelle1
Beide Datein müssen geöffnet sein.
Jetzt starte diesen Code:
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Sub machs()
    Dim Zelle As Range
    For Each Zelle In Workbooks("ReplaceList.xlsm").Sheets("Tabelle1").Range("A1:A500")
        Workbooks("Original.xlsx").Sheets("Tabelle1").Cells.Replace What:=Zelle.Value, Replacement:=Zelle.Offset(0, 1).Value, LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
    Next
End Sub


ransi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige