Clever-Excel-Forum

Normale Version: For schleife Zähler
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo liebes Forum,

Ich hab mal ne frage an euch.
Ich hab ne For schleife die mir einen Zähler anzeigt, nun möchte Ich das dieser Zähler automatisch an die Größe der Schleife angepasst wird.
Code:
'Startet einen zähler der die Anzeige der Neuen Frimen wieder gibt
Dim WR, i, j

WR = Me.Label2.Caption
j = 0
If WR = 0 Then Exit Function Else

For i = 0 To WR Step 8
   Me.Label3.Caption = j
   j = j + 8
   Application.Wait Now + TimeValue("00:00:01")
   Me.Repaint
Next i
In Label2 ist die anzahl an Eingaben die die For schleife macht z.B. 32 oder 400
jetzt wird die schleife mit step 8 nach oben gezogen.
aber bei 400 oder mehr dauert das zulange.
wie kann ich das automatisch anpassen??
lg flo
Hallo,

deine Variablen i und j haben immer stets genau den gleichen Wert - hier kannst du dir also eine sparen.

Du kannst das automatisch anpassen, in dem du den Step anpasst. Anstatt eines festen Wertes, kannst du hier auch eine Formel (z.B. WR/10) stehen haben.
Hallo,

Danke schön für die schnelle Antwort hat super geklappt.
Code:
Private Function EingabenSetzen()
'Startet einen zähler der die Anzeige der Neuen Firmen wieder gibt
Dim WR, i
Dim Autostep As Long

WR = Me.Label2.Caption
Autostep = 8

If WR = 0 Then Exit Function Else
If WR >= 100 Then Autostep = 16
 If WR >= 500 Then Autostep = 24
  If WR >= 1000 Then Autostep = 32

For i = 0 To WR Step Autostep
   Me.Label3.Caption = i
   Application.Wait Now + TimeValue("00:00:01")
   Me.Repaint
Next i
   
MsgBox "Lesen und Schreiben Erfolgreich!", vbInformation, "Neue Firmen"
Me.Label3.ForeColor = RGB(0, 255, 0) 'Green
 SuchButton.Caption = "Beenden"
  SuchButton.ForeColor = 33023
End Function
Hab das Ganze jetzt über eine Variable gelöst.
Hallo Florian,

was macht eigentlich das einsame Else in deinem Code? Deklariere doch auch die Variablen WR und i mit dem richtigen Typ. Anstelle deiner 3 If-Abfragen könntest Du auch es so versuchen
Code:
Select Case WR
      Case 100 To 499
         Autostep = 16
      Case 500 To 999
         Autostep = 24
      Case Is >= 1000
         Autostep = 32
   End Select

Nachtrag: Und zu was hast Du eine Funktion wenn Du dieser nichts zurückgibst?
Hallo,

Das mit der function passt schon so da kommt noch was rein an code später.
Zu den Variablen die hab ich glatt vergessen richtig zu machen Blush

das mit dem case gefällt mir auch viel besser danke dafür.
aber Ich hab ein Problem damit, es geht nicht so wie ich das meinte.

auf dem label2 sind 109 zu sehen und label3 hat 96
also label3 mit den Durchläufen der schleife ist nicht gleich groß wie kann ich das machen ???
Hier mal meine Datei.
ups hab die andere vergessen
Ergänze am Ende noch den Befehl:
Code:
Label3.Caption = Label2.Caption
Ich würde übrigens dir empfehlen, deine Elemente (Label, Variablen, etc.) sprechend zu benamsen. Dann hast du es bei einer späteren Weiterentwicklung wesentlich einfacher
Übrigens ergibt der Satz "Live is a Game Play it" so überhaupt keinen Sinn...  Blush
Seiten: 1 2