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

Fehler 424 <<Objekt erforderlich>>

Fehler 424 <<Objekt erforderlich>>
Roman
Hallo ihr lieben,
hoffe ihr habt ein Ausweg, bin da echt schon lange dran und finde einfach keine lösung. ;( Bin aber leider auch noch kein VBA Profi und bin noch am lernen.
Folgendes: Ich habe in ein Tabellenblatt 1 wo sich ein Lösch-Button befindet über dem es möglich sein sollte ab mind. Zeile 7, durch eingeben in ein Textfeld von Zeile bis Zeile im Formular einen Bereich zu löschen und dabei vorher zu prüfen ob in einem Tabellenblatt2 zu den jeweiligen Artikel ein Eintrag vorhanden ist. Ist dieser Vorhanden soll eine extra abfrage gemacht werden ob dieser wirklich gelöscht werden soll und anschließend halt den ausgewählten Bereich löschen.
Nun zu meinem Problem: Hab in Excel 2003 das ganze geschrieben und da lief es auch einwandfrei. Aber seit ich den umstieg in Excel 2007 gemacht habe, löscht er nicht mehr richtig und bringt die Fehlermeldung :424 Objekt erforderlich und makiert folgende Zeile in dieser Prozedur(siehe nächster Post)!
Könnt ihr hiermit schon etwas anfangen? Oder braucht ihr die gesamten Cods aus den Modulen und dem Formular?
Würde mich echt freuen wenn ihr eine lösung habt oder wenn wir hier den fehler nicht finden dann kann ich auch eine demo mappe hochladen. Weiß zwar noch net wie das hier geht, aber bekommen wir auch noch hin :D.
Oder halt ein neuen vorschlag wie man über ein Formular einen bestimmten beriech aussuchen kann und vorher noch eine Prüfung macht bevor er löscht.
Weihnachtliche Grüße
Roman

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Fehler 424 <<Objekt erforderlich>>
28.12.2011 14:09:05
Roman
Der Code:
Public Sub ClearFromTo(RngIDList As Range)
Dim lngRow&, strID$
'**Clear durchführen
For lngRow = RngIDList.Rows.Count To 1 Step -1
'**ID die gelöscht werden soll auslesen
strID = RngIDList.Cells(lngRow, 1).Text  '
Weihnachtliche Grüße
Roman
RngIDList ist ein Parameter der Prozedur, ...
28.12.2011 15:37:29
Luc:-?
…der ihr übergeben wdn muss, Roman,
sonst würde sie schon beim Start `zicken' → also muss da irgendwas drin sein, was nicht als Objekt akzeptiert wird — ein Nothing verursacht. Das ist natürl aus deinem Code nicht zu erkennen.
Gruß Luc :-?
AW: RngIDList ist ein Parameter der Prozedur, ...
28.12.2011 21:06:30
Roman
Soll ich dann komlett alle Prozeduren die dran hängen reinkopieren oder dir das Formular per email oder so senden?
Wäre schön wenn wir zu einer lösung finden würden...
Anzeige
AW: RngIDList ist ein Parameter der Prozedur, ...
29.12.2011 08:40:27
Roman

Public Sub ClearFromTo(RngIDList As Range)
Dim lngRow&, strID$
'**Clear durchführen
For lngRow = RngIDList.Rows.Count To 1 Step -1
'**ID die gelöscht werden soll auslesen
strID = RngIDList.Cells(lngRow, 1).Text
If CheckID_DeleteRelease(strID, Worksheets("Fälle").Range("B7:B" & Rows.Count), _
Worksheets("Fälle").Range("X:AA")) Then
'Zuerst Datensätze aus KindTabellen entfernen,
Call Delete_ID_EntireRow(strID, Worksheets("Fälle").Range("B7:B" & Rows.Count))
'...dann Datensätze aus HauptTabelle entfernen
Call Delete_ID_EntireRow(strID, Worksheets("Input").Range("J7:J" & Rows.Count))
End If
Next lngRow
End Sub

Public Sub Delete_ID_EntireRow(ID As String, Target As Range)
Dim rngFind As Range
If ID  "" And Not Target Is Nothing Then
Set rngFind = Target.Find(what:=ID, searchdirection:=xlPrevious)
Do While Not rngFind Is Nothing
If Not rngFind Is Nothing Then rngFind.EntireRow.Delete (xlUp)
Set rngFind = Target.FindNext
Loop
End If
End Sub
Public Function CheckID_DeleteRelease(ID As String, Target As Range, rngInput As Range) As  _
Boolean
Dim blnRtrn As Boolean
blnRtrn = True
If CheckID_InputExists(ID, Target, rngInput) Then
If vbYes  MsgBox("Für '" & ID & "' sind Eingaben vorhanden!" & vbLf & _
"Sollen die Datensätze trotzdem gelöscht werden?", _
vbQuestion + vbYesNo) Then blnRtrn = False
End If
CheckID_DeleteRelease = blnRtrn
End Function
Public Function CheckID_InputExists(ID As String, Target As Range, rngInput As Range) As  _
Boolean
Dim blnRtrn As Boolean, rngFind As Range, rngIntersect As Range
Dim rngFindFirst As Range
If ID  "" And Not Target Is Nothing And Not rngInput Is Nothing Then
Set rngFind = Target.Find(what:=ID)
If Not rngFind Is Nothing Then
Set rngFindFirst = rngFind
Do
Set rngIntersect = Intersect(rngInput, rngFind.EntireRow)
If Not rngIntersect Is Nothing Then
If WorksheetFunction.CountA(rngIntersect) Then blnRtrn = True
End If
Set rngFind = Target.FindNext(rngFind)
Loop While Not rngFind Is Nothing And rngFind.Address  rngFindFirst.Address
End If
End If
CheckID_InputExists = blnRtrn
End Function
Bringt das was? Also kann man hier erkennen wo das Nothing hängt oder braucht man auch noch die _ Prozeduren wie man das

Public Sub ClearFromTo aufruft?

Anzeige
AW: RngIDList ist ein Parameter der Prozedur, ...
29.12.2011 09:33:36
Roman
Keiner eine Idee oder Verbesserungsvorschlag? :(
Nur die! owT
29.12.2011 11:53:44
Luc:-?
:-?

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige