Hallo yummi,
Ich glaube, dass das "Nichtausführen" an der "Call"-Funktion liegt. Ich habe im Endeffekt in die erste große Prozedur "Grobfilter_1" mit "Call Grobfilter_2" die nächste Prozedur aufgerufen. Danach in "Grobfilter_2" wieder die nächste Prozedur mit "Call Grobfilter_3" und das insgesamt 12 mal. Zu Beginn jeder Prozedur habe ich dann die Variablen nochmal eingefügt, damit ich diese weiter verwenden kann. Alle 12 Prozeduren stecken in "Grobfilter_1" drin. Ist das falsch?
Ich möchte am Ende einen Button haben, wo ich auf "Starten" klicke und dann das gesamte Makro in einem ausgeführt wird. Denn das macht es im Moment nicht.
Ich poste Dir mal einen Ausschnitt, denn alle Prozeduren sind immer gleich aufgebaut:
'5.3.2.3 Gas + Größe
'5.3.2.3.1 WG + Gas + Größe + Umbau + PV
Select Case str_filtern_Wohngebäude
Case "Ja"
Select Case str_filtern_Nichtwohngebäude
Case "Nein"
Select Case str_filtern_Energieträger
Case "Ja"
Select Case str_filtern_FW
Case "Nein"
Select Case str_filtern_Gas
Case "Ja"
Select Case str_filtern_ÖlKohle
Case "Nein"
Select Case str_filtern_Strom
Case "Nein"
Select Case str_filtern_Wärmebedarf
Case "Nein"
Select Case str_filtern_Gebäudenutzung
Case "Nein"
Select Case str_filtern_Gebäudegröße
Case "Ja"
'*Gebäudegröße >
If lng_Gebäudegröße_größer "" Then
Select Case str_filtern_Gebäudeumbau
Case "Ja"
'* Gebäudeumbau >
If lng_Gebäudeumbau_größer "" Then
Select Case str_filtern_PV
Case "Ja"
rng_Tabellenbereich.AutoFilter , Field:=7, Criteria1:=Array( _
"Wochenendhaus", "Wohnhaus", "Wohnheim"), Operator:=xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=16, Criteria1:=Array("GAS_ND", " _
GAS_MD", "GAS_HD"), Operator:=xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=17, Criteria1:="", Operator:= _
xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=23, Criteria1:=">=" & lng_Gebäudegrö _
ße_größer, Operator:=xlAnd
rng_Tabellenbereich.AutoFilter , Field:=9, Criteria1:=">=" & lng_Gebä _
udeumbau_größer, Operator:=xlAnd
rng_Tabellenbereich.Copy
ActiveSheet.Paste Destination:=wsZiel.Range("A1")
End Select
End If
'* Gebäudeumbau "" Then
Select Case str_filtern_PV
Case "Ja"
rng_Tabellenbereich.AutoFilter , Field:=7, Criteria1:=Array( _
"Wochenendhaus", "Wohnhaus", "Wohnheim"), Operator:=xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=16, Criteria1:=Array("GAS_ND", " _
GAS_MD", "GAS_HD"), Operator:=xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=17, Criteria1:="", Operator:= _
xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=23, Criteria1:=">=" & lng_Gebäudegrö _
ße_größer, Operator:=xlAnd
rng_Tabellenbereich.AutoFilter , Field:=9, Criteria1:=" "" Then
Select Case str_filtern_PV
Case "Ja"
rng_Tabellenbereich.AutoFilter , Field:=7, Criteria1:=Array( _
"Wochenendhaus", "Wohnhaus", "Wohnheim"), Operator:=xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=16, Criteria1:=Array("GAS_ND", " _
GAS_MD", "GAS_HD"), Operator:=xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=17, Criteria1:="", Operator:= _
xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=23, Criteria1:=">=" & lng_Gebäudegrö _
ße_größer, Operator:=xlAnd
rng_Tabellenbereich.AutoFilter , Field:=9, Criteria1:=lng_Gebä _
udeumbau_gleich, Operator:=xlAnd
rng_Tabellenbereich.Copy
ActiveSheet.Paste Destination:=wsZiel.Range("A1")
End Select
End If
End Select
End If
'*Gebäudegröße "" Then
Select Case str_filtern_Gebäudeumbau
Case "Ja"
'* Gebäudeumbau >
If lng_Gebäudeumbau_größer "" Then
Select Case str_filtern_PV
Case "Ja"
rng_Tabellenbereich.AutoFilter , Field:=7, Criteria1:=Array( _
"Wochenendhaus", "Wohnhaus", "Wohnheim"), Operator:=xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=16, Criteria1:=Array("GAS_ND", " _
GAS_MD", "GAS_HD"), Operator:=xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=17, Criteria1:="", Operator:= _
xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=23, Criteria1:="=" & lng_Gebä _
udeumbau_größer, Operator:=xlAnd
rng_Tabellenbereich.Copy
ActiveSheet.Paste Destination:=wsZiel.Range("A1")
End Select
End If
'* Gebäudeumbau "" Then
Select Case str_filtern_PV
Case "Ja"
rng_Tabellenbereich.AutoFilter , Field:=7, Criteria1:=Array( _
"Wochenendhaus", "Wohnhaus", "Wohnheim"), Operator:=xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=16, Criteria1:=Array("GAS_ND", " _
GAS_MD", "GAS_HD"), Operator:=xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=17, Criteria1:="", Operator:= _
xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=23, Criteria1:=" "" Then
Select Case str_filtern_PV
Case "Ja"
rng_Tabellenbereich.AutoFilter , Field:=7, Criteria1:=Array( _
"Wochenendhaus", "Wohnhaus", "Wohnheim"), Operator:=xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=16, Criteria1:=Array("GAS_ND", " _
GAS_MD", "GAS_HD"), Operator:=xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=17, Criteria1:="", Operator:= _
xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=23, Criteria1:=" "" Then
Select Case str_filtern_Gebäudeumbau
Case "Ja"
'* Gebäudeumbau >
If lng_Gebäudeumbau_größer "" Then
Select Case str_filtern_PV
Case "Ja"
rng_Tabellenbereich.AutoFilter , Field:=7, Criteria1:=Array( _
"Wochenendhaus", "Wohnhaus", "Wohnheim"), Operator:=xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=16, Criteria1:=Array("GAS_ND", " _
GAS_MD", "GAS_HD"), Operator:=xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=17, Criteria1:="", Operator:= _
xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=23, Criteria1:=lng_Gebäudegröß _
e_gleich, Operator:=xlAnd
rng_Tabellenbereich.AutoFilter , Field:=9, Criteria1:=">=" & lng_Gebä _
udeumbau_größer, Operator:=xlAnd
rng_Tabellenbereich.Copy
ActiveSheet.Paste Destination:=wsZiel.Range("A1")
End Select
End If
'* Gebäudeumbau "" Then
Select Case str_filtern_PV
Case "Ja"
rng_Tabellenbereich.AutoFilter , Field:=7, Criteria1:=Array( _
"Wochenendhaus", "Wohnhaus", "Wohnheim"), Operator:=xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=16, Criteria1:=Array("GAS_ND", " _
GAS_MD", "GAS_HD"), Operator:=xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=17, Criteria1:="", Operator:= _
xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=23, Criteria1:=lng_Gebäudegröß _
e_gleich, Operator:=xlAnd
rng_Tabellenbereich.AutoFilter , Field:=9, Criteria1:=" "" Then
Select Case str_filtern_PV
Case "Ja"
rng_Tabellenbereich.AutoFilter , Field:=7, Criteria1:=Array( _
"Wochenendhaus", "Wohnhaus", "Wohnheim"), Operator:=xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=16, Criteria1:=Array("GAS_ND", " _
GAS_MD", "GAS_HD"), Operator:=xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=17, Criteria1:="", Operator:= _
xlFilterValues
rng_Tabellenbereich.AutoFilter , Field:=23, Criteria1:=lng_Gebäudegröß _
e_gleich, Operator:=xlAnd
rng_Tabellenbereich.AutoFilter , Field:=9, Criteria1:=lng_Gebä _
udeumbau_gleich, Operator:=xlAnd
rng_Tabellenbereich.Copy
ActiveSheet.Paste Destination:=wsZiel.Range("A1")
End Select
End If
End Select
End If
End Select
End Select
End Select
End Select
End Select
End Select
End Select
End Select
End Select
End Select
Call Grobabfrage_8
End Sub
Sub Grobabfrage_8()
' Gesamte Filterabfrage
Application.ScreenUpdating = False 'Rechenschritte werden nicht angezeigt
'----------------------------------------------------------------------------------------------- _
' Definition der Quell-, Zieldatei und des Tabellenbereichs:
Das ist jetzt nur ein Ausschnitt aus meiner Filtern, die ich mit dem AutoFilter mache.
Ist die Cal-Funktion falsch so? Oder was könnte das Problem sein.
Liebe Grüße,
Anka