Microsoft Excel

Herbers Excel/VBA-Archiv

leeren einer Spalte aber ohne Überschrift


Betrifft: leeren einer Spalte aber ohne Überschrift
von: Peter
Geschrieben am: 20.04.2019 15:52:42

Hallo ihr Excelspezialisten,

habe da gerade mal ein Problem, wie ich eine Spalte leeren kann ohne dass die Überschrift gelöscht wird, wenn die Spalte bereits geleert ist.

Könnt ihr mir bitte helfen.

Besten Dank

Gruss
Peter

  

Betrifft: AW: leeren einer Spalte aber ohne Überschrift
von: Hajo_Zi
Geschrieben am: 20.04.2019 15:57:54

Hallo Peter,

warum leeren, wenn schon Leer?

wenn die Spalte bereits geleert ist.
GrußformelHomepage

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.


  

Betrifft: AW: leeren einer Spalte aber ohne Überschrift
von: Peter
Geschrieben am: 20.04.2019 16:00:50

Hallo Hajo,

weil das Makro auch ausgeführt werden kann, wenn die Spalte noch leer ist.

Meine Zeile fürs leeren:
Worksheets("Hilfstabelle").Range("T2:T" & Range("T65536").End(xlUp).Row).ClearContents

Wenn diese Zeile ausgeführt wird wenn T2 bereits leer dann wird T1 gelöscht.

Gruss
Peter


  

Betrifft: AW: Frage zu Range und Range(Cells)
von: Niclaus Wurthberg
Geschrieben am: 20.04.2019 18:02:16

Hallo Hajo

Im Zusammenhang mit der Frage von Peter habe ich selber eine Frage, die mich schon länger "beschäftigt"

Wie Peter will ich in der "Hilfstabelle" den Inhalt der Spalte T löschen – nur die Spaltenüberschrift in T1 soll stehen bleiben.

Das gelingt mir mit folgendem Makro:

lz = Worksheets("Hilfstabelle").Cells(Rows.Count, 20).End(xlUp).Row
    If lz = 1 Then Exit Sub
Worksheets("Hilfstabelle").Range(Cells(2, 20), Cells(lz, 20)).ClearContents

ABER nur dann, wenn "Hilfstabelle" die aktive Tabelle ist, von der aus ich das Makro aufrufe.

Wenn eine andere Tabelle, z. B. "Tabelle2" die aktive Tabelle ist, und ich starte das Makro, dann kommt es zur Fehlermeldung "Laufzeitfehler 1004: Anwendungs- oder objektdefinierter Fehler".

Und ein zweites ABER:
Wenn ich es mit folgendem Makro mache, wird der gewünschte Bereich in jedem Fall gelöscht, egal aus welcher aktiven Tabelle heraus ich das Makro starte.
lz = Worksheets("Hilfstabelle").Cells(Rows.Count, 20).End(xlUp).Row
    If lz = 1 Then Exit Sub
Worksheets("Hilfstabelle").Range("T2:T" & lz).ClearContents

Meine Frage: Ist denn «Worksheets("Hilfstabelle").Range("T2:T" & lz)» nicht äquivalent
zu «Worksheets("Hilfstabelle").Range(Cells(2, 20), Cells(lz, 20))»?
Wie müsste ich das Makro mit «Range(Cells(),Cells())» gestalten, damit es auch damit klappen würde? Und ohne, dass ich «Sheets("Hilfstabelle").Select» einfügen muss?

Vielen Dank jetzt schon und viele Ostergrüsse Niclaus


  

Betrifft: AW: Frage zu Range und Range(Cells)
von: hary
Geschrieben am: 21.04.2019 08:42:59

Moin
"ABER nur dann, wenn "Hilfstabelle" die aktive Tabelle ist"
Ohne Vorgabe des Tabellenblattes, ist fuer Range und Cells immer das aktive Blatt.
Faellt dir was auf?

Worksheets("Hilfstabelle").Range(Cells(2, 20), Cells(lz, 20))
hier mit Zuweisung:
Worksheets("Hilfstabelle").Range(Worksheets("Hilfstabelle").Cells(2, 20), Worksheets("Hilfstabelle").Cells(lz, 20))
Da das viel schreiberei ist, nimmt man da die With Anweisung.
With Worksheets("Hilfstabelle")
 lz = .Cells(Rows.Count, 20).End(xlUp).Row
  .Range(.Cells(2, 20), .Cells(lz, 20))
End With
Wobei der Punkt vor Range und Cells gesetzt werden muss
gruss hary


  

Betrifft: AW: Frage zu Range und Range(Cells)
von: Niclaus Wurthberg
Geschrieben am: 21.04.2019 12:10:57

Grüezi Hary

«Faellt dir was auf?»
JA!!

Vielen Dank Niclaus


  

Betrifft: AW: leeren einer Spalte aber ohne Überschrift
von: Niclaus Wurthberg
Geschrieben am: 20.04.2019 16:21:28

Und einfach so?

Worksheets("Hilfstabelle").Range("T2:T65536").ClearContents

Grüsse Niclaus


  

Betrifft: AW: leeren einer Spalte aber ohne Überschrift
von: Peter
Geschrieben am: 20.04.2019 16:26:43

Hallo Niclaus,

klappt bestens - vielen Dank.

Gruss
Peter