Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
120to124
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
120to124
120to124
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Hilfe zu EnableEvents!!!

Hilfe zu EnableEvents!!!
14.05.2002 09:49:40
Jeanne
Guten Morgen Alle zusammen!

Ich habe folgendes Problem:
In mehreren Tabellen habe ich unter dem Worksheet_Calculate Ereignis den gleichen Code. Wenn ich zB. in Tabelle 1 den Autofilter aktiviere, soll dies auch in den anderen Tabellen passieren. Ich habe es mit EnableEvents = False ausprobiert, dies klappt aber nur beim ersten mal (auch wenn ich EnableEvents wieder auf True setzten).
Gibt es noch eine andere Möglichkeit? Hat vielleicht jemand eine Idee, wie ich das mit dem Autofilter sonst hinkriege? Bin schon ganzschön am verzweifeln.

Bis denne
Jeanne

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Hilfe zu EnableEvents!!!
14.05.2002 09:56:40
Christoph Dümmen
Hallo Jeanne,

EnableEvents aktiviert oder deaktiviert die Ereignisse von Excel. Damit kommst Du also nicht so weit.

For each w in Worksheets
Autofilteraktion
next w

wird Dich sicherlich weiter bringen.
Christoph

Bei Bedarf poste doch bitte Deinen Code.

Re: Hilfe zu EnableEvents!!!
14.05.2002 10:17:14
Jeanne
Hallo Christoph,

werde ich gleich mal ausprobieren.
Mein Code sieht wie folgt aus und befindet sich in einem Standardmodul. Ich rufe es in dem Calculate Ereignis nur noch auf.

Sub AlleFiltern()
Dim TB As Worksheet
Dim lstMonate(), Monat As String, wksAktive As Worksheet
Dim i As Integer, j As Integer, k As Integer
Dim intF As Integer

Application.DisplayAlerts = False

Set wksAktive = ActiveSheet

k = 0
'Monate (Tabellen) auslesen, ausser die aktive
For i = 1 To Sheets.Count
For j = 1 To 12
If InStr(Sheets(i).Name, Format(DateValue("1." & j & ".2002"), "MMMM")) > 0 And _
Sheets(i).Name <> wksAktive.Name Then
ReDim Preserve lstMonate(k)
lstMonate(k) = Sheets(i).Name
k = k + 1
End If
Next
Next

'hier wird in jeder anderen Tabelle der Autofilter gesetzt
For i = 0 To UBound(lstMonate)
Monat = lstMonate(i)
For intF = 1 To wksAktive.Autofilter.Filters.Count
Select Case intF
Case 1 To 5
'Application.EnableEvents = False
If wksAktive.Autofilter.Filters(intF).On = True Then
Worksheets(Monat).Range("A5:S5").Autofilter Field:=intF, _
Criteria1:=wksAktive.Autofilter.Filters(intF).Criteria1 ', Operator:=xlAnd
'Application.EnableEvents = True
Else
Worksheets(Monat).Range("A5:S5").Autofilter Field:=intF
'Application.EnableEvents = True
End If
End Select
Next intF
Next i
Application.DisplayAlerts = True
End Sub


Hoffe du kannst damit was anfangen!

Gruß Jeanne

Anzeige
Re: Hilfe zu EnableEvents!!!
14.05.2002 10:36:25
Christoph Dümmen
Hallo Jeanne,

vielleicht schaust Du ja zwischendurch noch mal ins Forum, während Du probierst:
Das Problem liegt tatsächlich in dem zweiten Teil des Codes, in welchem Du nicht durch die Blätter 'läuftst'.

dim sh as worksheet
For i = 0 To UBound(lstMonate)
set sh = worksheets(lstMonate(i))


Viel Vergnügen
Christoph

Re: Hilfe zu EnableEvents!!!
14.05.2002 11:47:30
Jeanne
Hallöchen Christoph,

es klappt nicht so wie es soll! Jedesmal wenn er den Filter setzten will, springt er automatisch wieder an den Anfang der Calculate Prozedur. Was mache ich falsch?

Gruß Jeanne

Re: Hilfe zu EnableEvents!!!
14.05.2002 12:58:29
Christoph Dümmen
Hallo,
dann stelle den Code so, wie er jetzt ist ins Forum.
Christoph
Anzeige
Re: Calculate hört nicht auf!!!
14.05.2002 13:47:03
Jeanne
Hallöchen Christoph,

danke, das du dir so viel Mühe mit mir gibts!!!

Nachfolgend der Code:

Private Sub Worksheet_Calculate()
Dim lstMonate(), strKriteria as String
Dim wksFiltern , wksAktive As Worksheet
Dim i As Integer, j As Integer, k As Integer
Dim intF As Integer

Application.DisplayAlerts = False

Set wksAktive = ActiveSheet

k = 0
'Monate (Tabellen) auslesen
For i = 1 To Sheets.Count
For j = 1 To 12
If InStr(Sheets(i).Name, Format(DateValue("1." & j & ".2002"), "MMMM")) > 0 And _
Sheets(i).Name <> wksAktive.Name Then
ReDim Preserve lstMonate(k)
lstMonate(k) = Sheets(i).Name
k = k + 1
End If
Next
Next

For i = 0 To UBound(lstMonate)
Set wksFiltern = Worksheets(lstMonate(i))
For intF = 1 To wksAktive.Autofilter.Filters.Count
Select Case intF
Case 1 To 5
If wksAktive.Autofilter.Filters(intF).On = True Then
strKriteria = wksAktive.Autofilter.Filters(intF).Criteria1

'Bis hier ist alles OK, sobald er den Filter setzten will, lande ich wieder am Anfang

Worksheets(Monat).Range("A5:S5").Autofilter Field:=intF, Criteria1:=strKriteria
Else
Worksheets(Monat).Range("A5:S5").Autofilter Field:=intF
End If
End Select
Next intF
Next i
Application.DisplayAlerts = True
End Sub

Vielleicht sieht du ja den Fehler, mit fällt nichts mehr ein.

Bis denne Jeanne

Anzeige
Re: Der Code war falsch, jetzt der richtige!!!
14.05.2002 13:55:01
Jeanne
Also nochmal!!!

Private Sub Worksheet_Calculate()
Dim lstMonate(), strKriteria as String
Dim wksFiltern , wksAktive As Worksheet
Dim i As Integer, j As Integer, k As Integer
Dim intF As Integer

Application.DisplayAlerts = False

Set wksAktive = ActiveSheet

k = 0
'Monate (Tabellen) auslesen
For i = 1 To Sheets.Count
For j = 1 To 12
If InStr(Sheets(i).Name, Format(DateValue("1." & j & ".2002"), "MMMM")) > 0 And _
Sheets(i).Name <> wksAktive.Name Then
ReDim Preserve lstMonate(k)
lstMonate(k) = Sheets(i).Name
k = k + 1
End If
Next
Next

For i = 0 To UBound(lstMonate)
Set wksFiltern = Worksheets(lstMonate(i))
For intF = 1 To wksAktive.Autofilter.Filters.Count
Select Case intF
Case 1 To 5
If wksAktive.Autofilter.Filters(intF).On = True Then
strKriteria = wksAktive.Autofilter.Filters(intF).Criteria1

'Bis hier ist alles OK, sobald er den Filter setzten will, lande ich wieder am Anfang

wksFiltern.Range("A5:S5").Autofilter Field:=intF, Criteria1:=strKriteria
Else
wksFiltern.Range("A5:S5").Autofilter Field:=intF
End If
End Select
Next intF
Next i
Application.DisplayAlerts = True
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige