Microsoft Excel

Herbers Excel/VBA-Archiv

Laufzeitfehler '1004'

Betrifft: Laufzeitfehler '1004' von: Hannes
Geschrieben am: 30.09.2014 07:35:29

Hallo Zusammen!

Ich bin blutiger Anfänger und wollte ein Makro programmieren in der ich Tabellenblätter ein und ausblende!

Einblenden der Tabellenblätter läuft perfekt.

Allerdings hab ich beim Ausblenden probleme... sobald ich den Makro aufzeichne und fertig bin und es am Ende ausführen möchte kommt die Fehlermeldung:

Laufzeitfehler 1004: Die Select-Methode des Sheets-Objektes konnte nicht ausgeführt werden.

Was mache ich da falsch?

Vielen Dank schonmal im Voraus!!!

  

Betrifft: AW: Laufzeitfehler '1004' von: Hajo_Zi
Geschrieben am: 30.09.2014 07:36:57

nur wenige sehen Dein Makro.

Gruß Hajo


  

Betrifft: AW: Laufzeitfehler '1004' von: Hannes
Geschrieben am: 30.09.2014 08:22:20

Sub pcs_einblenden()
'
' pcs_einblenden Makro
'

'
    Sheets("Choice").Select
    Sheets("tab1").Visible = True
    Sheets("Choice").Select
    Sheets("Saving").Visible = True
    Sheets("Choice").Select
    Sheets("Fabs").Visible = True
    Sheets("Choice").Select
    Sheets("Purchase").Visible = True
    Sheets("Choice").Select
    Sheets("Cost Savings 101101").Visible = True
    ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
    Sheets("Choice").Select
    Sheets("Charts 101101").Visible = True
    Sheets("Purchasing Savings 201203").Select
    Sheets("Cost Savings 101102").Visible = True
    Sheets("Purchasing Savings 201205").Select
    Sheets("Charts 101102").Visible = True
    Sheets("Purchasing Savings 201205").Select
    Sheets("Cost Savings 101104").Visible = True
    Sheets("Cost Savings 101101").Select
    Sheets("Charts 101104").Visible = True
    Sheets("Cost Savings 101102").Select
    Sheets("Cost Savings 101110").Visible = True
    Sheets("Charts 101101").Select
    Sheets("Charts 101110").Visible = True
    Sheets("Cost Savings 101102").Select
    Sheets("Cost Savings 101114").Visible = True
    Sheets("Cost Savings 101104").Select
    Sheets("Charts 101114").Visible = True
    Range("L61").Select
    Sheets("Cost Savings 101104").Select
    Sheets("Cost Savings 101121").Visible = True
    Sheets("Charts 101104").Select
    Sheets("Charts 101121").Visible = True
    Sheets("Cost Savings 101114").Select
    Sheets("Cost Savings 103118").Visible = True
    Sheets("Charts 101114").Select
    Sheets("Charts 103118").Visible = True
    Sheets("Charts 101114").Select
    Sheets("Cost Savings 103119").Visible = True
    Sheets("Cost Savings 101121").Select
    Sheets("Charts 103119").Visible = True
    Sheets("Charts 101121").Select
    Sheets("Cost Savings 103139").Visible = True
    Sheets("Cost Savings 103118").Select
    Sheets("Charts 103139").Visible = True
    Sheets("Charts 103118").Select
    Sheets("Cost Savings 201203").Visible = True
    Sheets("Cost Savings 103119").Select
    Sheets("Charts 201203").Visible = True
    Sheets("Charts 103119").Select
    Sheets("Cost Savings 201205").Visible = True
    Sheets("Cost Savings 103139").Select
    Sheets("Charts 201205").Visible = True
    Sheets("Choice").Select
    Range("A1").Select
End Sub

------------------------------------------------------------------------
Sub pcs_ausblenden()
'
' pcs_ausblenden Makro
'

