Office: In Tabelle aus Pivot heraus erstellt einen Filter setzen

Helfe beim Thema In Tabelle aus Pivot heraus erstellt einen Filter setzen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Zusammen, ich komme einfach nicht mehr weiter. Ich habe eine Pivottabelle, in der ich via Doppelklick eine neue Tabelle erstelle. Beim Erstellen... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von ruewue, 23. Oktober 2013.

  1. ruewue User

    In Tabelle aus Pivot heraus erstellt einen Filter setzen


    Hallo Zusammen,

    ich komme einfach nicht mehr weiter. Ich habe eine Pivottabelle, in der ich via Doppelklick eine neue Tabelle erstelle. Beim Erstellen der neuen Tabelle will ich nun in dieser auch den Autofilter setzen. Dieser wid ja automatisch beim Erstellen angelegt. Leider funktioniert dies nicht. Setze ich jedoch in meinem Source Code eine Breakpoint und lasse das Makro anschliesend weiter laufen, dann funktionierts.

    Private Sub Workbook_NewSheet(ByVal Sh As Object)
    Dim Nr$
    Dim sActiveSheet As String
    Dim i, n As Integer

    '--- Tabelle umbenennen -----------------------------------------------------------------------
    If (PivotKlick) Then
    On Error GoTo Err_NewSheet
    Nr$ = ""
    Sh.Name = PivotTabDetail & Nr$
    End If

    '--- Autofilter setzen ------------------------------------------------------------------------
    sActiveSheet = ActiveWorkbook.ActiveSheet.Name
    For i = 1 To Worksheets.Count
    If sActiveSheet = Worksheets(i).Name Then
    Set LstObjcts = Worksheets(i).ListObjects
    ActiveSheet.ListObjects(LstObjcts.Item(1).Name).Range.AutoFilter Field:= _
    SelectFilter, Criteria1:="<>0", Operator:=xlAnd
    End If
    Next i

    PivotKlick = False

    Exit Sub
    Err_NewSheet:
    '--- Erhöhe Tab-Namen-Nummer, falls mehrere Tabellen gleichen Namens vorliegen ----------------
    Nr$ = Val(Nr$) + 1
    Resume
    End Sub


    Weis einer von Euch Fachleuten, wie ich auch ohne Breakpoint den Autofilter setzen kann? Breakpoint wird auf ActiveSheet.ListObjects(... gesetzt) Office 2010.

    Danke schon mal
    Rüdiger
     
    Zuletzt bearbeitet: 23. Oktober 2013
  2. ruewue User
    Hallo,

    gibt es wirklich keinen Profi hier, der sich mit EXCEl 2010 VBA und Pivot so richtig auskennt?

    Ich habe einfach das Problem, das nach einem Doppelklick in der Pivot Tabelle eine neue Tabelle mit Detaildaten erstellt wird. In dieser Tabell ist auch schon ein Autofilter installiert. Diese soll ich nun anhand von einem bestimmten Kriterium setzen. Das Alles funktioniert auch, nur nicht das Filtersetzen, da die Tabelle irgend wie im Hintergrund erstellt wird und nicht fertig ist, wenn ich den Befehl

    ActiveSheet.ListObjects(LstObjcts.Item(1).Name).Range.AutoFilter Field:= _
    SelectFilter, Criteria1:="<>0", Operator:=xlAnd

    aufrufe. Setze ich einen Breakpoint und lasse es dann weiter laufen dann wird der Filter gesetzt.

    Wie kann ich nun einfach abwarten, bis die Tabelle erstellt ist und erst dann den Filter setzen????

    Ich wäre wirklich für den kleinsten Hinweis dankbar.

    Gruß
    Rüdiger
     
  3. Exl121150 Erfahrener User
    Hallo Rüdiger,

    ich kann nur Vermutungen anstellen, da ich den Code quasi nur im Trockendock zu Gesicht bekomme. Die für mich heißesten Stellen habe ich Dir eingefärbt im folgenden Codefragment:

    Code:
     Dim Lst As ListObject
    [COLOR="#0000FF"] Dim SelectFilter As Integer
     SelectFilter = 2  'Spalten-Offset-Wert (1.Spalte = 1, ...)[/COLOR]
    
     sActiveSheet = ActiveWorkbook.ActiveSheet.Name
     For i = 1 To Worksheets.Count
        If sActiveSheet = Worksheets(i).Name Then
          Set LstObjcts = Worksheets(i).ListObjects
          Set Lst = ActiveSheet.ListObjects(LstObjcts.Item(1).Name)
          With Lst
            .Range.AutoFilter Field:=[COLOR="#0000FF"]SelectFilter[/COLOR], Criteria1:="<>0", Operator:=xlAnd
            [COLOR="#0000FF"].ShowAutoFilter = True[/COLOR]
          End With
        End If
     Next i
    
    Da die Variable "SelectFilter" in Deinem geposteten Code nicht deklariert ist und ihr dort auch kein Wert zugewiesen wird, ist die Frage, ob es für sie ein PUBLIC-Deklaration bzw. Wertzuweisung gibt.
    Es kann eventuell auch die Eigenschaft ".ShowAutoFilter" sein, obwohl diese laut MS-Hilfe defaultmäßig auf True stehen müsste.
     
    Exl121150, 23. Oktober 2013
    #3
  4. ruewue User

    In Tabelle aus Pivot heraus erstellt einen Filter setzen

    Hallo Anton,

    danke erst mal für die Antwort. Du hast recht, die Variable SelectFilter ist Public deklariert und wird in der Worksheet_BeforeDoubleClick gesetzt. ich habe festgestellt, das die neue Tabelle noch garnicht erstellt ist, wenn ActiveSheet.ListObject ausgeführt wird. Somit kann auch noch gar kein Filter gesetzt werden. Beim Break, wird die Tabelle im Hintergrund fertiggestellt, und dann funktioniert auch das Filtersetzten. Ich habe nur noch keine Möglichkeit gefunden das Makro vor dem ActiveSheet.ListObject zu parken ohne das auch der Tabellenaufbau stopt. beim Breakpoint läuft der Tabellenaufbau ja weiter.

    Danke noch mals
    Rüdiger
     
  5. Exl121150 Erfahrener User
    Hallo Rüdiger,

    ich habe jetzt Dein Makro mit einem kleinen Beispielsystem bei mir ausprobiert (mit Excel2013). Da habe ich kein Synchronisationsproblem. Aber Du könntest an der kritischen Stelle eine kleine Pause erzwingen zB. wie im folgenden Codefragment:
    Code:
     sActiveSheet = ActiveWorkbook.ActiveSheet.Name
     For i = 1 To Worksheets.Count
        If sActiveSheet = Worksheets(i).Name Then
     [COLOR="#0000CD"]     Pausieren 1.75[/COLOR]
          Set LstObjcts = Worksheets(i).ListObjects
          Set Lst = ActiveSheet.ListObjects(LstObjcts.Item(1).Name)
          
          With Lst
            .Refresh
            .Range.AutoFilter Field:=SelectFilter, Criteria1:="<>0", Operator:=xlAnd
            .ShowAutoFilter = True
          End With
        End If
     Next i
    
    '.......
    '.......
    
    [COLOR="#0000CD"]Sub Pausieren(Secs As Single)
        Dim PauseTime As Single, Start As Single
        
        PauseTime = Secs    ' Set duration.
        Start = Timer       ' Set start time.
        Do While Timer < Start + PauseTime
            DoEvents        ' Yield to other processes.
        Loop
        
    End Sub[/COLOR]
    
    Hier wird an der kritischen Stelle eine Pause 1.75 Sekunden eingelegt, ohne dabei andere Prozesse zu behindern.

    Bei meinem kleinen Testmodell ergab sich ein ganz anderes Problem: In der Tabelle, die im neu erzeugten Arbeitsblatt erscheint, werden auch Spalten mit ursprünglich numerischen Werten als Textspalten mit Textzahlen (statt numerischen Zahlen) dargestellt.
    Ein Filter, der es auf Zahlen abgesehen hat (">100"), bewirkt, dass alle Zeilen ausgeblendet werden, weil keine das Filterkriterium erfüllt. Dagegen ist ein Filter für Text(zahlen) wie zB. "2*" erfolgreich (=alle Zahlentexte, die mit "2" beginnen).
     
    Exl121150, 24. Oktober 2013
    #5
  6. ruewue User
    Danke dir für die Antwort!

    Leider hilft die nicht weiter. Die Tabelle wird erst nach der Pause erzeugt. Ich habe die Pause erhöht, doch die Tabelle erschein erst nachdem ich einen Breakpoint gesetzt hatte. Ansonsten hägt es sich auf. Den Fehler mit dem numerischen Wert habe ich aber nicht. Bei "<> 0" stehen auch nur Zahlen <> 0 in der Spalte. Kann es sein, dass das Problem daher kommt, dass die Daten aus einer Externen Datenbank kommen?

    Ich kann machen was ich will, nur ein Breakpoint hilft hier weiter. Aber verstehen tu ich im Moment nichts mehr.

    Aber noch mals vielen Dank!
    Rüdiger
     
Thema:

In Tabelle aus Pivot heraus erstellt einen Filter setzen

Die Seite wird geladen...
  1. In Tabelle aus Pivot heraus erstellt einen Filter setzen - Similar Threads - Tabelle Pivot erstellt

  2. (2021) Pivot-Tabelle: mehrere Spalten als eine behandeln

    in Microsoft Excel Hilfe
    (2021) Pivot-Tabelle: mehrere Spalten als eine behandeln: Hallo, ich habe eine Tabelle, die für jeden Monat und für jeden Mitarbeiter Projektdaten enthält. Da diese teils an mehreren Projekten arbeiten, gibt es pro Zeile z.B. die Spalten "Projekt 1" und...
  3. Tabelle strukturieren Angebote, Aufträge, Rechnungen, Buchung

    in Microsoft Excel Hilfe
    Tabelle strukturieren Angebote, Aufträge, Rechnungen, Buchung: Hallo Forum, ich benötige bitte eure Hilfe bezüglich des Strukturierung einer Tabelle, in die ich Angebote, Aufträge, Rechnungen und Buchungen eintragen möchte. Wahrscheinlich gibt es eine...
  4. Pivot Tabelle mit leeren Arbeitsblättern?

    in Microsoft Excel Hilfe
    Pivot Tabelle mit leeren Arbeitsblättern?: Hallo! Ich beginne mich gerade in Pivot-Tabellen einzuarbeiten und stehe vor folgendem Problem: Ich möchte eine Auswertungs-Tabelle erstellen. Dazu möchte ich monatlich Daten in ein...
  5. Mehrere Tabellen in einer Pivot Grafik

    in Microsoft Excel Hilfe
    Mehrere Tabellen in einer Pivot Grafik: Hallo, ich habe eine Excel Datei erstellt. Es geht in der Excel Tabelle darum das Lieferdatum mit dem vom System vorgegebenen Datum zu vergleichen und das dann in einer Grafik darzustellen. Soweit...
  6. Pivot Tabelle im Tabellenformat sortieren

    in Microsoft Excel Hilfe
    Pivot Tabelle im Tabellenformat sortieren: Hallo zusammen, bis jetzt bin ich immer stiller Mitleser gewesen wenn ich ein Problem mit Excel hatte, und konnte dank eurer Beiträge schon vieles lösen. Jetzt steh ich aber vor nem Berg, und...
  7. Pivot Tabelle Grenzwert

    in Microsoft Excel Hilfe
    Pivot Tabelle Grenzwert: Hallo zusammen, ich habe eine Pivot Tabelle mit einer Datenreihen von Energiewerten (stündliche Werte über ein Jahr). Ich habe jetzt Grenzwerte wie z.B. die Max Energie, die ich als Linie im...
  8. PIVOT Tabelle 1min Werte auf 1h Mittelwerte darstellen

    in Microsoft Excel Hilfe
    PIVOT Tabelle 1min Werte auf 1h Mittelwerte darstellen: Hallo zusammen, ich habe eine Datenreihe aus minütlichen Messungen. Ich würde gerne in einem Diagramm darstellen, wie sich die 1-muiuten Werte zu den stündlichen Mittelwerten verhalten. Ich habe...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden