online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Trudi vom 28.06.2019, 08:50 Options

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.

Ähnliche Themen

Flexsieble Schleife mit VBA
Trudi  20.06.2007 - 121 Hits - 2 Antworten

Anzahl einer schleife in mehere Makros übernehmen
Trudi  17.07.2007 - 60 Hits - 1 Antwort

Farbwert auslesen!!!
Platin7  29.02.2008 - 56 Hits - 6 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026