Löschen von Zellen per Makro

Bild

Betrifft: Löschen von Zellen per Makro
von: Jeff
Geschrieben am: 17.04.2005 14:43:35
Hallo Leute
Also. Ich habe ne Tabelle mit etwa 2400 Zeilen.
In der einen Spalte gibt es in jeder 8 Zeile eine Summenformel.
Beginnend bei H9. Unter der Summe wird eine Formel eingefügt.
Die nächsten 6 Zellen sollen gelöscht werden. Das wiederholt
sich dann zig mal.

Mein Makro sieht, da ich ein Anfänger bin, so aus.
Range("H10:H16").Select
Selection.ClearContents
Range("H18:H24").Select
Selection.ClearContents
Range("H26:H32").Select
Selection.ClearContents
Range("H34:H40").Select
Selection.ClearContents
Range("H42:H48").Select
usw...
und danach wird das ausgeführt. Ich kopiere die Formel in die Zelle unter der Summe...
Range("H10").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(R[-1]C[-5],Kundendaten!R4C1:R2000C2,2,FALSE)),"""",
VLOOKUP(R[-1]C[-5],Kundendaten!R4C1:R2000C2,2,FALSE))"
Range("H10").Select
Selection.Copy
Range("H18").Select
ActiveSheet.Paste
Range("H26").Select
ActiveSheet.Paste
usw...
Der Quellcode ist dementsprechend sehr sehr lang.
Kann ich da irgendwas anders machen, was den Quellcode kürzt??
Danke im Vorraus
Jeff

Bild

Betrifft: AW: Löschen von Zellen per Makro
von: RAnton
Geschrieben am: 17.04.2005 15:52:00
Hallo Jeff,
du könntest diesen Teil zum Beispiel mit einer einfachen Schleife ersetzen.
Range("H10:H16").Select
Selection.ClearContents
Range("H18:H24").Select
Selection.ClearContents
Range("H26:H32").Select
Selection.ClearContents
Range("H34:H40").Select
Selection.ClearContents
Range("H42:H48").Select
----- Schleife -----
Dim i As Integer
For i = 10 To 2400
Range("A" & CStr(i) & ":A" & CStr(i + 6)).ClearContents
Next

Wenn dir der Weg mit den Schleifen klar ist, kommst du auch mit dem Rest klar.

Gruß
Anton
Bild

Betrifft: AW: Löschen von Zellen per Makro
von: ransi
Geschrieben am: 17.04.2005 15:59:25
hallo jeff
versuch mal so:
(allerdings ungetestet)
Public

Sub t()
Dim L As Long
For L = 10 To 2400 Step 8
    Range(Cells(L, 8), Cells(L + 6, 8)).ClearContents
    Cells(L, 8).FormulaR1C1 = "deine formel"
Next
End Sub

ransi
Bild

Betrifft: AW: Löschen von Zellen per Makro
von: Jeff
Geschrieben am: 17.04.2005 16:37:43
Alter Schwede... Das ja mal nen Hammer. Es funktioniert einwandfrei...
lol, mehr als 1000 Zeilen Quellcode weniger.
Danke Sehr
Jeff
Bild

Betrifft: freut mich wenns klappt, aber....
von: ransi
Geschrieben am: 17.04.2005 16:50:24
hallo jeff
...hast du auch verstanden wie der code funktioniert ?
ransi
Bild

Betrifft: AW: freut mich wenns klappt, aber....
von: Jeff
Geschrieben am: 17.04.2005 17:18:08
Naja, net wirklich...
Bild

Betrifft: AW: Löschen von Zellen per Makro
von: WernerB.
Geschrieben am: 17.04.2005 16:29:43
Hallo Jeff,
wie gefällt Dir das?

Sub Jeff()
Dim laR As Long, i As Long
    Application.ScreenUpdating = False
    laR = Cells(Rows.Count, 8).End(xlUp).Row
    For i = 10 To laR Step 8
      Range("H" & i & ":H" & i + 6).ClearContents
    Next i
    Range("H10").FormulaR1C1 = _
      "=IF(ISERROR(VLOOKUP(R[-1]C[-5],Kundendaten!R4C1:R2000C2,2,FALSE)),"""",VLOOKUP(R[-1]C[-5],Kundendaten!R4C1:R2000C2,2,FALSE))"
    For i = 18 To laR Step 8
      Range("H" & i).Formula = Range("H10").FormulaR1C1
    Next i
    Application.ScreenUpdating = True
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Löschen von Zellen per Makro"