27.06.2018, 14:40 (Dieser Beitrag wurde zuletzt bearbeitet: 27.06.2018, 14:45 von sees.)
Hallo, ich habe folgendes Problem:
In der ersten Spalte habe ich IDs(unten W,X,Y,Z), in der zweiten Spalte die dazugehörigen Produktnummern(unten 0,1,2,3). Nun gibt es eine andere Spalte in der in den einzelnen Feldern immer !mehrere! IDs aneinandergereiht sind. Ich möchte diese IDs aber automatisch gegen die Produktnummern tauschen.
Da es 300 Produkte gibt, will ich nicht 300x mal Suchen und Ersetzen ausführen, sondern das nach Möglichkeit in einem Zug machen. :)
Dazu wäre eine Wechseln-Formel in der Richtung notwendig: Wenn Wert von Feld1 in Spalte3 vorhanden, ersetze Wert in allen Feldern von Spalte3 mit Wert von Feld1 usw....
W | 0 | W,Z | X | 1 | X,Y,Z | Y | 2 | X | Z | 3 | Y,Z |
sollte am Ende so sein:
W | 0 | 0,3 | X | 1 | 1,2,3 | Y | 2 | 1 | Z | 3 | 2,3 |
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row Columns(3).Replace what:=Cells(i, 1), replacement:=Cells(i, 2), lookAt:=xlPart, _ Next
End Sub
Ich bin davon ausgegangen, dass die erste Zeile die Überschrift enthält. Falls das nicht so ist, müsstest du die Startzeile bei "i = 2" entsprechend ändern.
27.06.2018, 15:07 (Dieser Beitrag wurde zuletzt bearbeitet: 27.06.2018, 15:07 von sees.)
Hab leider keinen Plan von VBA, daher muss ichs wohl anderes lösen :(
Sowas in der Art würde vom Prinzip her gehen, ist aber natürlich mit dem & so nicht korrekt: =WECHSELN(C:C,A2,B2)&WECHSELN(C:C,A3,B3)&WECHSELN(C:C,A4,B4)
27.06.2018, 15:12 (Dieser Beitrag wurde zuletzt bearbeitet: 27.06.2018, 15:13 von MisterBurns.)
Du brauchst keinen Plan von VBA haben, es reicht, wenn du meinen Code kopierst, im VBA-Fenster einfügst und ausführst. Ich erkläre dir auch gerne, wie das geht, falls es dich interessiert. Oder du lädst eine Beispieldatei hoch, dann bau ich dir das ein inkl. Knopf zum draufdrücken.
27.06.2018, 15:46 (Dieser Beitrag wurde zuletzt bearbeitet: 27.06.2018, 15:46 von Jockel.)
Hallo, ist es möglich, (d)eine {kleine} (Beispiel)Datei zu posten oder einen Tabellenausschnitt..? Aus dem bisherig Geschriebenen werde ich noch nicht schlau...
Den Code von Berni krieg' ich nicht zum Laufen... Also kann ich kein Ergebnis sehen...
Um wie viele ID's geht's denn..? Das kleine Beispiel kann man auch mit ohne VBA lösen --> Stichwort Power Query..:
Arbeitsblatt mit dem Namen 'Tabelle3'
A
B
C
D
E
F
G
1
Spalte_1
Spalte_2
Spalte_3
Spalte_1
Spalte_2
Spalte_3
2
W
0
W,Z
W
0
0,3
3
X
1
X,Y,Z
X
1
1,2,3
4
Y
2
X
Y
2
1
5
Z
3
Y,Z
Z
3
2,3
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.01] MS Excel 2010
27.06.2018, 16:52 (Dieser Beitrag wurde zuletzt bearbeitet: 27.06.2018, 16:54 von MisterBurns.)
Bittesehr, anbei die überarbeitete Datei. Du kannst es aber auch gerne selbst probieren:
1. Klicke im Blattregister am unteren Bildschirmrand mit der rechten Maustaste auf "Tabelle1" und wähle "Code anzeigen". Daraufhin öffnet sich der VBA-Explorer.
2. Füge diesen Code im großen weißen Feld in der Mitte ein
Code:
Sub ersetzen() Dim i As Integer
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row Columns(3).Replace what:=Cells(i, 1), replacement:=Cells(i, 2), lookAt:=xlPart Next
End Sub
(Verwende nicht den Code von vorhin, da hatte ich in der vorletzten Zeile vergessen, den Unterstrich ganz am Ende zu löschen)
3. Nun kannst du den VBA-Explorer wieder schließen.
4. Falls du im Menüband den Reiter "Entwicklertools" siehst, kannst du diesen Schritt überspringen. Falls nicht, erfährst du hier, wie du den Reiter einblendest https://support.office.com/de-de/article...fd9bea2d45 Du brauchst nicht den kompletten Artikel zu lesen, scrolle einfach nach unten bis zur Überschrift "Anzeigen der Registerkarte "Entwicklertools" in Ihre Office-Anwendung".
5. Gehe zum Reiter Entwicklertools, das zweite Symbol von Links sollte "Makros" heißen. Klicke darauf, wähle "Tabelle1.ersetzen" und klicke auf "Ausführen".
Das sollte es gewesen sein.
Schöne Grüße Berni
Folgende(r) 2 Nutzer sagen Danke an MisterBurns für diesen Beitrag:2 Nutzer sagen Danke an MisterBurns für diesen Beitrag 28 • sees, spro