Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1896to1900
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

Daten löschen

Daten löschen
06.09.2022 08:16:38
Ramadani
Hallo Excel - Profis :)
Ich versuche ne Schleife zu erstellen, welche mir die Daten in verschiedenen Tabellenblättern (45_01, 45_02, 45_03, bis 45_10) ab Spalte J47 bis Spalte AU1000, löscht.
Habe schon einiges versucht und rumprobiert, aber es will nicht so richtig.
Zusatzinfo: Die Daten werden aus dem 1. Tabellenblatt ("Daten") nach bestimmten Werten durchsucht und anschliessend wird die ganze Zeile die den Wert enthält in die entsprechenden Tabellenblätter kopiert.
Ich danke euch herzlichst im Voraus :)
Gruss
Hixi

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten löschen
06.09.2022 08:36:03
MCO
Moin Hixi / Ramadani
Das sollte tun, was du willst

Sub Blattinhalte_löschen()
For i = 1 To 10
Sheets("45_" & Format(i, "00")).Range("J47:AU1000").ClearContents
Next i
End Sub
Gruß, MCO
AW: Daten löschen
06.09.2022 08:44:37
Pierre
Hallo MCO, hallo Hixi,
bei dem Code fehlt aber nach dem "Sub()" noch die Zeile "Dim i as Long"
Ansonsten passt es.
Gruß Pierre
nur alternativer Vorschlag...
06.09.2022 08:47:22
Pierre
Hallo Hixi,
MCO hat zwar schon den passenden Code, aber nur mal noch als Alternative eine Variante über Select Case:

Sub BereichLeeren()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "45_01", "45_02", "45_03", "45_04"
With ws
.Range("J47:AU55").ClearContents
End With
Case Else
End Select
Next ws
End Sub
Der Nachteil wäre, man müsste die Blätter einzeln auflisten.
Ich stelle es nur ein, damit du siehst, dass es (wie eigentlich fast immer) mehrere Möglichkeiten gibt.
Gruß Pierre
Anzeige
AW: nur alternativer Vorschlag...
06.09.2022 09:00:07
GerdL
Moin Pierre,
richtig, was du zur Variablendeklaration schreibst. Aber With..End With nehmen wir doch nur falls es nötig ist.
Gruß Gerd
AW: nur alternativer Vorschlag...
06.09.2022 09:11:47
Pierre
Hallo Gerd,
hier ist er aber doch nötig? Zumindest in meinem obigen Codebeispiel.
Wenn man die With-Klammer weg lässt, muss man den Punkt vor Range ebenfalls wegnehmen, dann referenziert es aber nur noch aufs aktuelle Blatt.
Oder was mache ich da falsch?
Gruß Pierre
AW: nur alternativer Vorschlag...
06.09.2022 09:21:36
MCO
Gerd meint es richtigerweise so:

Sub BereichLeeren()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "45_01", "45_02", "45_03", "45_04"
ws.Range("J47:AU55").ClearContents
Case Else
End Select
Next ws
End Sub
Statt die Namen der Sheets auzuschreiben wäre es auch möglich, den gemeinsamen Nenner zu prüfen;

For Each ws In ThisWorkbook.Worksheets
if instr(ws.Name,"45_")>0 then            ws.Range("J47:AU55").ClearContents
Next ws
Gruß, MCO
Anzeige
AW: nur alternativer Vorschlag...
06.09.2022 09:24:19
GerdL
Nein, nicht falsch, aber unnötig.
ws.Range(...)
statt
With WS
.Range(...)
End With
Gruß Gerd
AW: nur alternativer Vorschlag...
06.09.2022 09:33:06
Pierre
Oh wei...
Ja, natürlich. Danke für euren Hinweis. Da stand ich jetzt aber auch mal wieder völlig auf der Leitung.
Gruß Pierre

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige