Microsoft Excel

Herbers Excel/VBA-Archiv

Showalldata Problem

    Betrifft: Showalldata Problem von: Lars
    Geschrieben am: 27.08.2003 17:49:45

    Hallo an alle Excel Genialen !!

    Habe ein Problem mit dem Showalldata-Befehl. In meiner Tabelle habe ich mehrere Makros eingebaut. Diese schützen das Blatt nach dem Beenden des jeweiligen Befehles, bzw. entsperren das Blatt vor Beginn des Ablaufes des Befehles. Mit den Makros wird auf verschiedenste Weiese in der Liste mit und ohne Benutzung von Autofiltern sortiert. Nun möchte ich mit dem Showalldata Befehl alles wieder auf den aufgedeckten ursprünglichen Zustand zurücksetzen. Das Problem hierbei ist, daß wenn ich das Makro beim ersten Mal benutze alles wie gewünscht funktioniert, wenn ich aber das Makro ein zweites mal benutze (nacheinander), dann kommt es zu einer Fehlerfeldung (Fehler 1004 glaube ich)

    Hier mein Code:

    Sub Showall()
    
        Call unprotect
        Call unhidecolumn("d:af")
        
        Sheets("BLF-Productlist 0803").ShowAllData
             
        Range("A11").Select
            
        Call protect
        
    End Sub
    


    An sich ganz einfach gehalten, kann mir aber nicht erklären warum es beim ersten Mal funktioniert und gleich danach nicht mehr. Hängt es vielleicht mit dem eingeschalteteten Autofilter trotz Blattschutz zusammen ???

    Wer kann helfen ???

    Danke im Voraus,

    Lars.
      


    Betrifft: AW: Showalldata Problem von: udo
    Geschrieben am: 28.08.2003 01:45:41

    Hi lars, hoffe ich hab dich jetzt richtig verstanden,
    Ich gehe jetzt einfach mal davon aus , dass du mehrere Filter hast , für verschiedene Spalten X beliebig ( zB 5 Stk. in denen du nach verschiedenen Werten filterst)

    dann nehm doch folgendes Makro, ( musst du dir vielleicht noch anpssen an deine Tabelle )

    Sub Alle_Autofilter_wieder_auf _Alles_setzen()
    
        Columns("A1:E100").Select
        Selection.AutoFilter
        Range("A1").Select
    
           ' hier wurde der Autofilter für den Bereich A1 bis E100 gesetzt
           ' als nächstes könnte man zum beispiel den Filter der Spalte 2,
           ' in dem Fall B1:B100 z.B: nach kriterium " xxx " filtern, dann 
           ' Spalte 3, 1, 5 usw., ... würde dann so aussehen :
           ' 
           ' Selection.AutoFilter Field:=3, Criteria1:=" xxx " 
    
           '                                oder z.B. nach einer Zelle mit 
    
           ' Selection.AutoFilter Field:=3, Criteria1:= Cells("A1")   'oder
           ' Selection.AutoFilter Field:=3, Criteria1:= Cells(1, 1)   'usw. 
    
           ' und nun alle Filter auf einmal zurücksetzen mit ...
    
        Selection.AutoFilter Field:=1
        Selection.AutoFilter Field:=2
        Selection.AutoFilter Field:=3
        Selection.AutoFilter Field:=4
        Selection.AutoFilter Field:=5
           
           ' und hier wurden die 5 Filter alle auf Alles gesetzt
           ' also dass was du wolltest ? Alle Filter auf Ursprung zurücksetz. ...
    
    End Sub
    



    hoffe ich konnte dir kurz helfen, noch so spät , Gruß udo


      


    Betrifft: AW: Showalldata Problem von: Lars
    Geschrieben am: 28.08.2003 10:13:14

    Hallo Udo,

    Vielen Dank für Deine Antwort ! Habe diese Lösung bereits vorher gehabt, das hat mir aber alles zu lange gedauert bis dann das Blatt wieder aufgeräumt war, habe insgesamt 32 Spalten zu filtern !!! Die Showalldata Methode benötigt da wesentlich weniger Zeit , nur wenn ich den Button für dieses Makro benutze funktioniert es beim ersten Mal wunderbar. Benutze ich das Makro jedoch gleich darauf ein zweites Mal (also praktisch wenn das Blatt wieder im Ursprungszustand ist, dann noch einmal, so kommt ein Laufzeit Fehler. Bei allen anderen Makros passsiert das aber nicht, nur beim Showalldata-Makro).

    Vielleicht gibt es auch einen anderen Befehl, der das Blatt schnell aufdecken kann (unter Berücksichtigung der Autofilter, ähnlich dem des Showalldata ???)


      


    Betrifft: AW: Showalldata Problem von: udo nochmal
    Geschrieben am: 28.08.2003 15:01:12

    Servus Lars,

    vielleicht kannst du das Makro folgender Maßen beschleunigen mit

    Sub ... Bla bla 
    Application.ScreenUpdating = False
    ...
    ...
    ...
    ... hier dein Makro
    ...
    ...
    Application.ScreenUpdating = True
    End Sub
    



    damit gehts dann schon mal viel viel schneller, ;-)

    Müsste gehn, vielleicht hilfts dir, Gruß udo


      


    Betrifft: AW: Showalldata Problem von: Lars
    Geschrieben am: 28.08.2003 16:22:13

    Hallo Udo,

    war ein super Tip, hatte ich zwar schon einmal kurz in Erwägung gezogen, aber dann doch irgendwie wieder vergessen. jetzt geht alles in der Tat ein Stückchen schneller. Habe trotzdem den Showall - Befehl weiterbenutzt und es funktioniert !!! Geht meiner Meinung nach immer noch am schnellsten und man hat ein aufgeräumtes kleines übersichtliches Makro. Vielen Dank nochmals !!!

    Lars.


     

    Beiträge aus den Excel-Beispielen zum Thema " Showalldata Problem"