Sortierung von einer Analyse
#21
Hallöchen,

ersetze bitte in meinem Code
Range("E2")
durch
Range("E" & iCnt)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#22
Hi,

(19.12.2016, 20:13)JimmyJoe schrieb: hi, das mit Pivot ist mir eigentlich zu umständlich.
Geplant ist "Knopf drücken" ( Makro ) und fertig ist die Formatierung

die Pivot erstellst Du ein Mal und dann mußt Du bei Erweiterung der Datenbasis (es werden doch vermutlich immer mehr Analysen dazu kommen) nur noch auf den Knopf "aktualisieren " drücken. Und wenn Du ein Makro hinter das Pivot-Blatt legst, dann wird bei Aktivierung des Blatts die Pivot automatisch aktualisiert und Du mußt gar nix mehr drücken.

hinter das Blatt:
Code:
Private Sub Worksheet_Activate()
  Call Pivot_aktualisieren
End Sub
als allgemeines Modul:
Code:
Sub Pivot_aktualisieren()
  '
  ' Pivot_aktualisieren: alle Pivot einer einzelnen Tabelle
  ' (c) 21.09.2011, Ralf
  ' Aufgerufen mit Worksheet_Activate() im betreffenden Tabellenblatt
  '
  Dim pt As PivotTable
  '

     'Alle Pivot-Tabellen eines Tabellenblattes durchlaufen
     For Each pt In ActiveSheet.PivotTables
       
        'Den PivotCache der PT aktualisieren
        pt.PivotCache.Refresh
     Next pt
End Sub
Top
#23
Hallo Schauen,
leider so nicht funktionsfähig, siehe Anhang.


Angehängte Dateien
.xlsm   Analyse3.xlsm (Größe: 48,5 KB / Downloads: 2)
Top
#24
Hallo JimmiJoe,

in dieser Zeile hast Du zwi fehler:
Range("E" & iCnt)Value = Application.Evaluate(

korrekt wäre
Range("E" & iCnt).Value = Application.Evaluate( _

Hier ist nochmal der komplette Code als Makro2- Ich habe noch den Blattnamen hinzugefügt. Dadurch ist es egal, welches der beiden Blätter gerade aktiv ist. Der Code füllt aber, wie gesagt, erst mal nur die 4 Zellen in Spalte E.

Code:
Sub Makro2()
'Variablendeklaration
'Integer
Dim iCnt%
'Schleife ueber E2 bis E5
For iCnt = 2 To 5
'Daten berechnen und in E eintragen
Sheets("auf Format gebracht").Range("E" & iCnt).Value = Application.Evaluate( _
"=SUMPRODUCT((Eingangsdaten!$B$2:$B$17=$A" & iCnt & ")*(Eingangsdaten!$A$2:$A$17=RIGHT(E$1,3)),Eingangsdaten!$F$2:$F$17)")
'Ende Schleife ueber E2 bis E5
Next
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


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