Anzahl einer schleife in mehere Makros übernehmen
Hallo Zusammen
Ich habe ein Makro geschrieben in dem ich eine Schleife eingebaut habe
Dummerweise ist dieses Makro zu groß geworden und ich habe es daraufhin in mehre Module unterteilt.
Nun ist das aufrufen der einzelnen Module nicht das Problem. Nur benötigen die Module den Wert aus InAnzahl
Wie bekomme ich das hin, dass er diesen Wert automatisch aus dem Haupt-Modul übernimmt.
Hier mal ein Auszug aus dem Haupt-Modul
Dim LoAnzahl As Long
Dim InAnzahl As Integer
Application.ScreenUpdating = False
LoAnzahl = Application.InputBox("Anzahl", "Druckbereich", Type:=1)
If LoAnzahl < 1 Then Exit Sub
For InAnzahl = 1 To LoAnzahl
Sheets.Add.Name = "TestA" & InAnzahl
Application.Run "TestA"
Sheets.Add.Name = "TestB" & InAnzahl
Application.Run "TestB"
Next InAnzahl
Hat jemand von euch einen Idee?
Vielen Dank
Trudi
Antwort schreiben
Antwort 1 von Proggi vom 28.06.2019, 09:19 Options
ich weiß nicht warum du Application.Run verwendest - ist etwas kompliziert.
Falls du
TestA als "Sub" deklariert hast, ändere das mal zu
Sub TestA(MyRun)
aufrufen müstest das können mit
TestA InAnzahl
Antwort 2 von Trudi vom 28.06.2019, 10:59 Options
Hallo Proggi,
ehrlich gesagt versteh ich gerade nur Bahnhof...
das hier sind meine ersten Versuche ein Macro zu bearbeiten und derzeit lebe ich eher mit einem etwas ungesunden Halbwissen. Die VBA Hilfe ist, für jemand der sich nicht auskennt, auch nicht gerade der Brüller...
Könntest du mir von daher das noch mal etwas ausführlicher erklären?
Vielen Dank
Trudi
Antwort 3 von Trudi vom 28.06.2019, 11:01 Options
Ach ja
Aplikation run verwende ich weil das Macro ´mit allen befehlen eeinfach zu groß ist und mit der Editor mir sagt das es sonst nicht mehr läuft.
Gruß Trudi
Antwort 4 von M.O. vom 28.06.2019, 11:23 Options
Hallo Trudi
du musst die Variable mit Global definieren, und zwar außerhalb der Makros.
Also so:
Global InAnzahl As Integer
Sub Dein_Makro()
Dim LoAnzahl As Long
Application.ScreenUpdating = False
..
Dann wird der Wert auch in die anderen Makros übernommen.
Gruß
M.O.
Antwort 5 von Trudi vom 28.06.2019, 14:03 Options
Super M.O.
Das war genau das was ich wissen muste
Kannst du mir ein Tipp geben was Literatur und Lehrnprogramme betrifft?
Für mich ist das hier zur Zeit alles Try and erro
Dank noch mal
Trudi
Antwort 6 von M.O. vom 28.06.2019, 14:34 Options
Hallo Trudi,
so mache ich es heute teilweise auch noch :-).
Zur Literatur rate ich dir in einen Buchladen zu gehen und mal zu schauen, welche Bücher es über VBA gibt. Wenn man in den Büchern blättert, sieht man am besten, ob das Buch einem zusagt.
Es gab auch schon verschiedene Threads zu diesem Thema, z.B.
hier.
Ob es Lernprogramme für VBA gibt, kann ich dir leider nicht sagen.
Gruß
M.O.