Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1656to1660
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Relative Bezüge in Makro

Relative Bezüge in Makro
21.11.2018 18:36:00
Wallenfang
Hallo Profis,
habe folgendes Problem:
Mit dem Makro-Rekorder habe ich dieses Makro aufgezeichnet:
Sub test()
' test Makro
Range("D14:K14").Select
Selection.Copy
Application.CutCopyMode = False
Selection.Copy
Range("B14").Select
ActiveSheet.PasteSpecial Format:=5, Link:=1, DisplayAsIcon:=False, _
IconFileName:=False
Range("B14").Select
Selection.Copy
Range("D14:K14").Select
Selection.PasteSpecial Paste:=xlPasteComments, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub
Es ist ein Kopiervorgang innerhalb einer Zeile (im Beispiel oben Zeile 14).
Nun möchte ich diesen Kopiervorgang in anderen Zeilen durchführen.Fnktioniert nicht wegen der absoluten Bezügen.
Was muss ich an dem Makro ändern? bzw. Wie muss das Makro dann aussehen?
Im Voraus schon mal vielen Dank.
Gruß Roland

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Relative Bezüge in Makro
21.11.2018 19:05:28
onur
Der Code ist etwas verwirrend - was genau wolltest du denn aufzeichnen?
AW: Relative Bezüge in Makro
21.11.2018 19:32:56
Wallenfang
Hallo onur,
folgendes soll damit erreicht werden:
Von der verbundenen Zelle D14:K14 soll der Kommentar (enthält ein Bild) in die Zelle B14 kopiert werden. Anschließend soll der gleiche Kommentar aus B14 wieder in die verbundene Zelle D14:K14 zurückkopiert werden. Das Zurückkopieren muss sein, da anscheinend der Kopiervorgang eines Kommentars mit Bild aus einer verbundenen Zelle nicht funktioniert. Der Kommentar wird verschoben anstatt kopiert.
Mit dem Zurückkopieren bekommt dann die verbundene Zelle den Kommentar zurück. Hoffe, ich konnte mich verständlich ausdrücken.
Gruß Roland
Anzeige
AW: Relative Bezüge in Makro
21.11.2018 19:39:18
onur
Bei verbundenen Zellen zählt immer nur die erste Zelle.
Das solte reichen:
Private Sub Kopieren(z As Long)
Cells(z, 4).Copy
Cells(z, 2).Select
ActiveSheet.PasteSpecial Format:=5, Link:=1, DisplayAsIcon:=False, IconFileName:=False
Cells(z, 2).Select
Selection.Copy
Cells(z, 4).Select
ActiveSheet.PasteSpecial Paste:=xlPasteComments, Operation:=xlNone, SkipBlanks:=False,  _
Transpose:=False
End Sub

Aufruf mitt Call Kopieren(ZeilenNr)
AW: Relative Bezüge in Makro
21.11.2018 19:26:53
Daniel
Hi
aufgezeichneter Code sollte immer überarbeitet werden.
Beispielsweise ist es in einem Makro nicht notwendig, einen Zellbereich zu selektieren, bevor man einen Befehl auf ihn anwendet, man kann immer auch den Befehl direkt auf den Zellbereich anwenden.
Lediglich beim Arbeiten mit der Maus muss man das tun, und der Recoder muss ja alle Aktionen des Anwenders aufzeichnen, daher.
Schritt 1: Code überarbeiten:
Sub test()
Range("D14:K14").Copy
Range("B14").PasteSpecial Format:=5, Link:=1, DisplayAsIcon:=False, _
IconFileName:=False
Range("B14").Copy
Range("D14:K14").PasteSpecial Paste:=xlPasteComments, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub
Schritt 2: zeilen Variabel machen, beispielsweise in dem man die die Bearbeitung in der Zeile der aktiven Zelle durchführt:
Sub test()
dim Z as Long
Z = ActiveCell.Row
Cells(z, 4).Resize(1, 8).Copy
Cells(z, 2).PasteSpecial Format:=5, Link:=1, DisplayAsIcon:=False, _
IconFileName:=False
Cells(z, 2).Copy
Cells(z, 4).Resize(1, 8).PasteSpecial Paste:=xlPasteComments, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub
Gruß Daniel
Anzeige
AW: Relative Bezüge in Makro
21.11.2018 19:45:08
Wallenfang
Hallo Daniel,
Danke für deinen Vorschlag.
Leider bekomme ich diese Makrozeile als Fehler angezeigt:
Cells(z, 2).PasteSpecial Format:=5, Link:=1, DisplayAsIcon:=False, _
IconFileName:=False
Gruß Roland
AW: Relative Bezüge in Makro
21.11.2018 19:54:29
Daniel
Hi
ah sorry.
bei ActiveSheet.Paste (was immer du da tust), kommst du um das Select nicht herum.
da musst du dann schreiben:
Cells(z, 2).Select
ActiveSheet.PasteSpecial Format:=5, Link:=1, DisplayAsIcon:=False, _
IconFileName:=False
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige