Microsoft Excel

Herbers Excel/VBA-Archiv

Laufzeitfehler 1004

Betrifft: Laufzeitfehler 1004 von: Hannes
Geschrieben am: 01.10.2014 10:19:27

Hallo Zusammen!

Ich habe einmal ein Makro für das einblenden von Tabellenblättern aufgezeichnet und einmal für das ausblenden von Tabellenblättern.

Das Makro für das Einblenden der Tabellenblätter funktioniert perfekt. Wenn ich einmal meinen Makro fürs Einblenden einsetze dann blendet er die Tabellenblätter ein, wenn ich noch einmal den Makro einsetze dann passiert gar nichts, da ja die Tabellenblätter eingeblendet sind. Es kommt keine Fehlermeldung auf wie beim Ausblenden.

Beim Makro für das Ausblenden funktioniert das leider nicht so wie beim Einblenden. Beim ersten ausführen blendet dieser die Tabellenblätter aus. Beim nochmaligen ausführen des Makros kommt ein Laufzeitfehler 1004 auf. "Die Select-Methode des Worksheets-Objektes konnte nicht ausgeführt werden"

Was genau mache ich da falsch?

Danke schonmal im Voraus!

MFG

Hannes

Sub pcs_ausblenden()
'
' pcs_ausblenden Makro
'

'
 
    Sheets("Charts 201205").Select Replace:=False
    Sheets(Array("Summary F&M-PP", "Savings Charts", "Fab & Machine", _
        "Purchased Parts & Services", "Cost Savings 101101", "Charts 101101", _
        "Cost Savings 101102", "Charts 101102", "Cost Savings 101104", "Charts 101104", _
        "Cost Savings 101110", "Charts 101110", "Cost Savings 101114", "Charts 101114", _
        "Cost Savings 101121", "Charts 101121", "Cost Savings 103118", "Charts 103118", _
        "Cost Savings 103119", "Charts 103119", "Cost Savings 103139", "Charts 103139", _
        "Cost Savings 201203", "Charts 201203", "Charts 201205")).Select
    Sheets("Charts 201205").Activate
    Sheets("Cost Savings 201205").Select Replace:=False
    ActiveWindow.SelectedSheets.Visible = False
    ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
    Sheets("Choice").Select
    Range("A1").Select
End Sub

Sub pcs_einblenden()
'
' pcs_einblenden Makro
'

'

Sheets("Summary F&M-PP").Visible = True
Sheets("Savings Charts").Visible = True
Sheets("Fab & Machine").Visible = True
Sheets("Purchased Parts & Services").Visible = True
Sheets("Cost Savings 101101").Visible = True
Sheets("Charts 101101").Visible = True
Sheets("Cost Savings 101102").Visible = True
Sheets("Charts 101102").Visible = True
Sheets("Cost Savings 101104").Visible = True
Sheets("Charts 101104").Visible = True
Sheets("Cost Savings 101110").Visible = True
Sheets("Charts 101110").Visible = True
Sheets("Cost Savings 101114").Visible = True
Sheets("Charts 101114").Visible = True
Sheets("Cost Savings 101121").Visible = True
Sheets("Charts 101121").Visible = True
Sheets("Cost Savings 103118").Visible = True
Sheets("Charts 103118").Visible = True
Sheets("Cost Savings 103119").Visible = True
Sheets("Charts 103119").Visible = True
Sheets("Cost Savings 103139").Visible = True
Sheets("Charts 103139").Visible = True
Sheets("Cost Savings 201203").Visible = True
Sheets("Charts 201203").Visible = True
Sheets("Cost Savings 201205").Visible = True
Sheets("Charts 201205").Visible = True
Range("A1").Select
End Sub

  

Betrifft: AW: Laufzeitfehler 1004 von: Hajo_Zi
Geschrieben am: 01.10.2014 10:30:18

Hallo Hannes,

warum neuen Beitrag?
Ich baue das Teil nicht nach.

Gruß Hajo


  

Betrifft: AW: Laufzeitfehler 1004 von: Hannes
Geschrieben am: 01.10.2014 10:36:23

Hallo Hajo,

ich möchte ja auch nicht dass jemand es nachbaut,

beim einblenden ist ja auch alles perfekt. Das hast du ja auch gestern bearbeitet.

Beim Ausblenden ist noch irgendwo ein Fehler und dank meiner Unkenntnis weiss ich nicht wo ein Fehler liegt.


  

Betrifft: AW: Laufzeitfehler 1004 von: Hajo_Zi
Geschrieben am: 01.10.2014 10:38:09

Gut, ich kann es nicht sehen wie Du das Testest und ich würde vermuten um den Fehler zu finden sollte man es testen. Dieser Auffassung bist Du wohl nicht. Ich bin dann raus.

GrußformelHomepage


  

Betrifft: AW: Laufzeitfehler 1004 von: Adis
Geschrieben am: 01.10.2014 11:43:27

Hallo Hannes

ich habe mich im alten Thread gemeldet, sehe aber den neuen.

Als Verfasser des Makros habe ich durch die klare Fehlerbeschreibung verstanden
was passiert ist. Es ist sehr einfach, völlig logisch, du kommst selbst darauf.

Der Fehler liegt hier: Sheets("Charts 201205").Select Replace:=False
Ein Blatt das -ausgeblendet ist- kann nicht selektiert werden! Das ist alles!

Diesen Teil hatte ich so übernommen wegen der -Replace- Anweisung. Ich weiss
nicht ob Replace erforderlich ist, sonst ersetze .Select durch .Visible = False
und lasse die Anweisung Replace einfach weg.

2. Möglichkeit: setze am Anfang direkt nach (Sub) pcs_ausblenden den Code:
On Error Resume Next. Dann überspringt Excel den Fehler einfach

Ich hoffe ich habe geholfen den Fehler zu verstehen und das jetzt alles laeuft!

Gruss Adis


  

Betrifft: AW: Laufzeitfehler 1004 von: Peter
Geschrieben am: 01.10.2014 11:24:15

Hallo

der Laufzeitfehler kommt dadurch zustande das versucht wird ein "unsichtbares" Sheet zu selektieren. Zum Ausblenden kannst Du auch die Procedure zum einblenden einfach umschreiben (alle True durch False ersetzen oder eleganter:


Sub ausein (action as boolean)
  Sheets("Charts 101114").Visible = action
  Sheets("Cost Savings 101121").Visible = action
  '....
end sub

Sub AlleEin ()
  ausein true
end sub

Sub AlleAus ()
  ausein false
end sub



  

Betrifft: AW: Laufzeitfehler 1004 von: Hannes
Geschrieben am: 01.10.2014 11:29:55

Vielen vielen Dank Peter!!!

Funktioniert alles bestens jetzt!!!


 

Beiträge aus den Excel-Beispielen zum Thema "Laufzeitfehler 1004"