'
    Sheets(Array("tab1", "Saving", "Fabs", _
        "Purchase")).Select
    Sheets("Summary").Activate
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    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", "Cost Savings 201205")).Select
    Sheets("Summary F&M-PP").Activate
    Sheets("Charts 201205").Select Replace:=False
    Sheets(Array("Summary", "Savings", "Fabs", _
        "Purchase", "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



  

Betrifft: AW: Laufzeitfehler '1004' von: Hajo_Zi
Geschrieben am: 30.09.2014 08:37:43

Hallo Hannes,

mehr als 50% des Codes kann ja gelöscht werden.
Ich habe nun nur das erste Makro gemacht. Es Stand mir ja offen welches ich bearbeiten soll. Es Stand ja nichts, wo ein Fehler. Das zweite ist analog.

Option Explicit

Sub pcs_einblenden()
'
' pcs_einblenden Makro
'

'
    Sheets("tab1").Visible = True
    Sheets("Saving").Visible = True
    Sheets("Fabs").Visible = True
    Sheets("Purchase").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
End Sub
Gruß Hajo


  

Betrifft: AW: Laufzeitfehler '1004' von: Hannes
Geschrieben am: 30.09.2014 08:41:04

Danke Hajo!!!


  

Betrifft: AW: Laufzeitfehler '1004' von: Adis
Geschrieben am: 01.10.2014 08:20:51

Hallo

ich habe mir das 2. Makro einmal angesehen, es enthaelt viel überflüssige Zeilen.
Statt ein Array zu selektieren kann man es direkt mit .Visible = False beenden.
Bei mehrfachem Selektieren besteht die Gefahr die vorherige Selektion aufzuheben.
Bitte schauen ob die gekürzte Version einwandfrei laeuft. Sollte eine Fehlermeldung
kommen ist evtl. ein im Array genanntes Blatt nicht in der Mappe vorhanden.
Bei Sheets ausblenden ist der ganze Pulk mit ScroolWorkbookTabs überflüssig.

Alle Blaetter wieder einblenden geht einfacher ohne Array, mit For Next Schleife

'1. Fehler: Blatt Summary ist nicht im Array enthalten. Wurde ins Array übernommen
'das 3. Array wiederholt das 2. Array, ist überflüssig. ScroolWorkbookTabs gelöscht.

Sub pcs_ausblenden()  bereinigtes Makro
      'Blatt Summary ist nicht im Array enthalten, wurde übernommen
      Sheets(Array("Summary", "Tab1", "Saving", "Fabs", "Purchase")).Visible = False
      'das 3. Array wiederholt das 2. Array, ist überflüssig
      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", "Cost Savings 201205")).Visible = False
      'Einzel Selection bestehen gelassen wegen Replace
      Sheets("Charts 201205").Select Replace:=False
      Sheets("Cost Savings 201205").Select Replace:=False
      ActiveWindow.SelectedSheets.Visible = False
      ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
      Sheets("Choice").Select
      Range("A1").Select
End Sub

'kurzes Makro um alle Blaetter einzublenden
Sub Blaetter_einblenden()
For i = 1 To Sheets.Count
  Sheets(i).Visible = True
Next i
End Sub
Gruss Adis


  

Betrifft: AW: Laufzeitfehler '1004' von: Hannes
Geschrieben am: 01.10.2014 10:12:58

Hallo Adis, danke dir für deine info, allerdings funktioniert danach nichts mehr! Woran könnte das liegen?

Mfg

Hannes


  

Betrifft: AW: Laufzeitfehler '1004' von: Adis
Geschrieben am: 01.10.2014 11:18:33

Hallo Hannes

ich bin über diese Mitteilung sehr irritiert. Was heisst das konkret??

Falls alle Blaetter ausgeblendet sind kann man sie mit dem 2. Makro einblenden.
Mich interessiert was hier schief gelaufen sein könnte, denn ausser Blaetter bzw.
ein ganzes Array ausblenden gibt es keine Anweisungen die etwas blockieren kann.

Aeh, Gedanke ... was passiert sein könnte! Laufzeitfehler??? (fehlerhafter Blattname)

Hat das Programm gestoppt?? Bitte in allen Makro Codes nachsehen ob eine Zeile -gelb-
gefaerbt ist. Dann werden alle anderen Makros blockiert. Bitte den VBA Editor öffnen
und im Menü Run den Menüpunkt -Reset- betaetigen und schauen ob wieder alles laeuft?
In dem Fall gibt es einen Grund den den man finden sollte. Z.B. indem man das Makro
im Einzelschritt startet bis man die fehlerhafte Zeile gefunden hat.

Ich bitte um Rückmeldung den das interessiert mich doch sehr.

Gruss Adis


 

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