Daten Konsolidieren - Spalten ausblenden. Pivot?

(auf meinem Laptop auf der Arbeit braucht der Jahre um meine
„zaehlensichtbar“ funktion für alle Spalten durchzuführen und

Hallo Stefan
Mit dem Makro, das ich oben 17.4.2011 18:50 geschickt habe, geht es bei mir bei 6.500 Spalten innert 2 - 3 Sekunden. Bei 16.000 Spalten dauerts etwa 6 - 7 Sekunden. Die Version von 19:30 h ist eine Verschlimmbesserung. Da wird das Ganze mit jeder Ausführung immer langsamer. Keine Ahnung, warum.

Eine Verlangsamung tritt auch ein, wenn ich das Makro nicht in der gleichen Datei gespeichert habe, in der sich auch die Daten befinden.

Arbeitest Du mit Excel 2010? Hast Du die Datei als .xlsm gespeichert?

das ausblenden klappt auch nicht für alle irgendwie

Auch bei meiner erwähnten Version von 18:50 nicht? - Was klappt denn nicht? Hast Du etwa grosse „X“ in der Tabelle? Oder x mit Leerschlag? - Hast Du daran gedacht, vor jeder neuen Auswahl immer wieder alle Spalten einzublenden, sonst gehts in die Hosen.

Grüsse Niclaus

(auf meinem Laptop auf der Arbeit braucht der Jahre um meine
„zaehlensichtbar“ funktion für alle Spalten durchzuführen und

Hallo Stefan
Mit dem Makro, das ich oben 17.4.2011 18:50 geschickt habe,
geht es bei mir bei 6.500 Spalten innert 2 - 3 Sekunden. Bei
16.000 Spalten dauerts etwa 6 - 7 Sekunden. Die Version von
19:30 h ist eine Verschlimmbesserung. Da wird das Ganze mit
jeder Ausführung immer langsamer. Keine Ahnung, warum.

also deine version klapüpt zu hause mit meiner testdatei super
werd nachher testen wie es im büro ausschaut

Arbeitest Du mit Excel 2010? Hast Du die Datei als .xlsm
gespeichert?

Zu Hause mit Excel 2010 auf der Arbeit noch mit Excel 2003, wird aber demnächst umgestellt

das ausblenden klappt auch nicht für alle irgendwie

Auch bei meiner erwähnten Version von 18:50 nicht? - Was
klappt denn nicht? Hast Du etwa grosse „X“ in der Tabelle?
Oder x mit Leerschlag? - Hast Du daran gedacht, vor jeder
neuen Auswahl immer wieder alle Spalten einzublenden, sonst
gehts in die Hosen.

doch mit deiner version gehts :smile:
in meiner Datei müsste bereits ein Modul drinn sein bei dem ich mal selber mit VBA per Makro probiert habe entsprechende Zellen auszuwählen / auszublenden
Klappt leider nicht so gut :smile:

Grüsse Niclaus

Grüße
Stefan

Klappt Super

Vielen Dank an alle

ActiveSheet.AutoFilterMode

True, wenn die Dropdownpfeile für
AutoFilter momentan im Blatt angezeigt werden. Diese
Eigenschaft ist von der FilterMode-Eigenschaft unabhängig.
Boolean-Wert mit Lese-/Schreibzugriff.

FilterMode-Eigenschaft

True, wenn sich das Arbeitsblatt im
Filter-Modus befindet. Schreibgeschützter Boolean-Wert.

Hallo Markus,

Filtermode war das was ich suchte, danke dir.

Gruß
Reinhard

Mit dem Makro, das ich oben 17.4.2011 18:50 geschickt habe,
geht es bei mir bei 6.500 Spalten innert 2 - 3 Sekunden. Bei
16.000 Spalten dauerts etwa 6 - 7 Sekunden.

also deine version klapüpt zu hause mit meiner testdatei super
werd nachher testen wie es im büro ausschaut

Arbeitest Du mit Excel 2010? Hast Du die Datei als .xlsm
gespeichert?

Zu Hause mit Excel 2010 auf der Arbeit noch mit Excel 2003,
wird aber demnächst umgestellt

Hallo Stefan,

mein nachfolgender Code braucht bei mir in XL 2007 mit 16380 Produktspalten und 16380 Datenzeilen ca. 0,15s.
Auswahl erfolgt über die ComboBox in Tabelle1.

Er ist schon dafür vorbereitet wie bei Auswahl von „Name 1“ mehrere Spalten anzuzeigen, also alle die das Material „name 1“ benutzen.
Dann braucht er so ,18s.

Hier die fertige Mappe:
http://www.file-upload.net/download-3367701/Pivottab…

Gruß
Reinhard

In das Klassenmodul der Tabelle1:

Option Explicit

Private Sub ComboBox1\_Change()
Dim Such As Range, Zei As Long, Zelle As Range, wks1 As Worksheet, Spa As Long
Dim T As Single
T = Timer
Set wks1 = Worksheets("Tabelle1")
On Error GoTo hell
Set Such = wks1.Range("C:C").Find(ComboBox1.Value)
If Such Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Spa = 4
Zei = Such.Row
With Worksheets("Tabelle2")
 .UsedRange.Clear
 .Range("C3").Value = ComboBox1.Value
 wks1.Range("A2:C2").Copy Destination:=.Range("A2")
 For Each Zelle In wks1.Range(Cells(Zei, 4), Cells(Zei, 16384)).SpecialCells(xlCellTypeConstants)
 .Cells(2, Spa).Value = wks1.Cells(2, Zelle.Column).Value
 .Cells(3, Spa).Value = Zelle.Value
 Spa = Spa + 1
 Next Zelle
 .Activate
 .UsedRange.EntireColumn.AutoFit
End With
hell:
Application.ScreenUpdating = True
If Err.Number 0 Then MsgBox Err.Number & vbCr & Err.Description
MsgBox Timer - T
End Sub
1 Like