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

Do While Loop

Do While Loop
16.12.2004 11:12:12
Marcel
Hallo zusammen !
Hab die Frage schon einmal gestellt... glaube Kollege ist abgesprungen
Nachdem ich den Hinweis bekommen habe, dass ich eine Do While Schleife benutzen muss, bin ich genauso schlau wie vorher. Die Beispiele die man so findet sind ja einfach zu verstehen... aber wie bau ich das Ding hier ein?
Problem:
Es wird eine Abfrage gestartet, ob die Nummer zulässig ist.
Ist sie es nicht, erscheit eine MsgBox.
Jetzt soll die Material "Menge" und Die "Materialnummer" sooooollaaannngge
eingegeben werden bis sie stimmt erlaubt ist.
Also: ist Do Until c = True die Bedingung?
und wo gehört das hin.
Hab noch nie ein Schleifchen gebastellt und bin grad völlig überfordert ;-)
Dim ws3, ws4 As Worksheet
Set ws3 = Worksheets("Materialanforderung")
Set ws4 = Worksheets("Materialanforderung")
Nr = ws3.Cells(12, 5)
With ws4.Range("IU1:IU1681")
Set c = .Find(Nr, LookIn:=xlValues)
If Not c Is Nothing Then
Else
Do Until c = True
MsgBox "Kein Schüttgut, Bestellung kann nicht erfolgen"
Worksheets("Materialanforderung").Cells(12, 4).Value = InputBox
( "Menge:", "Eingabe Erforderlich")
Worksheets("Materialanforderung").Cells(12, 5).Value = InputBox
("Materialnummer:", "Eingabe Erforderlich")
If c = False Then Exit Do
Loop
End If
End With
Hiiiillllffffeeee
Gruß**

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Do While Loop
Harald
Hallo Marcel,
zu jeder Schleife gehört ein Anfang (hier: Do until), ein Schleifenkörper (was innerhalb der Schleife wiederholt zu tun ist) und ein Schleifenende (hier: Loop)
Damit das funktioniert muss man sicher stellen, dass die Schleifenbedingung (hier: until) auch irgendwann einmal erfüllt ist. In Deinem Fall könnte das etwa so aussehen:
With ws4.Range("IU1:IU1681")
Do
Set c = .Find(Nr, LookIn:=xlValues) ' Hier wird der zu prüfende Schleifenparameter innerhalb der Schleifemit einem Wert versehen
if c is Nothing then ' Hier wird die Aktion ausgeführt, wenn die Bedingunmg nicht erfüllt ist
MsgBox "Kein Schüttgut, Bestellung kann nicht erfolgen"
Worksheets("Materialanforderung").Cells(12, 4).Value = InputBox
( "Menge:", "Eingabe Erforderlich")
Worksheets("Materialanforderung").Cells(12, 5).Value = InputBox
("Materialnummer:", "Eingabe Erforderlich")
End If
Loop Until not c is Nothing ' Die Schleife endet, sobald die Bedingung erfüllt ist
End With
Was und wie Du innerhalb der Schleife tun willst, das liegt in Deiner Verantwortung.
Hier (http://mpl-server.kr.fh-niederrhein.de/vordrucke/PR_WS_A3/body_pr_ws_a3.html) findest Du näheres zu den verschiedenen Typen von Schleifen.
Gruß Harald
Anzeige
AW: Do While Loop
Marcel
Sehr schön...
da kommen wir der Sache schon näher!!
Durch deine Beschreibung verstehe Ich die Schleife ;-)
Allerdings wird bei der richtigen Eingabe nicht beendet. Endlos ......
Loop Until Not c Is Nothing
Klingt logisch ab ist noch ein kleiner Fehler beim Ende der Schleife!
Kann man nicht sagen wenn c = True oder so? das sie dann beendet werden soll?
Gruß Marcel
AW: Do While Loop
Harald
Hallo Marcel,
wie Die Schleifenbedingung lautet liegt bei Dir. Sie muss so gewählt sein, dass der gesamte Ausdruck wahr wird.
Also Loop Until {Ausdruck}
für {Ausdruck} kann vieles stehen, z.B. "c is nothing" oder "c = True", vorausgesetzt c wird irgendwann auch einmal Nothing oder True.
Gruß Harald
Anzeige
AW: Do While Loop
Marcel
Jups Jetzt hab ich es!!
Die Schleife musste an einer Anderen Stelle beginnen *** hähääh
Ich danke dir für deine Hilfe;-)
AW: Do While Loop
EtoPHG
Hallo Marcel,
Du vergisst in all Deinen Anfragen die REGELN für eine GÜLTIGE Materialnummer zu definieren. So ist es schwierig zu helfen.
Ich seh nicht ein, für was Du hier Inputboxes und VBA brauchst, der Wert wird ja 1 zu 1 in Zellen übertragen. Ich empfehle die mit Zellengültigkeit zu arbeiten.
Ich behaupte mal das mit einer Gültigkeitsregel LISTE auf Zelle E2
Gruss Hansueli
AW: Do While Loop
Marcel
Die Nummer wird 1 zu 1 Übertragen das ist richtig ::ABER durch
Dim ws3, ws4 As Worksheet
Set ws3 = Worksheets("Materialanforderung")
Set ws4 = Worksheets("Materialanforderung")
Nr = ws3.Cells(12, 5)
With ws4.Range("IU1:IU1681")
Set c = .Find(Nr, LookIn:=xlValues)
wird geprüft ob diese Nummer zulässig ist oder nicht... Der User soll nur bestimmte Nr. eingeben dürfen. Das ist so der Fall. Die MsgBox soll so lange auftauchen bis die richtige Nr. eingegeben wird.
Gruß Marcel
Anzeige
AW: Do While Loop
Marcel
Die Nummer wird 1 zu 1 Übertragen das ist richtig ::ABER durch
Dim ws3, ws4 As Worksheet
Set ws3 = Worksheets("Materialanforderung")
Set ws4 = Worksheets("Materialanforderung")
Nr = ws3.Cells(12, 5)
With ws4.Range("IU1:IU1681")
Set c = .Find(Nr, LookIn:=xlValues)
wird geprüft ob diese Nummer zulässig ist oder nicht... Der User soll nur bestimmte Nr. eingeben dürfen. Das ist so der Fall. Die MsgBox soll so lange auftauchen bis die richtige Nr. eingegeben wird.
Gruß Marcel

218 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige