Erstmal vielen Dank für die Erklärung :-)
Nein ich habe keine verbundene Zellen,
Bei mir läuft das Makro leider nicht wie gewollt.
Durchlauf wie folgt..
1. Deklarierung, Blatt leeren, Überprüfen
2. Alphabetische Sortierung nach Land
3.Läuft von unten nach oben durch, Erstellt ne neue Zeile und hat für 'Ungarn' dann 2 Zeilen und schreibt in Hilfsspalte 0 BO_ und 0_SG
4. Löscht im Anschluss alle Spalten (Komplette Spalten) die er nicht für SG benötigt. (Hier denke ich ist schon der Fehler)
Es besteht bis hierhin nur noch 2 Hilfsspalten und die 3 Spalten 'Stadt, Land, Fluss'. Soll hier nur eine Zelle oder die Ganze Spalte von oben bis unten gelöscht werden?
Hier der Quelltext dazu:
'nicht benötigte Spalten löschen
For j = LC To 3 Step -1
If InStr(MeL, .Cells(1, j)) = 0 Then
.Cells(i + 1, j).Delete xlToLeft
End If
If InStr(SyL, .Cells(1, j)) = 0 Then
.Cells(i, j).Delete xlToLeft
End If
Next
5. Vergleicht in der ersten Spate dann wieder die Länder mit:
For i = LR To 2 Step -1 'alle zeilen von unten nach oben durchlaufen
If .Cells(i - 1, Sp) <> .Cells(i, Sp) Then 'bei Wechsel in Hauptspalte BO Zeile erzeugen
.Rows(i).Copy
.Rows(i + 1).Insert xlDown
.Cells(i + 1, 1) = Z 'Zähler
.Cells(i + 1, 2) = "BO_"
.Cells(i, 1) = Z
.Cells(i, 2) = "SG_"
Z = Z + 1
Da hier aber keine Spalte mit Ländern mehr vorhanden ist, vergleicht er den Fluss Tajo mit dem Fluss von Spanien (leere Zelle)
-> Wenn ich den Block:
'nicht benötigte Spalten löschen
...auskommentiere, dann vergleicht er Land mit Land, bringt aber trotzdem die Fehlermeldung
Laufzeitfehler '1004' Das wird nicht funktionieren, weil dadurch Zellen in einer Tabelle in Ihrem Arbeitsblatt verschoben würden.
Verstehe nicht genau weshalb das bei mir nicht so rund läuft. Hoffe ich konnte gut genug erklären wo es hapert.
Denke gewollt ist, dass nach jedem neuen Land eine kopierte SG Zeile nachgerückt wird (oder mehrere) und dannach nur die überschüssigen Zellen gelöscht und nach links aufgerückt werden. Zum Schluss nur noch sortieren und die Hilfsspalte entfernen.
MfG Guest4747
|