Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1596to1600
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

Makro wird nicht ausgeführt, nur mit F8

Makro wird nicht ausgeführt, nur mit F8
18.12.2017 08:50:59
Anka
Hallo lieber Helfer,
ich brauche unbedingt Eure Hilfe: Für meine Masterarbeit habe ich jetzt ein Makro im Editor geschrieben, bei dem werden mit "Select Case" sehr viele Abfragen durchgeführt, wobei das Ergebnis dann immer ein Autofilter ist, der je nach Antwort der Abfrage unterschiedlich filtert.
Das Problem ist, dass das Makro nicht ausgeführt wird. VBA wird zwar durchgerechnet, aber danach passiert nichts. Wenn ich mit F8 durchklicke funktioniert das Makro aber....
Daher meine Frage: Woran kann das liegen und was kann ich machen?
Ich kann das Marko auch hier nicht posten, weil es viel zu groß ist, denn wenn ich das Makro in verschiedene Module aufteile, dann funktionieren diese auch. Da meine Prozedur aufgrund der Markogröße zu groß ist, habe ich im Skript mit "Call" alle Module miteinander verknüpft. Kann es vielleicht daran liegen?
Kann ich Euch vielleicht mein Makro per Mail schicken?
Ich erstelle das Tool für meine Masterarbeit und bin ich echt am verzweifeln, daher wäre ich wirklich sehr sehr dankbar, wenn Ihr mir helfen könntet!!!
Liebe Grüße,
Anka

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

Betreff
Datum
Anwender
Anzeige
AW: Makro wird nicht ausgeführt, nur mit F8
18.12.2017 09:55:46
yummi
Hallo Anka,
mal so als Versuch. Du sagst, wenn du mit F8 arbeitest funktioniert alles wie gewünscht. Dann weißt Du ja auch welcher Code angesprochen werden muss. Plaziere mal ein paar debug.print Zeilen in deinem Code. lass es normal laufen und stelle die selbe Anfrage wie vorher mit F8, dann siehst Du ob es ein unterschiedliches Verhalten gibt, bzw wo es ist. Vlt ist es ein Timing Problem oder du musst einfach nur den screen neu zeichnen. Versuch mal in Normalgeschwindigkeit herauszufinden, ob alle Codestellen so wie du es dir vorstellst ausgeführt werden.
Gruß
yummi
AW: Makro wird nicht ausgeführt, nur mit F8
18.12.2017 11:36:37
Anka
Hallo Yummi,
danke für Deine Antwort. Das was du meintest habe ich schon gemacht. Ich habe festgestellt, dass das Makro bis zu "Call ..." ausgeführt wird. Wahrscheinlich liegt es dann an der "Call"-Funktion.
Aber wie soll ich denn sonst mehrere Module miteinander verbinden? Meine Prozedur ist zu lang und daher habe ich in das Skript insgesamt 12 x "Call ...." reingeschrieben, da ich möchte, dass das Makro in einem Durchlauf bzw. mit einem Button ausgeführt wird. Leider tut es das nicht. Nicht einmal, wenn ich im Editor auf "Makro ausführen" klicke.
Kennst Du oder jemand eine andere Möglichkeit, wie ich viele Prozeduren in ein Makro schreiben kann?
Liebe Grüße,
Anka
Anzeige
AW: Makro wird nicht ausgeführt, nur mit F8
18.12.2017 12:17:02
yummi
Hallo Anka,
hast du denn in deiner Sub, die du mit call aufrufst auch debug anweisungen plaziert?
Es spricht nichts dagegen, prozedural zu programmieren, im Gegenteil.
Gruß
yummi
AW: Makro wird nicht ausgeführt, nur mit F8
18.12.2017 13:26:37
Anka
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
Anzeige
AW: Makro wird nicht ausgeführt, nur mit F8
18.12.2017 14:48:21
yummi
Hallo Anka,
ohne tiefer in deinen code einsteigen zu wollen, sieht deien Strucktur gro so aus:?
Filter1
irgendetwas
Filter2
ende
Filter2
irgendetwas
Filter3
ende
usw.
Das gleiche erreichst du so:
StarteFilter
Function StarteFilter
Filter1
Filter2
Filter3
End Function

Function Filter1
irgendwas
End Function

aber nichts desto trotz, kommentier mal den 2. Filteraufruf aus deiem Grobfilter1 raus und schau, ob es bis dahin geht. dann nimmst du den 2. Filteraufruf wieder rein und kommentierst den 3. Filteraufruf in Filter 2 aus und schaust was passiert.
aber ich glaube wen ndu die mappe hier postest, das sich dann bestimmt jemand fidnet, der da einen unkomplizierteren aufbau findet.
Gruß
yummi
Anzeige
AW: Makro wird nicht ausgeführt, nur mit F8
18.12.2017 15:18:15
Anka
Hallo yummi,
danke für Deine schnelle Antwort. Wie kann ich eine so große Datei hierein posten?
Gruß, Anka
AW: Makro wird nicht ausgeführt, nur mit F8
18.12.2017 16:21:49
yummi
Hallo Anka,
du musst sie annonymisieren, also es muss nicht 100000 zeilen pro Sheet haben, nur so dass man erkennen kann was du vorhast.
Gruß
yummi

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige