Statistikmakro: 1 If mit 2 Then oder Else unter 30x If-Then?

07/01/2008 - 11:19 von Marion Scheffels | Report spam
Hi @all!

Ich schreibe ein Makro zum Auswerten meines Kassenbuchs.
Die im Feld "Warenart" erfassten Daten werden verglichen und das Feld
"Anzahl" gezàhlt. Das funzt soweit.

Ich hàtte gerne eine Kontrollfunktion eingebaut. Soll heißen: es wird am
Ende die Anzahl der Eintràge ausgegeben, die nicht von den Vergleichen
erkannt wurden.
Unter die 37 If-Then hatte ich ein Else gesetzt und bekam Mecker, ich
hàtte Else ohne If benutzt. Wie verknüpft man das richtig? Dazwischen
lag nur eine Zeile mit einem Kommentar.
Oder kann man Else nur jeweils unmittelbar an eine If-Then anknüpfen?

Sollte das so nicht möglich sein:
Die Abfrage liegt in einer Schleife. Ich könnte auch jedem If zwei Then
zuordnen, zuerst der Zàhler, dann das Next I. Löst also keines der If
den Ausstieg aus der Schleife aus (weil keine Warenbezeichnung gepasst
hat), wird unten der alternative Zàhler "Sonstiges" angesprochen.
Wie verknüpfe ich die zwei Then?
...Then zàhler = zàhler + 1 [...] Next I

Eine Idee, das Makro abzuspecken, wàre auch, nur oben einmal die
Variable ware(I) mit den Warenbezeichnungen zu belegen und in einer
Schleife jeweils abfragen zu lassen.
Dann hàtte ich einmal eine àußere Schleife (A) mit einer innenliegenden
Schleife (I). Kann ich in der inneren Schleife Schleife I nun ein Next A
verlangen?
For A = 1 To 10
For I = 1 To 10
If... Then ... [...] Next A
Next I
sonstiges = sonstiges + 1
Next A
Das sollte bewirken, daß der "Sonstiges" nur gezàhlt wird, wenn die
Schleife I ereignislos durchlàuft. Ginge das so?


Vielen Dank im Voraus!
MarionS
einwegadresse@marions.de

"Didn't they say the pen was mightier than the sword?" - James Bond
"Thanks to me they were right!" - Q
(GoldenEye)
 

Lesen sie die antworten

#1 Wolfgang Habernoll
07/01/2008 - 00:25 | Warnen spam
Hallo Marion


Eine Idee, das Makro abzuspecken, wàre auch, nur oben einmal die
Variable ware(I) mit den Warenbezeichnungen zu belegen und in einer
Schleife jeweils abfragen zu lassen.
Dann hàtte ich einmal eine àußere Schleife (A) mit einer innenliegenden
Schleife (I). Kann ich in der inneren Schleife Schleife I nun ein Next A
verlangen?
For A = 1 To 10
For I = 1 To 10
If... Then ... [...] Next A
Next I
sonstiges = sonstiges + 1
Next A
Das sollte bewirken, daß der "Sonstiges" nur gezàhlt wird, wenn die
Schleife I ereignislos durchlàuft. Ginge das so?



kein Next A aber mit Exit For kommst du aus Schleife I heraus

For A = 1 To 10
For I = 1 To 10
If ..[...]... Then Exit For
Next I
sonstiges = sonstiges + 1
Next A

mfG
Wolfgang Habernoll

[ Win XP Home SP-2 , XL2002 ]

Ähnliche fragen