2.4k Aufrufe
Gefragt in Tabellenkalkulation von korfuweb Mitglied (949 Punkte)
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

10 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
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
0 Punkte
Beantwortet von korfuweb Mitglied (949 Punkte)
und wie lautet der Syntax die Zelle darüber kopieren möchte?
Danke im Voraus
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
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 ein
[i]

Gruß
Rainer
0 Punkte
Beantwortet von korfuweb Mitglied (949 Punkte)
und genau das will ich ja anders rum: also den inhalt der darüberliegenden Zelle in die aktuelle Zelle einfügen.
Gruß
Volker
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
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
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Volker,

oder kürzer

Cells(Selection.Row - 1, Selection.Column).Copy Selection


Gruß
Rainer
0 Punkte
Beantwortet von korfuweb Mitglied (949 Punkte)
irgendetwas scheint in der zweiten Spalte zu fehlen!

Er mault mir die zweite Zeile des Syntax an.

Gruß Volker
0 Punkte
Beantwortet von korfuweb Mitglied (949 Punkte)
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
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Volker,

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.

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
0 Punkte
Beantwortet von korfuweb Mitglied (949 Punkte)
Hat spitzenmäßíg hingehauen! Jetzt kann ich auch ohne Probleme mal ne Zeile löschen ohne das #Bezug erscheint ;-)

Danke
...