Hallo zusammen,
bin absoluter VBA Anfänger. Habe folgende Aufgabenstellung:
Eine Preisliste (Tabellenblatt 1, Spalte A) soll nach veralteten Preisen aus Referenz (Tabellenblatt 2, SpalteA) durchsucht werden, und diese durch neue korrespondierenden Preise (Tabellenblatt 2, Spalte B) aktualisiert werden.
Die beibehaltenen, und aktualisierten Preise sollen zur besseren Übersichtlichkeit in Tabellenblatt 1, Spalte B aufgelistet werden. So kann man noch mal ein prüfendes Auge darauf werfen. Treffer werden zum Debugging in Tabelle 1/Spalte A gelb markiert.
TABELLE 1 / Spalte A: originale Preise
TABELLE 2 / Spalte A: Suchkriterium veralteter Preis
TABELLE2 / Spalte B: ersetzender neuer Preis
TABELLE 1 / Spalte B: überarbeitete Preisliste
Mein Problem:
Das Makro erkennt die zu aktualisierenden Preise, ändert aber nur den (wen überhaupt) den letzten Treffer.
Hier das Makro:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | Sub WerteTausch()
Dim Zeilen1 As Long
Dim Zeilen2 As Long
Zeilen1 = Sheets( "Tabelle1" ).UsedRange.Rows.Count
Zeilen2 = Sheets( "Tabelle2" ).UsedRange.Rows.Count
For n = 1 To Zeilen1
For m = 1 To Zeilen2
If Sheets( "Tabelle1" ).Range( "A" & n).Value = Sheets( "Tabelle2" ).Range( "A" & m).Value Then
Sheets( "Tabelle1" ).Range( "B" & n).Value = Sheets( "Tabelle2" ).Range( "B" & m).Value
Cells(n, 1).Interior.ColorIndex = 6
Else
Sheets( "Tabelle1" ).Range( "B" & n).Value = Sheets( "Tabelle1" ).Range( "A" & n).Value
End If
Next
Next
End Sub
|
|