Hallo,
Ich hab mir ein Makro gebastelt, das es einem ermöglichen soll, auf zwei verschiedenen Tabellenblättern Eintragungen in Spalten bzw Zeilen untereinander zu tauschen.
Dazu sollen zuvor die Tabellenblätter entsperrt werden. In "Liste" wird eine Spalte kopiert, in eine Hilfsspalte eingefügt, die zweite Spalte wird kopiert und direkt in die erste eingefügt, dann die Zwischenspalte kopiert und in den Bereich der ersten eingefügt. Anschließend wird die Zwischenspalte geleert. Den Bereich erfährt das Makro über zwei Zellen, die über SVERWEIS den Bereich als Text enthalten. Gleiche Vorgehensweise gilt auch für das Blatt "Persönliche D", nur dass dort die Zwischenspalte (sowie die der betreffenden Tabelle darüber) aus verbundenen Zellen besteht, weshalb sie nach dem Vorgang wieder verbunden werden. Im Anschluss werden beide Blätter wieder gesperrt und mit ihrem Passwort versehen.
Erstmal funktioniert das auch ganz gut, aber es kommt immer wieder mal vor, dass auf dem Blatt "Persönliche D" an dem Punkt das Makro einen Sprung macht und die kopierten Daten nicht einfügt:
Folglich verschwindet dann beim Tausch manchmal eine Zeile der Eintragungen in "Persönliche Daten".
Wenn ich schrittweise den Code ablaufen lasse, dann passiert es, dass der Bereich kopiert wird, aber nicht eingefügt wird. Der Bereich "B18" wird auch nicht ausgewählt. Gleiches passiert auch, wenn ich den Bereich erweitere und B18:P18 verwende.
Der Fehler ist nicht reproduzierbar.
Vielleicht hat jemand von euch eine Idee...
Danke!
(Zur Erklärung: Hellgraue Schrift sind die sonst unsichtbaren Daten, auf dem Blatt "Persönliche D" unten befindet sich der Button zum Tauschen, die Zahlen entsprechen denen der Positionen in der Liste darüber)
Test Tauschen Makro 2.xlsm (Größe: 31,19 KB / Downloads: 9)
Ui! Könnte Zwischenablage leeren helfen? Das habe ich im ersten Teil des Codes glaube ich vergessen... Wenn ja dann Grüße an Bosko Biati.
Kann es aber grade nicht ausprobieren, weil ich einkaufen bin...
Ich hab mir ein Makro gebastelt, das es einem ermöglichen soll, auf zwei verschiedenen Tabellenblättern Eintragungen in Spalten bzw Zeilen untereinander zu tauschen.
Dazu sollen zuvor die Tabellenblätter entsperrt werden. In "Liste" wird eine Spalte kopiert, in eine Hilfsspalte eingefügt, die zweite Spalte wird kopiert und direkt in die erste eingefügt, dann die Zwischenspalte kopiert und in den Bereich der ersten eingefügt. Anschließend wird die Zwischenspalte geleert. Den Bereich erfährt das Makro über zwei Zellen, die über SVERWEIS den Bereich als Text enthalten. Gleiche Vorgehensweise gilt auch für das Blatt "Persönliche D", nur dass dort die Zwischenspalte (sowie die der betreffenden Tabelle darüber) aus verbundenen Zellen besteht, weshalb sie nach dem Vorgang wieder verbunden werden. Im Anschluss werden beide Blätter wieder gesperrt und mit ihrem Passwort versehen.
Erstmal funktioniert das auch ganz gut, aber es kommt immer wieder mal vor, dass auf dem Blatt "Persönliche D" an dem Punkt das Makro einen Sprung macht und die kopierten Daten nicht einfügt:
Code:
' Tauschbereich 1 kopieren und in Zwischenspeicher Daten einfügen
DTauschBereich1.Copy
Range("B18").Select
ActiveSheet.Paste
Folglich verschwindet dann beim Tausch manchmal eine Zeile der Eintragungen in "Persönliche Daten".
Wenn ich schrittweise den Code ablaufen lasse, dann passiert es, dass der Bereich kopiert wird, aber nicht eingefügt wird. Der Bereich "B18" wird auch nicht ausgewählt. Gleiches passiert auch, wenn ich den Bereich erweitere und B18:P18 verwende.
Der Fehler ist nicht reproduzierbar.
Vielleicht hat jemand von euch eine Idee...
Danke!
(Zur Erklärung: Hellgraue Schrift sind die sonst unsichtbaren Daten, auf dem Blatt "Persönliche D" unten befindet sich der Button zum Tauschen, die Zahlen entsprechen denen der Positionen in der Liste darüber)
![.xlsm](https://www.clever-excel-forum.de/images/attachtypes/xlsm.png)
Ui! Könnte Zwischenablage leeren helfen? Das habe ich im ersten Teil des Codes glaube ich vergessen... Wenn ja dann Grüße an Bosko Biati.
Kann es aber grade nicht ausprobieren, weil ich einkaufen bin...