| |  | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: Laufzeitfehler 1004 nur bei Excel2000 (2085 mal gelesen)
|
Elchkuh123 Mitglied
 Beiträge: 3 Registriert: 18.05.2008
|
erstellt am: 15. Jun. 2008 08:42 <-- editieren / zitieren --> Unities abgeben:         
Hallo, Folgendes Makro läuft nur auf Excel 2003, aber nicht auf Excel 2000. Zur Sicherheit kopiere ich mal das ganze Makro und schreibe gesondert den Teil, der als Fehler markiert wurde(beim debuggen).
Code: Code:Sub Formular_erstellen() ' ' Tastenkombination: Strg+q ' If MsgBox("Achtung Sie sind dabei das Formular NEU zu erstellen !" & vbCrLf & _ "Wollen Sie das Wirklich?", vbYesNo + 16, "Hinweis") = vbYes Then Dim Verzeichnis As String Dim file_name As String Dim act_File_Name As String Dim len_act_File_Name As String Dim Endung_act_File_Name As String Dim savename_act_File_Name As String Dim aa As Long Dim Länge_Blatt As Long aa = 1 Verzeichnis = Sheets("Damen").Range("N4") file_name = Sheets("Damen").Range("D2") & "," & Sheets("Damen").Range("D3") & ".xls" act_File_Name = ThisWorkbook.Name len_act_File_Name = Len(act_File_Name) Endung_act_File_Name = Right(act_File_Name, 3) savename_act_File_Name = Verzeichnis & file_name ActiveSheet.Unprotect Range("A6:Z6000").Select Selection.AutoFilter Field:=1, Criteria1:="j" Cells.Select Selection.Copy Sheets("Bericht").Select ActiveWindow.SmallScroll ToRight:=-3 Range("H7:K1535").Select Application.CutCopyMode = False ActiveSheet.Unprotect Range("A1").Select Sheets("Damen").Select Selection.Copy Sheets("Bericht").Select Range("A1").Select ActiveSheet.Paste Application.CutCopyMode = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True Sheets("Damen").Select Selection.AutoFilter Field:=1 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFiltering:=True Sheets("Formular").Select For aa = 13 To 65000 If Range("A" & aa) <> 0 Then aa = aa + 6 Else Länge_Blatt = aa - 1 aa = 65000 End If Next aa ActiveSheet.PageSetup.PrintArea = "$A$1:$P$" & Länge_Blatt Sheets("Formular").Select If Endung_act_File_Name <> "xls" Then ActiveWorkbook.SaveAs Filename:= _ savename_act_File_Name, FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False End If End If End Sub
Die Fehlermeldung an sich ist folgende: Code: Code:ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFiltering:=True
Hier erhalte ich die Fehlermeldung Laufzeitfehler 1004. Ich würde mich freuen, wenn ihr mir schnell helfen könnt. Mit freundlichen Grüßen, Elchkuh123 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing. / Supporter

 Beiträge: 3921 Registriert: 29.09.2004 Excel 2010 128GB SSD Windows 7
|
erstellt am: 15. Jun. 2008 09:44 <-- editieren / zitieren --> Unities abgeben:          Nur für Elchkuh123
Hallo Elchkuh123, Die Fehlermeldung welche kommt, hab auch Excel 2000, sagt "Anwendungs- oder objektdefinierter Fehler". Die Option "AllowFiltering:=True" kennt das Excel 2000 nicht, weshalb eine Fehlermeldung ausgegeben wird. Gruss Mike ------------------ The Power Of Dreams Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Elchkuh123 Mitglied
 Beiträge: 3 Registriert: 18.05.2008
|
erstellt am: 15. Jun. 2008 10:35 <-- editieren / zitieren --> Unities abgeben:         
Hallo, das habe ich jetzt auch bemerkt. Ich wollte es jetzt mit diesem Befehl machen: With ActiveSheet If Val(Application.Version) > 9 Then .Protect userInterfaceOnly:=True, AllowFiltering:=True Else .EnableAutoFilter = True .Protect userInterfaceOnly:=True End If End With So wurde bereits einem User geholfen, der diesen Befehl vorher nutzte: With ActiveSheet .EnableAutoFilter = True .Protect userInterfaceOnly:=True End With Allerdings ist in meinem ursprünglichen Code kein .Protect UserInterfaceOnly:=True vorhanden und es wird auch nicht durch With Activesheet eingeleitet.
Könnte mir jemand den Bereich Code: If Val(Application.Version) > 9 Then AllowFiltering:=True Else .Enable Autofilter = True
passend in meinen Code einbinden, der mit Code: ActiveSheet. Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFiltering:=True
beginnt ? Also statt des AllowFiltering den neuen Code. Mit freundlichen Grüßen,
Elchkuh123 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
       

 Beiträge: 8086 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 15. Jun. 2008 11:17 <-- editieren / zitieren --> Unities abgeben:          Nur für Elchkuh123
Guten Morgen, ich kann es nicht testen, hab kein 2000, in 2007 läuft Folgendes: Wenn ich es richtig verstanden habe, mußt Du überall, wo Du die Zeile ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True verwendest, die Zeilen
Code: With ActiveSheet If Val(Application.Version) > 9 Then .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True Else .EnableAutoFilter = True .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End If End With
einsetzen, da 2000 den Ausdruck AllowFiltering:=True nicht kennt. Du fragst also ab, ob Office 10 oder höher, dann die neue Schreibweise, sonst die alte.Schau Dir mal die Syntax des Protect in der Hilfe von 2000 an, dann solltest Du mit bißchen umschubsen selber hinkommen. PS: Schau Dir auch einmal diese Seite an, ich denke, die könnte auch für zukünftige Projekte interessant für Dich sein ;-) ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... System-Info Excel -Suche RuA-Suche FAQ-ACAD Hilfe zu CAD.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nepumuk Mitglied Entwicklungsleiter
 
 Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 15. Jun. 2008 16:36 <-- editieren / zitieren --> Unities abgeben:          Nur für Elchkuh123
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |