Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1296to1300
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

@Klaus M.vdT.bzgl.Autofilter

@Klaus M.vdT.bzgl.Autofilter
14.02.2013 10:54:42
Katrin
Hallo Klaus,
vielen Dank nochmal für deine Hilfe!
Kann man bei einem Autofilter nicht direkt auf die deklarierten Sheets verweisen bzw. kann man den nicht für verschiedene Sheets verwenden?
Also man schreibt:
Call DoResetAutofilter(Sheets(mysheet2011), 1, 30, 1) 'eigentlicher Name = "JA 2010 im Jahr 2011" - funktioniert leider nicht...
Call DoResetAutofilter(Sheets(mysheet2012), 1, 30, 1) '
Sub DoResetAutofilter(wksMySheet As Worksheet, iColFirst As Integer, iColLast As Integer,  _
lRowFirst As Long) '* in case a user used another autofiler, this makro resets the autofilter  _
to where needed.
Dim lRowLast As Long
With wksMySheet
lRowLast = .Cells(.Rows.Count, iColFirst).End(xlUp).Row
If .AutoFilterMode Then .Cells.AutoFilter 'Turns OFF Autofilter, if any
.Range(.Cells(lRowFirst, iColFirst), .Cells(lRowLast, iColLast)).AutoFilter 'Turns ON  _
Autofilter on given range
End With
End Sub

Der Hintergrund ist der, dass ich in einer For-Next-Schleife den Autofilter immer löschen muss, da er immer nach jeder Schleife nach einem neuem Konto filtert

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: @Klaus M.vdT.bzgl.Autofilter
14.02.2013 11:21:03
Klaus
Hi,
eigentlich sollte das gehen:
Entweder richtig auf das sheet verweisen (du schreibst ja selbst, der Name ist anders).
Call DoResetAutofilter(Sheets("JA 2010 im Jahr 2011"), 1, 30, 1)
Oder darauf achten, dass die Variable richtig gefüllt ist .. ich hab jetzt grad deine Datei nicht vorliegen, darum nur exepmlarisch:
dim mysheet2011 as string
mysheet2011 = "JA 2010 im Jahr 2011"
Call DoResetAutofilter(Sheets(mysheet2011), 1, 30, 1)

Es kann auch sein, dass deine variable mysheet2011 bereits als worksheet definiert ist? Dann ohne Sheet():
Call DoResetAutofilter(mysheet2011, 1, 30, 1)
denn das währe ja doppelt gemoppelt oder so (was schon worksheet ist, muss nicht nochmal worksheet werden)
Grüße,
Klaus M.vdT.

Anzeige
AW: @Klaus M.vdT.bzgl.Autofilter
14.02.2013 11:34:43
Katrin
Hey,
danke für die info!
ich habe meine Sheets alle als Worksheet definiert (set mysheet = Workbooks("XXX.xlsm").Sheets("JA 2010 im Jahr 2011" etc.)- ich habe jetzt mein Prob auf die schnelle mit Activate gelöst - nicht die feinste Art, aber klappt:
mysheet2011.Activate
Call DoResetAutofilter(Sheets("JA 2010 im Jahr 2011"), 1, 30, 1
Er hat mir sonst einen Fehler "byRef" angezeigt, den ich so nicht lösen konnte.
Dann kann es aber wahrscheinlich sein, dass mysheet als String definiert wrden muss?!

AW: @Klaus M.vdT.bzgl.Autofilter
14.02.2013 11:38:49
Klaus
set mysheet = Workbooks("XXX.xlsm").Sheets("JA 2010 im Jahr 2011" etc.)-
dann ist mysheet schon ein sheet! probiers mal mit
Call DoResetAutofilter(mysheet2011, 1, 30, 1)
das sollte klappen!
Grüße,
Klaus M.vdT.
(ansonsten ist ein einzelnes .activate - wenn der Code dann klappt - auch kein Weltuntergang. Funktion geht vor Stil.)

Anzeige
AW: @Klaus M.vdT.bzgl.Autofilter
14.02.2013 12:01:16
Katrin
Ich denke ich bleibe beim .Activate - sonst kommt die Fehlermeldung:
Argumenttyp ByRef unverträglich
hauptsache es funtioniert! :)

Danke für die Rückmeldung! mit Text
14.02.2013 12:34:14
Klaus
hauptsache es funtioniert! :)
unterschreibe ich, aber wenn es elegant funktioniert währs natürlich noch schöner.
Du kannst ja mal die aktuellste Datei hochladen, vielleicht finde ich ja den Bug.
Grüße,
Klaus M.vdT.

AW: Danke für die Rückmeldung! mit Text
15.02.2013 09:06:03
Katrin
Morgen,
die Datei ist leider viel zu groß!
Alles in allem funtioniert jetzt mein Code - also die Frage die ich Anfang der Woche gestellt habe. War einiges an Arbeit - aber letztendlich hat es funtioniert! 4 Stunden ist er durchgelaufen...
Daher noch einmal vielen Dank an alle!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige