PDA

Vollständige Version anzeigen : For-Next schleife mit Userform steuern


Daniel1983
21.04.2009, 18:38
Hallo zusammen

ich sitze hier vor einem Problem. Und finde keine Lösung, vielleicht kann mir da einer Helfen wäre echt meine Rettung. also:

Ich habe eine For-Next Schleife in der ich Punktnummern abfrage. Ich möchte mir die Punktnummern in einer Userform anzeigen lassen, aber nur bis die Nächste Nummer mit einer 3 beginnt. Das kann eine oder zwei bis ca. 15 Punktnummern sein. wenn ich dann diese in der Userform angesehen haben, sollen diese jeweils in eine Zelle geschrieben werden und dannach soll er weiter mit der For-next Schleife machen.

Das Problem liegt nicht darin es in eine Zelle zu schreiben, oder das mit der 3 rauszufinden wann diese kommt, sondern die Userform und wie kann ich das Steuern das die for-next Schleife dort weiterläuft.

ganz schön viel Text aber auch etwas knifflig.
Viele Dank schon mal
Daniel:)

jinx
21.04.2009, 19:21
Moin, Daniel,

es ist für Dich schwierig, den Tatbestand zu beschreiben - aber auch für diejenigen nicht unbedingt leichter, dass, was Du erreichen möchtest, zu verstehen (ich spreche da hauptsächlich von mir ;)).

Eine For Next - Schleife kann für eine gewisse Zeit pausiert werden - ich bezweifele aber, dass dies eine dem Problem wirklich entsprechende Lösung wäre.
Ich würde eher eine Listbox für die Anzeige der Daten wählen und dann entweder einen Klick/Doppelklick in die Listbox oder eine Auswahl in der Listbox und/oder eine Schaltfläche bzw. das Verlassen der Listbox als Ereignis nehmen, um die Schleife (evtl. mit geänderten Anfangswerten) erneut zu starten.

Dazu würde ich aber etwas mehr an grundlegenden Informationen benötigen - ansonsten wird das nur eine Programmierübung meinerseits, die Du an Deine tatsächlichen Gegebenheiten anpassen musst.

Daniel1983
21.04.2009, 19:36
For i = 4 To Index_V
If Punktnummer(i) = Punktnummer(i - 1) Then
k = k + 1
Else
k = 0
End If

Userform1.TextBox15 = "1" & Punktnummer(i)
Userform1.TextBox16 = Rechtwert(i)
Userform1.TextBox17 = Hochwert(i)
Userform1.TextBox18 = Höhe(i)
Userform1.TextBox19 = "unbekannt"
Userform1.TextBox20 = ""
Userform1.TextBox21 = "gemessen"
Userform1.TextBox22 = ""
Userform1.TextBox23 = "gemessen"
Userform1.TextBox24 = ""
Userform1.TextBox25 = Code(i) & " " & Firma & " " & Bemerkung(i)

Next i

Also ich habe es mir so gedacht, dass solange die Punktnummer gleich ist soll er die Daten in die Userform Schreiben (kleiner Auszug siehe oben) bis die Punktnummer sich verändert, hier soll er dann stoppen. In der Userform kann der User die Daten wenn gewünscht verändern, und den Inhalt der Textboxen werden durch cmd dann in Zellen geschrieben. Danach soll die For-next Schleife mit der neuen Punktnummer weitermachen.

Brauchst noch mehr infos?

jinx
22.04.2009, 07:00
Moin, Daniel,

viele Datenfelder, wenn ich den Code richtig deute - entweder eine statische Variable, die den Zähler aufnimmt, eine globale Variable, oder den Wert in ein nicht sichtbares Textfeld schrieben, was überprüft und diesen Wert als Startwert der Schleife einsetzt (bei Initialisierung der UF z.B. mit dem Wert 4 vorbelegt).

Daniel1983
22.04.2009, 20:36
Hallo habe es endlich geschafft.

habe ein die Daten dynamisch deklariert und nun funktioniert es.

Danke