Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
788to792
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
788to792
788to792
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA Probleme mir If Schleife (schlechter Stil)

VBA Probleme mir If Schleife (schlechter Stil)
15.08.2006 11:34:16
Robert
Hallo Leute.
Ich habe ein Problem. Ich generiere eine Zufallszahl aus 4 Zahlen. Wenn 1 oder 3 eintreten, sollen in Zellen A1 - E1 werte eingetragen werden, wenn diese Zellen voll sind. (If A1 = leer dann Wert rein sonst prüfe B1 usw.) Erst, wenn alle Zellen (A1 - E1) voll sind, soll in A2 - E2 nach dem gleichen Prinzip weitergesuch werden. Umgekehrt sieht es bei den Zahlen 2 oder 4 aus. Da soll zuerst in A2 - E2 und danach in A1 - E1 gesucht werden. Wie kann ich das am besten umsetzen? Ich brauche nicht die Prüfung der Zellen sondern nur das Ohne Goto wenn möglich. Ich mache das bislang über eine If - Schleife und springe hin und her aber wenn dann sowohl A1 - E1 und A2 - E2 voll sind, stürzt alles ab. Vielleicht brauch ich auch nur eine Abbruch Routine wenn dieser Fall eintritt. Ich weiß nur nicht wie. Klingt alles etwas verwirrend aber ich weiß nicht, wie ich es sonst formulieren soll. :)
mfg Robby

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Probleme mir If Schleife (schlechter Stil)
15.08.2006 13:29:27
Andreas_A
Hi,
hast du dir schon mal Fehlerbehandlungsroutinen angeschaut?
Hier für den Abbruch wenn ein Fehler passiert:

Private Sub Blabla()
On Error Goto Sprungmarke
Sprungmarke: Exit Sub
End Sub

Gruß,
Andreas
AW: VBA Probleme mir If Schleife (schlechter Stil)
15.08.2006 13:30:14
ingUR
Hallo, Robby,
für mich ist die Aufgabe nicht eindeutig beschrieben.
Meinst Du hier, dass Du als ersten Schritt ein Array aus vier Zahlen oder eine Zahl aus vier Ziffern bestimmst? In welchem Wertebereich soll eine Zufallszahl bestimmt werden?
Welche Zahlen sollen eingetragen werden, beliebige oder die ermittelte?
Das hört sich noch einfach für mich an.
Was soll geschehen, wenn "1 oder 3" einen Eintrag in Zelle erfordert, die bereits als Antwort auf das Ereignes "2 oder 4" beschrieben wurde und versa vice?
Mir fehlt momentan die Phantasie, wie die If-Abfrage den Absturz verursachen kann, woo Du doch beschreibst, dass sie nur Zellen füllt oder eben nicht. Da scheint eine andere, Uher nicht erkennbare Ursache vorhanden zu sein, die entweder in Deiner Verschachtelungsaufbau zu suchen ist oder in eienr Bedingung, die Du hier nicht vorgestellt hast. Wäre gut, den vollständigen IF-Block zu sehen.
Das ist in jedem Fall ein guter Zug und nur fair gegenüber dem Programm.
Generell könnte ich mir vorstellen, dass je nach Art der Werte, die Du einträgst, Du ein Datenfeld mit den Werten füllst, um so den Überblick über den Füllstand zu erhalten: Dim a1e2(10). Nun kannst Du den Index1 hochzählen für den Fall dass "1 oder 3" eintritt oder die Indexberechnung für Index2 durchführen, wenn der Fall "2 oder 4" zu behandeln ist.
Hier eine unerprobte Ideenskizze zum Programmabschnitt, so wie ich Deine Beschreibung interpretiere:

randomize
zz=cint(rnd*4)+1
newitem=false
if zz=1 or zz=3 then
Index1=1
while Index1<11
if a1e2(Index1)=0 then
a1e2=Wert
index1=10
newitem=true
end if
index1=index1+1
wend
else
if zz=2 or zz=4 then
Index2=6
while Index1<>5
if a1e2(Index2)=0 then
a1e2=Wert
index2=4
newitem=true
end if
index2=index2+1
if index2>10 then index2=1
wend
end if
end if
if newitem then
for item =1 to 5
cells(1,item)=a1e2(item)
cells(2,item)=a1e2(5+item)
next
end if
if a1e2(5)*a1e2(10)<>0 then exit sub

Gruß,
Uwe
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige