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

Makrofehler - "Unzulässiger oder ....

Makrofehler - "Unzulässiger oder ....
WalterK
Hallo,
... nicht ausreichend definierter Verweis"
Das kommt als Fehler wenn ich den folgenden Code laufen lasse.
Ich will in einem anderen Blatt den Bereich "C96:Z & bis zur letzten benutzten Zelle in Spalte C" löschen lassen.
Option Explicit
Sub Fml_mini()
Dim LzFV_D3 As Long
LzFV_D3 = Sheets("FV_Dauer").Application.Max(96, .Cells(.Rows.Count, 3).End(xlUp).Row)
Application.ScreenUpdating = False
With Sheets("FV_Dauer")
.Unprotect
.Range(.Cells(96, 3), .Cells(LzFV_D3, 26)).ClearContents
Range("AD89").Select
.Protect
End With
Application.ScreenUpdating = True
End Sub
Danke und Servus, Walter
Wo ist hier das, wofür der 1.Pkt steht,...
16.04.2011 17:50:31
Luc:-?
…Walter…
.Cells(.Rows.Count
Gruß+schöWE, Luc :-?
AW: Wo ist hier das, wofür der 1.Pkt steht,...
16.04.2011 17:58:21
WalterK
Hallo Luc,
ich bin totaler VBA-Laie und suche mir aus vorhandenen Codes zusammen was ich brauche.
".Application.Max(96, .Cells(.Rows.Count, 3).End(xlUp).Row)" habe ich auch aus einem anderen Code und dort funktioniert es. Hier will ich die letzte benutzte Zeile feststellen lassen, als Minimum ist aber die Zeile 96 fix vorgegeben.
Danke und Servus, Walter
AW: Makrofehler - "Unzulässiger oder ....
16.04.2011 17:56:47
tommy
Hallo Walter,
ein paar Punkte zuviel in den Rangeobjekten gesetzt. Besser wäre (nicht getestet):
Sub Fml_mini()
Dim LzFV_D3 As Long
LzFV_D3 = Sheets("FV_Dauer").Application.Max(96, Cells(Rows.Count, 3).End(xlUp).Row)
Application.ScreenUpdating = False
With Sheets("FV_Dauer")
.Unprotect
.Range(Cells(96, 3), Cells(LzFV_D3, 26)).ClearContents
Range("AD89").Select
.Protect
End With
Application.ScreenUpdating = True
End Sub
VG
tommy
Anzeige
AW: Makrofehler - "Unzulässiger oder ....
16.04.2011 18:02:06
WalterK
Hallo Tommy,
Habe es ausprobiert, es kommt die Fehlermeldung:
"Index außerhalb des gültigen Bereichs"
Danke und Servus, Walter
AW: Makrofehler - "Unzulässiger oder ....
16.04.2011 18:12:33
tommy
...ich hoffe doch, dass du ein Tabellenblatt mit den Namen "FV_Dauer" benannt (indiziert) hast
oder etwa nicht ?
VG
Tommy
Habe mich geirrt: Es kommt die ....
16.04.2011 18:12:59
WalterK
... Fehlermeldung: 400
Servus, Walter
AW: Makrofehler - "Unzulässiger oder ....
16.04.2011 18:14:53
mpb
Hallo Walter,
probier mal
Sub Fml_mini()
Dim LzFV_D3 As Long
Application.ScreenUpdating = False
With Sheets("FV_Dauer")
LzFV_D3 = .Application.Max(96, .Cells(Rows.Count, 3).End(xlUp).Row)
.Unprotect
.Range(.Cells(96, 3), .Cells(LzFV_D3, 26)).ClearContents
.Range("AD89").Select
.Protect
End With
Application.ScreenUpdating = True
End Sub
Gruß
Martin
Anzeige
Komische Sache ...
16.04.2011 18:24:09
WalterK
Hallo Martin,
Es kommt zwar die Fehlermeldung "400", wenn ich auf OK klicke sind aber die Daten im anderen Blatt wie gewünscht gelöscht.
Hallo Tommy,
Du hattest natürlich recht, ich hatte das Blatt versehentlich umbenannt. Der Fehler 400 kommt aber nach wie vor.
Servus, Walter
AW: Komische Sache ...
16.04.2011 18:33:10
mpb
Hallo Walter,
was ist denn der Fehler 400? Poste doch mal den Fehlertext.
Gruß
Martin
AW: Komische Sache ...
16.04.2011 18:40:19
tommy
Hast du noch mehr Code irgendwo in der mappe? Hängt vieleicht damit zusammen.
Sonst füge "On Error resume next" (unelegant, aber wirkt meistens, falls keine weiteren Zusammenhänge bestehen) in der ersten zeile des Subs ein.
Oder lade doch einfach mal die Mappe hoch, um den Übelttäter zu identifizieren.
Anzeige
Danke an die Helfer ....
16.04.2011 18:50:15
WalterK
Hallo,
Mit der Codezeile "On Error resume next" läuft der Code durch und löscht die Daten wie gewollt.
Die vorher gezeigte Fehlermeldung lautete: 400 (also die Zahl 400 und sonst nichts mehr).
In der Mappe sind noch weitere Makros, die aber mit dieser Sache eigentlich nichts zu tun haben.
Ich kann die Mappe leider nicht hochladen (zu groß, zu komplex). Ich teste jetzt einmal, vielleicht gibt's ja noch eine Erklärung für diese Fehlermeldung.
Danke und Servus, Walter
Der Pkt vor Application ist auch Quatsch! orT
16.04.2011 19:19:48
Luc:-?
Außerdem finde ich diese Konstruktion aus Application und Fktsname anstelle der Benutzung des WorksheetFunction-Objekts, das ja extra dafür geschaffen wurde, Müll. Es wurde hier zwar schon oft über gute Gründe dafür diskutiert, finde aber, die Nachteile überwiegen! Wenn man nämlich, wie auch MS es empfiehlt, alles ordentl deklariert und mit Hilfsvariablen arbeitet, braucht man das gar nicht. Man kann dann auch anderweitig feststellen, ob die WshFkt in einen Fehler läuft, der natürl nur bei Direktbezug auf Application ausgegeben wdn kann, weil wohl die Ergebnisbereiche der Fktt des WorksheetFunction-Objekts entweder nicht als Variant vordefiniert wurden oder aber der jeweilige User selbst schuld daran ist, weil er die Variable, der er evtl das Fktsergebnis zuweist, nicht als Variant deklariert hat.
Gruß+schöSo, Luc :-?
:-?
Anzeige
AW: Der Pkt vor Application ist auch Quatsch! orT
16.04.2011 19:48:06
tommy
Dem stimme ich vollends zu. Aber ein "VBA-Laie" wird an dieser Stelle die Erläuterung zum Excel-Objektmodell überfordern. Schließlich ist ein unbekannter Dritter schuld, der wohl nach dem Motto "Jedem Tierchen sein Pläsierchen" drauf losprogrammiert hat... i-)
@Walter
Vermutung zum Fehler 400: In deinem Code wird .protect verwendet. Vieleicht gibt es einen Zellverweis der sich auf den geschützen Bereich bezieht (oder vice versa) und dann Ärger während eines Ereignisses oder einer Aktualisierung macht.
VG
tommy
AW: Der Pkt vor Application ist auch Quatsch! orT
16.04.2011 20:35:40
WalterK
Hallo Tommy,
Besten Dank für Deine Mühe. Die Fehlerursache bleibt im Dunkeln, ich habe auch schon ohne .protect und ohne Blattschutz probiert.
Das Ergebnis jedenfalls passt, die Daten werden gelöscht.
Besten Dank und Servus, Walter
Anzeige
Übrigens ist Fehler 400 zwar ein gültiger,...
17.04.2011 02:17:44
Luc:-?
…aber leider nicht textlich spezifizierter Fehler → also leider so der Grund nicht feststellbar.
Ja, Tommy,
sicher — aber auch etliche „Cracks” scheinen leider auf diese Konstruktion zu schwören. Weniger Erfahrene wundern sich dann, warum das nicht mit jeder Standard-Xl-Fkt fktniert!
Gruß+schöSo, Luc :-?
AW: Makrofehler - "Unzulässiger oder ....
17.04.2011 15:22:43
Gerd
Hallo Walter,
teste mal im Einzelschrittmodus mit der F8-Taste.
Sub Fml_mini()
Dim objBlatt As Object
AppActivate (Application.Caption)
Application.ScreenUpdating = False
Set oBlatt = Sheets("FV_Dauer")
With objBlatt
.Unprotect
.Range(.Cells(96, 3), .Cells(.Application.Max(96, .Cells(.Rows.Count, 3).End(xlUp). _
Row), 26)).ClearContents
.Activate
.Range("AD89").Select
.Protect
End With
Application.ScreenUpdating = True
End Sub
Gruß Gerd
Anzeige
AW: Makrofehler - "Unzulässiger oder ....
17.04.2011 18:07:45
WalterK
Hallo Gerd,
ich habe Deinen Code jetzt versucht, es kommt die Meldung:
Laufzeitfehler 91:
Objektvariable oder With-Blockvariable nicht festgelegt
Danke und Servus, Walter
AW: Makrofehler - "Unzulässiger oder ....
17.04.2011 18:10:12
Hajo_Zi
Hallo Walter,
ändere diese Zeile
Set objBlatt = Sheets("FV_Dauer")

Besten Dank an ...
17.04.2011 18:29:06
WalterK
Hallo,
... die Helfer, jetzt funktioniert alles.
Servus, Walter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige