for Schleife

Post Reply
Ludwig Sita
Posts: 3
Joined: 20. May 2005, 11:50
Contact:

for Schleife

Post by Ludwig Sita » 20. Jul 2005, 19:10

Hallo
ich stehe ein wenig auf dem Schlauch:
Excel legt für jedes installierte Macro unter
HKCU,"Software\Microsoft\Office\11.0\Excel\Options","OPEN" an. Das Erste Macro also "OPEN", das nächste "OPEN1", dann "OPEN2" usw.
Ich möchte nun zählen, wieviele Opens da schon stehen, damit ich das nächste freie benutzen kann.
Das Zählbeispiel aus der Hilfe : For Counter,1,3,,"da" funktioniert bei mir, allerdings raffe ich trotzdem nicht, wie ich damit zählen kann.
Wer hat Erbarmen?

Einen sonnigen Tag wünscht Ralf

M. Niemann

Post by M. Niemann » 22. Jul 2005, 16:06

Hallo Ralf,

hier nochmal der Lösungsansatz:
ECHO Start

for Counter,1,5,,Frage

[Frage]
If DoesRegKeyExist ("HKCU,Software\Microsoft\Office\11.0\Excel\Options,OPEN%Counter%") == "1" Then "RegKeyIsThere" Else "RegKeyIsntThere" Endif

[RegKeyThere]
Echo RegKey vorhanden (Durchlauf: %Counter%)

[RegKeyIsntThere]
Echo RegKey _nicht_ vorhanden (Durchlauf: %Counter%)

Ludwig Sita
Posts: 3
Joined: 20. May 2005, 11:50
Contact:

...vielen Dank, aber wie verlasse ich die Schleife vorzeitig

Post by Ludwig Sita » 25. Jul 2005, 16:49

Hallo Herr Niemann
die Schleife tut es nun, aber mein Hauptproblem, dass die Schleife sooft durchlaufen wird wie angegeben, bleibt. Was muss man tun, damit die Schleife, wenn sie einmal in den Else-Zweig gegangen ist, abbricht (weil genau dieser Zählwert mich ja interessiert) und nicht weiterzählt, bis der Höchstwert erreicht ist?
Wenn man irgendwo ein "Exit" unterbringt, heißt das ja "Programmende", "abort" ist noch schlimmer. Wenn ich in einen anderen Zweig springe, wird dieser ebenfalls bis zur höchten Zahl durchlaufen.
Wie ist die Syntax?
Einen schönen Tag wünscht
Ralf

User avatar
Hendrik_Ambrosius
Moderator
Moderator
Posts: 7969
Joined: 13. Dec 2004, 23:10
Location: Adendorf/Lüneburg

Post by Hendrik_Ambrosius » 25. Jul 2005, 17:15

Einfach die Variable auf den Endwert setzen, dann fliegt man aus der FOR-Schleife raus.
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.

Ludwig Sita
Posts: 3
Joined: 20. May 2005, 11:50
Contact:

set i=... und es funktioniert

Post by Ludwig Sita » 26. Jul 2005, 15:47

Hallo an alle
dank vielfacher Unterstützung fähiger Menschen ist mein Projekt geglückt.
Vielen Dank

das Gesamtkonstrukt sieht nun so aus:

[Set:Product]
ECHO Start

for i,1,9,,Frage

[Frage]
If DoesRegKeyExist ("HKCU,Software\Microsoft\Office\11.0\Excel\Options,OPEN%i%") == "1" Then "da" Else "nichtda" Endif

[da]
Echo es sind %i% da

[nichtda]
SET y=%i%
SET i=9
Echo y=%y%

in y steht nun der erste benutzbare Wert.

Post Reply

Return to “Paketierung”

Who is online

Users browsing this forum: Google [Bot] and 4 guests