Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

For schleife Zähler
#1
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
Live is a Game Play it
Antworten Top
#2
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.
Viele Grüße,
Matthias

-------------------------------------------------------------------------------------------

Man muß nicht alles wissen, man muß nur wissen, wie man die Lösung findet.
Antworten Top
#3
Hallo,

Danke schön für die schnelle Antwort hat super geklappt.
Live is a Game Play it
Antworten Top
#4
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.
Live is a Game Play it
Antworten Top
#5
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?
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#6
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 ???
Live is a Game Play it
Antworten Top
#7
Hier mal meine Datei.
Live is a Game Play it
Antworten Top
#8
ups hab die andere vergessen
Live is a Game Play it
Antworten Top
#9
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
Viele Grüße,
Matthias

-------------------------------------------------------------------------------------------

Man muß nicht alles wissen, man muß nur wissen, wie man die Lösung findet.
Antworten Top
#10
Übrigens ergibt der Satz "Live is a Game Play it" so überhaupt keinen Sinn...  Blush
Schöne Grüße
Berni
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste