Daten aus 2 Tabellenblättern löschen

Hallo,

ich habe ein Problem, dass mein Programmcode zwar richtig ist (habe die Codezeilen einzeln getestet), aber scheinbar trotzdem als gesamtes nicht vollständig ausgeführt werden will:

Das Löschen im ersten Tabellenblatt macht er noch einwandfrei, aber auch wenn ich ihm nur ganz wenig zum Löschen beim ersten Blatt auftrage, funktioniert es leider auch nicht.

Private Sub CommandButton4_Click()
'PopUp Eingaben_löschen wird geschlossen
Unload Eingaben_löschen

'Löschen aller Daten aus dem Tabellenblatt „Ausgaben“
Sheets(„Ausgaben“).Activate
Sheets(„Ausgaben“).Range(„A4:E30000“).ClearContents
'Löschen aller Daten aus dem Tabellenblatt „Einnahmen“
Sheets(„Einnahmen“).Activate
Sheets(„Einnahmen“).Range(„A4:E30000“).ClearContents

End Sub

ich habe ein Problem, dass mein Programmcode zwar richtig ist
(habe die Codezeilen einzeln getestet), aber scheinbar
trotzdem als gesamtes nicht vollständig ausgeführt werden
will:
Das Löschen im ersten Tabellenblatt macht er noch einwandfrei,
aber auch wenn ich ihm nur ganz wenig zum Löschen beim ersten
Blatt auftrage, funktioniert es leider auch nicht.

Hallo Wagnthom,

streiche mal die Activate-Zeilen ersatzlos.

„funktioniert es leider auch nicht“ ist zu Informationsarm, was genau geschieht, gechieht nicht?

Gruß
Reinhard

Grüezi wagnthom

ich habe ein Problem, dass mein Programmcode zwar richtig ist
(habe die Codezeilen einzeln getestet), aber scheinbar
trotzdem als gesamtes nicht vollständig ausgeführt werden
will:

Das Löschen im ersten Tabellenblatt macht er noch einwandfrei,
aber auch wenn ich ihm nur ganz wenig zum Löschen beim ersten
Blatt auftrage, funktioniert es leider auch nicht.

Private Sub CommandButton4_Click()
'PopUp Eingaben_löschen wird geschlossen
Unload Eingaben_löschen

'Löschen aller Daten aus dem Tabellenblatt „Ausgaben“
Sheets(„Ausgaben“).Activate
Sheets(„Ausgaben“).Range(„A4:E30000“).ClearContents
'Löschen aller Daten aus dem Tabellenblatt „Einnahmen“
Sheets(„Einnahmen“).Activate
Sheets(„Einnahmen“).Range(„A4:E30000“).ClearContents

End Sub

Wo genau steht denn dieser Code?
Liegt der vielleicht in der UF, die damit entladen wird?

Dann könnte es helfen, wenn Du den Unload-Befehl ans Ende stellst (und wie Reinhard schon sagte, die .Activate sind nicht notwendig, da Du ja sauber referenziert hast).


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Danke schon mal, dass ihr euch meinem Problem angenommen habt.

Ich beschreibe euch mal gerade mein gesamtes Projekt:

Ich habe eine Buchhaltungstabelle erstellt und einen Button erstellt. Mit diesem Button wird ein UF geöffnet, das nachfrägt ob der Monat abgeschlossen werden soll (mit Buttons ja/nein). Bei ja wird die komplette Arbeitsmappe in ein PDF abgespeichert und das nächste UF wird geöffnet, welches frägt ob die eingetragenen Daten (aus beiden Tabellenblättern) gelöscht werden sollen.

Wo genau steht denn dieser Code?
Liegt der vielleicht in der UF, die damit entladen wird?

Dann könnte es helfen, wenn Du den Unload-Befehl ans Ende
stellst (und wie Reinhard schon sagte, die .Activate sind
nicht notwendig, da Du ja sauber referenziert hast).

Der Code liegt im Button vom UF das geschlossen werden soll. Das dürfte aber nicht das Problem sein, da ich das Problem auch habe, wenn ich das „unload“ ans Ende setze. Dann wird allerdings das „unload“ ebenfalls nicht ausgeführt.

Wenn ich den „Activate“-Code weglasse ist das Problem auch noch da.

Das Problem scheint hier mit dem zweiten „ClearContents“ zu sein, da es auch auftritt, wenn ich ihm nur ganz wenig zum löschen auftrage.

Hallo Wagnthom,

Der Code liegt im Button vom UF das geschlossen werden soll.
Das dürfte aber nicht das Problem sein, da ich das Problem
auch habe, wenn ich das „unload“ ans Ende setze. Dann wird
allerdings das „unload“ ebenfalls nicht ausgeführt.

nochmal, beschreib mal das „nicht ausgeführt“ genauer.
Du klickst in der UF auf den CB, was geschieht?
Setz einen Haltepunkt oben im Code, dann gehe mit F8 weiter und beschreibe was geschieht.

Gruß
Reinhard

Wenn ich den „Activate“-Code weglasse ist das Problem auch
noch da.

Das Problem scheint hier mit dem zweiten „ClearContents“ zu
sein, da es auch auftritt, wenn ich ihm nur ganz wenig zum
löschen auftrage.

nochmal, beschreib mal das „nicht ausgeführt“ genauer.
Du klickst in der UF auf den CB, was geschieht?
Setz einen Haltepunkt oben im Code, dann gehe mit F8 weiter
und beschreibe was geschieht.

Ich hab jetzt noch mal mit Haltepunkten durchlaufen lassen und stelle fest, die Anweisung ClearContents beendet jeglichen Prozess.
Selbst wenn man mit nur einem Clearcontents arbeitet beendet es jegliche Prozesse. Ich habe einen Haltepunkt bei End Sub den er nicht erreicht:

Private Sub CommandButton4_Click()
Range(„A4:E30000“).ClearContents
End Sub

Also das hier ist mein kompletter Code aus der UF „Eingaben_löschen“:
_________________________________________________
Private Sub CommandButton4_Click()

Unload Eingaben_löschen 'PopUp Eingaben_löschen wird geschlossen

'Löschen aller Daten aus dem Tabellenblatt „Ausgaben“
Sheets(„Ausgaben“).Activate
Sheets(„Ausgaben“).Range(„A4:E30000“).ClearContents

'Löschen aller Daten aus dem Tabellenblatt „Einnahmen“
Sheets(„Einnahmen“).Activate
Sheets(„Einnahmen“).Range(„A4:E30000“).ClearContents

End Sub
_________________________________________________________
Private Sub CommandButton3_Click()

'PopUp Eingaben_löschen wird geschlossen

Unload Eingaben_löschen

End Sub

Ich hab jetzt noch mal mit Haltepunkten durchlaufen lassen und
stelle fest, die Anweisung ClearContents beendet jeglichen
Prozess.
Selbst wenn man mit nur einem Clearcontents arbeitet beendet
es jegliche Prozesse. Ich habe einen Haltepunkt bei End Sub
den er nicht erreicht:

Private Sub CommandButton4_Click()
Range(„A4:E30000“).ClearContents
End Sub

Hallo Wagnthom,

muß irgendwie an deinen Zellen liegen o.ä., nicht am Code.

Und da kommt keine Fehlermeldung?

Ist eine Zelle, z.B. A4 mit A3 „verbunden“?

Teste mal Clearcontents bei jeder Spalte einzeln, also so
Range(„A4:A30000“).ClearContents
Range(„B4:B30000“).ClearContents
usw.

danach die Zeilen, ggfs. in einer Schleife.

oder so:

Private Sub CommandButton4\_Click()
Dim Zei As Long, Spa As Long
On Error GoTo hell
Application.ScreenUpdating = False
With Worksheets("Tabelle1") ' Namen anpassen !
 For Zei = 4 To 30000
 For Spa = 1 To 5
 .Cells(Zei, Spa).ClearContents
 Next Spa
 Next Zei
 Application.ScreenUpdating = True
hell:
 If Err.Number 0 Then
 MsgBox .Cells(Zei, Spa).Address(0, 0)
 Resume Next
 End If
End With
End Sub

Gruß
Reinhard

Grüezi wagnthom

Also das hier ist mein kompletter Code aus der UF
„Eingaben_löschen“:
_________________________________________________
Private Sub CommandButton4_Click()

Unload Eingaben_löschen 'PopUp Eingaben_löschen wird
geschlossen

'Löschen aller Daten aus dem Tabellenblatt „Ausgaben“
Sheets(„Ausgaben“).Activate
Sheets(„Ausgaben“).Range(„A4:E30000“).ClearContents

'Löschen aller Daten aus dem Tabellenblatt „Einnahmen“
Sheets(„Einnahmen“).Activate
Sheets(„Einnahmen“).Range(„A4:E30000“).ClearContents

End Sub

Hmmm, und wie sieht es aus, wenn Du einfach die Inhalte auf leer setzt?

Private Sub CommandButton4_Click()

Unload Eingaben_löschen 'PopUp Eingaben_löschen wird geschlossen

'Löschen aller Daten aus dem Tabellenblatt „Ausgaben“
Sheets(„Ausgaben“).Range(„A4:E30000“).Value = „“

'Löschen aller Daten aus dem Tabellenblatt „Einnahmen“
Sheets(„Einnahmen“).Range(„A4:E30000“).Value = „“

End Sub

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Servus!

Und da kommt keine Fehlermeldung?

Ist eine Zelle, z.B. A4 mit A3 „verbunden“?

Teste mal Clearcontents bei jeder Spalte einzeln, also so
Range(„A4:A30000“).ClearContents
Range(„B4:B30000“).ClearContents
usw.

danach die Zeilen, ggfs. in einer Schleife.

oder so:

Es kommt keine Fehlermeldung und die Zellen sind nicht verbunden.
Dann habe ich das Zeilen einzeln löschen probiert, aber weder horizontal noch vertikal funktioniert es.
Der andere Code den du mir angeboten hast hat auch nicht funktioniert, weil da noch ein fehler im hell Bereich war.

Hmmm, und wie sieht es aus, wenn Du einfach die Inhalte auf
leer setzt?

Hier habe ich das selbe Problem wie immer, auch wenn ich es auf Empty setze.

Ist nicht so schlimm, dass ihr mir da bis jetzt nicht weiterhelfen konntet.

Jetzt habe ich einen Button gemalt und mit einem Makro zum Löschen der Tabelle versehen. Den Button mit Makro habe ich jetzt auf jede Seite kopiert und jetzt muss man die Seiten halt einzeln löschen.
Hier ist es dann nicht mehr schlimm, dass ich da einen Befehl habe der das gesamte Makro stoppt.
Ich habe noch was in nem anderen Forum gefunden, von irgendwelchen „corrupt tables“ vielleicht liegt das Problem ganz wo anders.

Aber trotzdem vielen Dank für euer Bemühen.
Servus
wagnthom