Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Probleme mit Schleife
#1
Hallo zusammen,

ich bin neu hier im Forum und dies ist mein 1. Beitrag. Ich habe eigentlich ganz ordentliche Kenntnisse bei Excelanwendungen, leider happert es bei VBA.
Ich habe schon alles mögliche aus diversen Foren probiert, leider ohne Erfolg.

Zu meinem Problem:
In einer Excelanwendung sollen auf allen ca. 30 Arbeitsblättern alle Spalten ab dem Eintrag "BerA" in Zeile 1 mit einem Makro ausgeblendet werden.
Der Eintrag "BerA" steht in unterschiedlichen Zellen in Zeile 1.

Der nachfolgende Code steigt bei  "Range(rngA, rngZ).EntireColumn.Hidden = True" aus.

Nur für 1 Arbeitsblatt, ohne Schleife, funktioniert es.
Sobald die Schleife aktiviert ist, kommt die Fehlermeldung "Laufzeitfehler 1004"  - die Methode  Range für das Objekt ' _Worksheet' ist fehlgeschlagen".


Sicher kann mir jemand helfen?
Dafür schon mal besten Dank.

Reiner

'---------------------------------------------------------------------------------------

            Application.ScreenUpdating = False
            ActiveSheet.Protect Password:="", userinterfaceonly:=True
            
            Dim ws As Worksheet
  
           '------------------------------------------------------------------
            Dim sht As Worksheet
            For Each sht In ThisWorkbook.Worksheets
           
           '------------------------------------------------------------------
            Dim rngA As Range
            Dim rngZ As Range
           
           '------------------------------------------------------------------           
           'Bereich A
            Set rngA = Rows(1).Find("BerA", lookat:=xlWhole, LookIn:=xlValues, MatchCase:=True)
            
            Set rngZ = Cells(1, 16384)
            
           'Bereich A - Z ausblenden
            Range(rngA, rngZ).EntireColumn.Hidden = True

           '------------------------------------------------------------------
           
            Next sht
Antworten Top
#2
Hallo,

wo hast Du deinen Code stehen? Im Klassenmodul einer Tabelle? Setze noch die Objektvariable davor.

Code:
Application.ScreenUpdating = False
            ActiveSheet.Protect Password:="", userinterfaceonly:=True
            
            Dim ws As Worksheet
  
           '------------------------------------------------------------------
            Dim sht As Worksheet
            For Each sht In ThisWorkbook.Worksheets
          
           '------------------------------------------------------------------
            Dim rngA As Range
            Dim rngZ As Range
            
           '------------------------------------------------------------------
           'Bereich A
            Set rngA = sht.Rows(1).Find("BerA", lookat:=xlWhole, LookIn:=xlValues, MatchCase:=True)
            
            Set rngZ = sht.Cells(1, 16384)
            
           'Bereich A - Z ausblenden
            sht.Range(rngA, rngZ).EntireColumn.Hidden = True

           '------------------------------------------------------------------
          
            Next sht
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#3
Vielen Dank Steffl, für die schnelle Antwort.


Leider funktioniert es immer noch nicht. Es kommt die gleiche Fehlermeldung.
Kannst Du mir erklären, wo der Code genau stehen muss. 
Dafür jetzt schon vielen Dank.

Grüße

Reiner
Antworten Top
#4
Hallo

Steffis Code ist korrekt, wenns trotzdem nicht geht, dann liegt das daran, dass auf irgendeinem Blatt der Begriff "BerA" nicht gefunden wird.

vg, MM
Antworten Top
#5
Vielen Dank an Steffi und mmat.

Das war's.
Ich habe zum Testen den Begriff "BerA" auf nur 3 Arbeitsblätter eingetragen.
Jetzt lläuft der Code durch und der jeweilige Bereich wird korrekt ausgeblendet.

Grüße

Reiner
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste