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

Warum Laufzeitfehler 1004

Warum Laufzeitfehler 1004
12.12.2012 14:10:51
Pascal
Hallo
ich versuche mit dem folgenden Code, in einer Excel-Tabelle per Knopfdruck einen bestimmten Bereich zu löschen.
D.h. ich möchte eigentlich alle Usedranges löschen, mit Ausnahme der Titelzeile.
Daher hab ich das mit folgendem Code probiert:
Private Sub CommandButton2_Click()
'Liste löschen
Sheets("Liste").Select
Rows("3:3").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.ClearContents
Range("F3").Select
End Sub

Was ist da Falsch ? Ich erhalte immer den Laufzeitfehler 1004 mit dem obigen Code.
oder ...
wie schaff ich es, per Knopdruck alle Werte in der Liste zu löschen, mit Ausnahme der Titelzeile ?
Danke für die Hilfe

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Das ist falsch, ...
12.12.2012 14:27:00
Luc:-?
…Pascal:
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Man kann nicht einfach ganze Objekte als Range-Bezeichner verwenden! Das müssen Texte sein, die ein gültiges Objekt ergeben. Außerdem willst du hier wohl ein Mehrfachauswahlobjekt kreieren (falls das nicht schon der nächste Fehler ist), was man hier besser mit Union macht.
Anmerkung: Das sind nur die Formalien! Den (Un- bzw)Sinn des Ganzen habe ich mir nicht näher angesehen; ka'Zeit!
Gruß Luc :-?

AW: Das ist falsch, ...
12.12.2012 14:47:08
Pascal
Hallo Luc
Danke für die Antwort.
Aber das Makro hab ich aus einer Aufzeichnung via Makro-Recorder zusammengebastelt.
wie müsste ich also den Code genau formulieren, damit er mir alle nichtleeren Zellen auf dem Tabellenblatt löscht ? (mit Ausnahme der Titel-Zeile)
Gruss: Pascal

Anzeige
AW: Das ist falsch, ...
12.12.2012 14:59:31
Henrik
Hallo Pascal,
hier 2 Varianten. Grundsätzlich kannst du jdm Objekt (Bild, Grafik, etc) ein Makro per Rechtsklick zuweisen. Du hast es hier dem Click-Ereignis des ActivX Steuerelement CommandButton zugewiesen.

Private Sub CommandButton2_Click()
Dim rngUR As Range
'Variante 1 Ab Zeile 2 bis zur letzten Zeile mit einem Eintrag werden die Inhalte gelöscht
With ThisWorkbook.Worksheets("Liste")
Set rngUR = .UsedRange
.Rows(rngUR.Row + 1 & ":" & rngUR.Row + rngUR.Rows.Count - 1).ClearContents
End With
End Sub
Private Sub CommandButton2_Click()
Dim rngUR As Range
'Variante 2. Ab Zeile 2 bis zur Zeile einer markierten Zelle werden die Inhalte gelöscht
With ThisWorkbook.Worksheets("Liste")
Set rngUR = .UsedRange
.Rows(rngUR.Row + 1 & ":" & ActiveCell.Row).ClearContents
End With
End Sub

Gruß Henrik

Anzeige
AW: Das ist falsch, ...
12.12.2012 16:00:44
Pascal
Sali Henrik
Herzlichen Dank für deine Erklärung und das super -Codebeispiel.
dieses läuft einwandfrei.
jetzt muss ich nur noch in deinem Codebeispiel einbauen, dass er mir gleichzeitig auf dem Sheet "Liste2" die beiden Spalten A und B komplett löscht.
dies werde ich vermutlich aber nicht mit der funktion Usedrange hinkriegen oder ?
oder kann ich mit Usedrange auch Columns ansprechen ?
Private Sub CommandButton2_Click()
Dim rngUR As Range
'Variante 1 Ab Zeile 2 bis zur letzten Zeile mit einem Eintrag werden die Inhalte gelöscht
With ThisWorkbook.Worksheets("Liste")
Set rngUR = .UsedRange
.Rows(rngUR.Row + 1 & ":" & rngUR.Row + rngUR.Rows.Count - 1).ClearContents
End With
End Sub

Anzeige
AW: Das ist falsch, ...
12.12.2012 16:13:20
Henrik
Hallo Pascal,
so sollte es dann gehen. Zauberwort delete. Wenn du einen Begriff nicht kennst, einfach markieren und F1 drücken. Da wird dich geholfen.

With ThisWorkbook
Set rngUR = .UsedRange
.Worksheets("Liste").Rows(rngUR.Row + 1 & ":" & rngUR.Row + rngUR.Rows.Count - 1). _
ClearContents
.Worksheets("Liste2").Columns("A:B").Delete
End With

Gruß Henrik

AW: Das ist falsch, ...
12.12.2012 16:22:28
Pascal
Perfekt !
Danke herzlich !
werde das gleich mal ausprobieren und mich dann mit dem Aufbau des Codes auseinandersetzen.
(man will ja schliesslich immer wieder was dazulernen)

Anzeige
AW: Das ist falsch, ...
12.12.2012 16:56:00
Pascal
ZU FRÜH GEFREUT :-(
Nun erhalte ich einen Laufzeitfehler 438

Was ist denn das für'n Quatsch ...
12.12.2012 17:32:59
Luc:-?
…mit Soße, Henrik:
.Worksheets("Liste2").Columns("A:B").Delete
Columns("A") mag ja evtl noch klappen, obwohl das genausoein schlechtes VBA-Coding ist, denn hier wird eigentl eine Zahl erwartet. Das kannst du so wie oben mit Range machen, aber doch nicht mit Column!
Gruß Luc :-?

AW: Was ist denn das für'n Quatsch ...
12.12.2012 17:51:06
Henrik
Hallo Luc,
ich hüte mich dir zur widersprechen, da du wesentlich mehr Erfahrung hast.
Nichts desto trotz, bei mir geht's.
Hier die Datei:
https://www.herber.de/bbs/user/82982.xlsm
Gruß Henrik

Anzeige
Kann sein, aber das MACHT MAN NICHT!
12.12.2012 18:15:31
Luc:-?
Gruß Luc :-?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige