Anzeige
Archiv - Navigation
1584to1588
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

Laufzeitfehler 1004 - Delete-Methode

Laufzeitfehler 1004 - Delete-Methode
08.10.2017 20:48:47
Bjoern
Hallo Forumer,
ich erstelle gerade ein Excel-Tool, das für die Urlaubsplanung genutzt werden soll.
Im Tabellenblatt Start werden die Personen/Profile über eine Eingabemaske hinzugefügt oder gelöscht. Das Anlegen funktioniert soweit, beim Löschen eines Profils erscheint folgende Fehlermeldung:
Laufzeitfehler 1004
Die Delete-Methode des Range-Objektes konnte nicht ausgeführt werden.
Ich kann mir diese Fehlermeldung nicht erklären, bzw. kann diese Fehlermeldung nicht beheben
Könnt Ihr mir weiterhelfen? Was muss geändert werden?
https://www.herber.de/bbs/user/116804.xlsm
Ablauf:
1. Tabellenblatt Start wählen
2. Command-Button "Eingabemaske" anklicken
3. Neuer Antrag anklicken
4. Textfelde ausfüllen
5. Speichern (Daten werden in deas Tabellenblatt geschrieben, auch in die Tabellenblätter M1-M13)
6. In der Listbox eine ID Anklicken
7. Löschen anklicken
8. Fehlermeldung erscheint (Die Profile werden nicht in den Tabellenblättern M1-M13 gelöscht.
Grüße

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 1004 - Delete-Methode
08.10.2017 21:46:05
Werner
Hallo Bjoern,
stell mal deinen Code zum Löschen hier rein und deine Datei als .xlsx. Kann im Moment keine .xlsm herunterladen.
Gruß Werner
AW: Laufzeitfehler 1004 - Delete-Methode
08.10.2017 22:08:13
Bjoern
Hallo Werner,
dies ist der Quellcode:

'Löschen Schaltfläche Ereignisroutine
Private Sub CommandButton2_Click()
Dim lZeile As Long
'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
If ListBox1.ListIndex = -1 Then Exit Sub
'Zum Löschen benötigen wir die Zeilennummer des ausgewählten Datensatzes
lZeile = 5 'Start
'Schleife solange etwas in der ersten Spalte in Start drin steht
Do While Trim(CStr(Start.Cells(lZeile, 1).Value))  ""
'Datensatz ID Spalte mit selektiertem Eintrag der ListBox vergleichen
If ListBox1.Text = Trim(CStr(Start.Cells(lZeile, 1).Value)) Then
'Eintrag gefunden, die ganze Zeile wird nun gelöscht
Start.Rows(CStr(lZeile & ":" & lZeile)).Delete  'Tabellenblatt Start, funktioniert
Worksheets("M1").Rows(CStr(lZeile + 1 & ":" & lZeile + 1)).Delete 'Tabellenblatt M1- _
M13, funktioniert nicht
Worksheets("M2").Rows(CStr(lZeile + 1 & ":" & lZeile + 1)).Delete
Worksheets("M3").Rows(CStr(lZeile + 1 & ":" & lZeile + 1)).Delete
Worksheets("M4").Rows(CStr(lZeile + 1 & ":" & lZeile + 1)).Delete
Worksheets("M5").Rows(CStr(lZeile + 1 & ":" & lZeile + 1)).Delete
Worksheets("M6").Rows(CStr(lZeile + 1 & ":" & lZeile + 1)).Delete
Worksheets("M7").Rows(CStr(lZeile + 1 & ":" & lZeile + 1)).Delete
Worksheets("M8").Rows(CStr(lZeile + 1 & ":" & lZeile + 1)).Delete
Worksheets("M9").Rows(CStr(lZeile + 1 & ":" & lZeile + 1)).Delete
Worksheets("M10").Rows(CStr(lZeile + 1 & ":" & lZeile + 1)).Delete
Worksheets("M11").Rows(CStr(lZeile + 1 & ":" & lZeile + 1)).Delete
Worksheets("M12").Rows(CStr(lZeile + 1 & ":" & lZeile + 1)).Delete
Worksheets("M13").Rows(CStr(lZeile + 1 & ":" & lZeile + 1)).Delete
'Die ListBox muss nun neu geladen werden!
Call UserForm_Initialize
If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
End If
lZeile = lZeile + 1 'Nächste Zeile bearbeiten
Loop
End Sub
Datei:
https://www.herber.de/bbs/user/116806.xlsx
Grüße,
Björn
Anzeige
AW: Laufzeitfehler 1004 - Delete-Methode
08.10.2017 23:25:21
Christian
Hi,
die Zeilen können nicht gelöscht werden, da du
in den M-Blättern sog. 'intelligente Tabellen' verwendest.
Durchkreuzt die zu löschende Zeile mehrere solcher Tabellen (in Vba sind dies sog. ListObjects)
kommt es beim Löschversuch der Zeile zum Fehler!
Kannst du z.B. testen, in dem du die Tabellen in einer der M-Blätter in Bereiche umwandelst und dann nochmal das Makro laufen lässt.
Zu dem Löschmakro sei angemerkt, dass es gefährlich ist, die zu löschende Zeile im Blatt Start zu bestimmen und diese Zeile dann blind in den M-Blättern zu löschen. Liegt z.B. irgendwo eine andere Sortierung vor, werden die falschen Datensätze gelöscht.
Ich würde meinen Urlaub nicht mit diesem Tool verwalten lassen wollen....
VG, Christian
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige