Makro (Excel2007)

13/05/2010 - 11:58 von Oliver Hohl | Report spam
Hallo Newsgroup

Ich muss in einer Liste immer wieder das gleiche machen. Dies wollte ich mit
einem Makro automatisieren. Allerdings wurden beim Aufzeichen des Makros
absolute Zellbezüge genommen. Da ich ein VBA-Banause bin, habe ich keine
Ahnung wie ich den Makro anpassen muss:

Range("G51").Select
Selection.Cut Destination:=Range("G50")

=> in der Spalte G soll der Inhalt eine Zelle höher geschoben werden

Range("E51:F51").Select
Selection.Cut Destination:=Range("H50:I50")

=> der Inhalt der Spalten E & F soll eine Zeile höher und in die Spalten H &
I verschoben werden

Rows("51:52").Select
Selection.Delete Shift:=xlUp

=> Die Zwei Reihen sollen gelöscht werden

Gx Beginn
Gx nach Gx-1 verschieben
Ex & Fx nach Hx-1 & Ix-1 veschieben
Reihe x und x+1 löschen
Gx+1 selektieren
(G,E,F,H,I => Spalten // x, x+1, x-1 => Zeilen)

Kann mir jemand das Makro so àndern, dass es keine absoluten Bezüge mehr hat?

Vielen Dank und einen schönen Feiertag
Oliver
 

Lesen sie die antworten

#1 Andreas Killer
13/05/2010 - 12:36 | Warnen spam
Oliver Hohl schrieb:

Ich muss in einer Liste immer wieder das gleiche machen. Dies wollte ich mit
einem Makro automatisieren. Allerdings wurden beim Aufzeichen des Makros
absolute Zellbezüge genommen. Da ich ein VBA-Banause bin, habe ich keine


Man kann auch relative Bezüge aufzeichnen. Mangels XL2007 kann ich
aber leider nicht sagen wo Du da klicken musst.

Ahnung wie ich den Makro anpassen muss:


Bitte immer das ganze Makro posten! Nicht nur Bruchstücke.

Gx Beginn
Gx nach Gx-1 verschieben
Ex & Fx nach Hx-1 & Ix-1 veschieben
Reihe x und x+1 löschen
Gx+1 selektieren


Mit den Makroteilen kann ich mir bis hierher etwas zusammenreimen.

(G,E,F,H,I => Spalten // x, x+1, x-1 => Zeilen)


Das sagt mir nix.

Bevor Du das angehàngte Makro startest musst Du auf Zelle G51 klicken.

Andreas.

Sub Test()
Dim Base As Range, Temp As Range

'Gx Beginn
'Range("G51").Select
Set Base = Selection
'Selection.Cut Destination:=Range("G50")
Base.Cut Destination:=Base.Offset(-1, 0)

'Range("E51:F51").Select
Set Temp = Base.Offset(1, -2).Resize(1, 2)
'Selection.Cut Destination:=Range("H50:I50")
Temp.Cut Destination:=Temp.Offset(-1, 3)

'Rows("51:52").Select
Set Temp = Base.Offset(1, 0).Resize(2, 1).EntireRow
'Selection.Delete Shift:=xlUp
Temp.Delete Shift:=xlUp

'Gx+1 selektieren
Base.Offset(2, 0).Select
End Sub

Ähnliche fragen