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

VBA Tabellenbereich löschen

VBA Tabellenbereich löschen
29.05.2020 12:01:07
Peer
Hallo.
Ich weiß zwar, das meine Frage vielen ein Lächeln ins Gesicht zaubern wird, aber ich versuche trotzdem mal, sie zu stellen.
Was stimmt am Code nicht?
Public Sub TN_Loeschen()
Dim wks As Worksheet
Dim Bereich As Range
Dim loZ As Long
Set wks = Sheets("Teilnehmer")
loZ = wks.Cells(2, 1).End(xlUp).Row
Set Bereich = wks.Range(Cells(2, 1), loZ)
wks.Bereich.ClearContents
End Sub

Ich möchte mit diesem Sub den Inhalt der Tabelle "Teilnehmer" im Bereich ab Zeile 2 (Überschrift möchte ich behalten) löschen.
LG
Peer

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Tabellenbereich löschen
29.05.2020 12:06:46
MCO
Hallo Peer!
die Zeile
Set Bereich = wks.Range(Cells(2, 1), loZ)

verlangt nach 2 Zellen um den Bereich zu definieren. loZ ist aber nur eine Zahl.
Enweder definierst du loZ as range und schreibst

loZ = wks.Cells(2, 1).End(xlUp)
oder

Set Bereich = wks.Range(Cells(2, 1),Cells(loZ, 1))
Gruß, MCO
AW: VBA Tabellenbereich löschen
29.05.2020 12:11:45
hary
Moin
Set Bereich = wks.Range(wks.Cells(2, 1), wks.Cells(loZ, 1))

Ohne wks vor Cells kann es in die Hose gehen.
oder nur so.
wks.Range(wks.Cells(2, 1), wks.Cells(loZ, 1)).ClearContents

gruss hary
Anzeige
AW: VBA Tabellenbereich löschen
29.05.2020 12:35:11
Peer
Hallo hary.
Ich habe deine Antwort zu Herzen genommen, bekomme aber die Fehlermeldung "Anwendungs- oder Objektdefinierter Fehler" und bleibt bei Set Bereich hängen.
Public Sub TN_Loeschen()
Dim wks As Worksheet
Dim Bereich As Range
Dim loZ As Integer
Set wks = Sheets("Teilnehmer")
loZ = wks.Cells(2, 1).End(xlUp)
Set Bereich = wks.Range(wks.Cells(2, 1), wks.Cells(loZ, 1))
Bereich.ClearContents
'wks.Range(wks.Cells(2, 1), wks.Cells(loZ, 1)).ClearContents
End Sub

LG
Peer
AW: VBA Tabellenbereich löschen
29.05.2020 12:44:39
hary
Moin
Da hast du dir einen Fehler eingebaut.
Verglei mal aus dem ersten Code
loZ = wks.Cells(2, 1).End(xlUp).Row

mit dem jetzigem
loZ = wks.Cells(2, 1).End(xlUp)

Was faellt dir auf? ;-))
Nimm anstatt Dim loZ As Integer --> Long
gruss hary
Anzeige
AW: VBA Tabellenbereich löschen
29.05.2020 13:06:24
Peer

Public Sub TN_Loeschen()
Dim wks As Worksheet
Dim Bereich As Range
Dim loZ As Long
Set wks = Sheets("Teilnehmer")
loZ = wks.Cells(2, 1).End(xlUp).Row
Set Bereich = wks.Range(wks.Cells(2, 1), wks.Cells(loZ, 1))
Bereich.ClearContents
'wks.Range(wks.Cells(2, 1), wks.Cells(loZ, 1)).ClearContents
End Sub

bleibt trotzdem hängen.
LG
Peer
AW: VBA Tabellenbereich löschen
29.05.2020 13:24:21
hary
Moin Peer
Hab hier noch mal die zeile fuer LoZ geaendert.
So laeuft er(getestet) durch.
Dim wks As Worksheet
Dim Bereich As Range
Dim loZ As Long
Set wks = Sheets("Teilnehmer")
loZ = wks.Cells(Rows.Count, 1).End(xlUp).Row '-- hier noch geaendert
Set Bereich = wks.Range(wks.Cells(2, 1), wks.Cells(loZ, 1))
Bereich.ClearContents

gruss hary
Anzeige
AW: VBA Tabellenbereich löschen
29.05.2020 13:33:10
Peer
Ok, hary.
Es war also nur der Zeilenindex in der loZ Variablen.
Danke.
Aber wie kann ich erreichen, dass nicht nur der Inhalt die Spalte A gelöscht wird, sondern alle Zeilen aller Spalten?
Dies war ursprünglich mein Ziel.
Gruß
Peer
AW: mit EntireRow
29.05.2020 13:37:22
hary
Moin
Bereich.EntireRow.ClearContents

gruss hary
AW: mit EntireRow
29.05.2020 13:54:33
Peerli
Danke, hary.
Ich bin aktuell unterwegs und kann gerade nicht probieren. Es klingt aber nachvollziehbar.
LG
Peer
AW: mit EntireRow
29.05.2020 17:44:19
Peer
Hallo hary.
Bin jetzt daheim am PC und habe deinen Vorschlag gleich ausprobiert.
Er funktioniert.
Danke nochmals dafür.
Nun kommt bei mir gleich die nächste Frage auf, die ich aber in einem neuen Thread stellen möchte.
LG
Peer
Anzeige
AW: VBA Tabellenbereich löschen
29.05.2020 12:21:53
Peer
Hallo MCO.
Danke für die schnelle Antwort.
Wenn man nochmal darauf gestoßen wird, sieht man es als logisch an.
Trotzdem kommt bei

wks.Bereich.ClearContents
eine Fehlermeldung "Objekt oder Methode nicht gefunden".
Ich habe der Deklaration von loZ Long in Integer zugewiesen. Aber kein Erfolg.
Woran kann dies liegen. Bereich ist doch deklariert und ihm einen Wert zugedacht.
Gruß
Peer
AW: VBA Tabellenbereich löschen
29.05.2020 12:25:29
peterk
Hallo
"Bereich" ist bereits ein Range der einem Worksheet zugeordnet ist, daher reicht

Bereich.ClearContents

Anzeige

21 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige