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

Sub in einer If-Anweisung aufrufen

Sub in einer If-Anweisung aufrufen
26.10.2016 09:17:52
Thoomas
Guten Morgen zusammen,
wie kann ich denn in einer If-Abfrage wenn eine Bedingung erfüllt wurde ein weiteres Makro aufrufen. Ich habe ein ganzes Makro erstellt und das soll nun checken ob in einem Sheet Inhalt stehtoder nicht. Falls ja, dann soll er das eine Makro aufrufen welches die Sheets leert, falls nicht soll er das "normale" Programm aufrufen. Sieht momentan so aus bei mir:
Sub Start()
If Worksheets("Tabelle1").Range("A1").Value = "" Then Call main
Else:
Call ClearSheets
Call main
End Sub

Danke schonmal und Gruß

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sub in einer If-Anweisung aufrufen
26.10.2016 09:27:03
Daniel
Hi
wenn du nach dem THEN weiterschreibst, musst du den kompletten IF-Block incl dem ELSE-Teil in eine Programmzeile packen.
Übersichtlicher ist, nach Then eine neue Zeile zu beginnen.
Sub Start()
If Worksheets("Tabelle1").Range("A1").Value = "" Then
Call main
Else
Call ClearSheets
Call main
End IF
End Sub
wobei man das auch kürzer schreiben könnte:
Sub Start()
If Worksheets("Tabelle1").Range("A1").Value  "" then Call ClearSheets
Call main
End Sub
Gruß Daniel
AW: Sub in einer If-Anweisung aufrufen
26.10.2016 09:36:55
Thoomas
Hi Daniel,
danke für die fixe Antwort, jedoch gibt es da immer noch ein Problem. Fehlermeldung hier:
Fehler beim Kompilieren: Variable oder Prozedur anstelle eines Moduls erwartet
Der Fehler markiert dann das Makro nach der THEN Anweisung. Das Problem hatte ich leider vorher auch :-/.
Gruß Thomas
Anzeige
AW: Sub in einer If-Anweisung aufrufen
26.10.2016 09:55:35
Daniel
Hi
naja, die Fehlermeldung ist hier doch ziemlich aussagekräftig.
du musst mit Call ein Makro aufrufen, du rufst hier aber ein Modul auf (also im Prinzip das Blatt, wo die Makros abgelegt sind).
das liegt daran, dass du nicht nur das Makro, sondern auch das Modul mit "main" benannt hast.
du hast wahrscheinlich nicht nur das Makro mit "main" benannt, sondern auch das Modul in welchem es liegt.
Entweder benennst du Makro oder Modul um, so dass sich die Namen unterscheiden, oder du rufst dein Makro mit Call Modulname.Makroname auf, denn Call main.main funktioniert wieder, weil dann klar ist was Modul- und was Makroname ist.
Grundsätzlich ist es so, da dass bei Call Name der Interpreter zuersteinmal die Module nach diesem Namen durchsucht. Erst wenn er kein passendes Modul findet, durchsucht er die Makros nach einem Makro mit diesem Namen. Findet er jedoch ein Modul mit diesem Namen, verwendet er das Modul und das verusacht dann den Fehler.
Gruß Daniel
Anzeige
AW: Sub in einer If-Anweisung aufrufen
26.10.2016 10:02:21
Thoomas
Hi,
wow funktioniert nun Einwandfrei! War genau das was du sagtest, hatte meine Module sowie Makros gleich benannt. Wohl ein grober Anfängerfehler, aber wieder was Neues gelernt.
Danke dir vielmals! Super Kompetent der Herr :)
Gruß Thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige