Herbers Excel-Forum - das Archiv

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
Excel-Beispiele zum Thema "Löschen von Zellen per Makro"
Makros in Abhängigkeit vom Zellennamen aufrufen Zellen auf Kommentar überprüfen
Spalten bedingt summieren und Zellen formatieren Text aus Textbox in Zellen aufteilen
Zellen vergleichen und markieren Zählen formatierter Zellen
Daten aus Textdatei gezielt in Zellen übernehmen Zellen verbinden und trennen
Zellen bei Minuswerten schraffieren Zeilen oberhalb der markierten Zellen einfügen