Direkte - Indirekte Bezüge?
Hallo Supportgemeinde,
Folgende Frage:
Befinde mich in Spalte C und möchte nun die darüberliegende Zelle per Makro kopieren und an die aktuelle Position einfügen.
Mit direktem Bezug geht es ja so:
Range("C443").Select
Selection.Copy
Range("C444").Select
ActiveSheet.Paste
Nun möchte ich aber keinen direkten Bezug. Ich weiß das geht irgendwie mit :
Row und Cells – und -1 und +1 aber wie ?????
Danke für eure Hilfe
Volker
Antwort schreiben
Antwort 1 von rainberg vom 22.09.2021, 07:37 Options
Hallo Volker,
wenn ich Dich richtig verstehe, müsste dieser Einzeiler reichen.
Selection.Copy Cells(Selection.Row - 1, Selection.Column)
Die zu kopierende Zelle muss vor dem Makrostart kopiert sein.
Gruß
Rainer
Antwort 2 von korfuweb vom 22.09.2021, 10:23 Options
und wie lautet der Syntax die Zelle darüber kopieren möchte?
Danke im Voraus
Antwort 3 von rainberg vom 22.09.2021, 10:55 Options
Hallo Volker,
das macht alles der Einzeiler, probier's doch einfach mal.
Selection.Copy
Kopiert den Inhalt der markierten Zelle
Cells(Selection.Row - 1, Selection.Column)
Fügt den
kopierten Inhalt in die darüber liegende Zelle einGruß
Rainer
Antwort 4 von korfuweb vom 22.09.2021, 11:15 Options
und genau das will ich ja anders rum: also den inhalt der darüberliegenden Zelle in die aktuelle Zelle einfügen.
Gruß
Volker
Antwort 5 von rainberg vom 22.09.2021, 11:56 Options
Sorry Volker,
da hatte ich Dich um 180° versetzt verstanden:-))
So müsste es richtig werden
Cells(Selection.Row - 1, Selection.Column).Copy
Cells(Selection.Row, Selection.Column)
Befehl ohne Zeilenumbruch!!
Gruß
Rainer
Antwort 6 von rainberg vom 22.09.2021, 12:28 Options
Hallo Volker,
oder kürzer
Cells(Selection.Row - 1, Selection.Column).Copy Selection
Gruß
Rainer
Antwort 7 von korfuweb vom 22.09.2021, 12:58 Options
irgendetwas scheint in der zweiten Spalte zu fehlen!
Er mault mir die zweite Zeile des Syntax an.
Gruß Volker
Antwort 8 von korfuweb vom 22.09.2021, 13:07 Options
Ok der 2. Syntax funktioniert super - und wie sage ichjetzt dem ganzen noch das egal wo er in der Zeile steht die Spalte "C" anspringen soll?
Danke für die Hilfe
Antwort 9 von rainberg vom 22.09.2021, 14:16 OptionsLösung
Hallo Volker,
Zitat:
irgendetwas scheint in der zweiten Spalte zu fehlen!
Er mault mir die zweite Zeile des Syntax an.
Ich schrieb ja,
"ohne Zeilenumbruch" weil die Forumssoftware
nicht in der Lage ist, eine Befehlszeile im Zusammenhang zu
schreiben.
Es muss also alles in eine Zeile und zwischen Copy und Cells muss
ein Leerzeichen stehen.
Zitat:
und wie sage ichjetzt dem ganzen noch das egal wo er in der
Zeile steht die Spalte "C" anspringen soll?
Cells(Selection.Row - 1, 3).Copy Cells(Selection.Row, 3)
Gruß
Rainer
Antwort 10 von korfuweb vom 22.09.2021, 16:33 Options
Hat spitzenmäßíg hingehauen! Jetzt kann ich auch ohne Probleme mal ne Zeile löschen ohne das #Bezug erscheint ;-)
Danke