Registriert seit: 16.03.2018
Version(en): 2007,2016
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
Registriert seit: 10.07.2018
Version(en): 2013, 2016
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.
Registriert seit: 16.03.2018
Version(en): 2007,2016
Hallo,
Danke schön für die schnelle Antwort hat super geklappt.
Registriert seit: 16.03.2018
Version(en): 2007,2016
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.
Registriert seit: 11.04.2014
Version(en): Office 2007
28.08.2018, 12:58
(Dieser Beitrag wurde zuletzt bearbeitet: 28.08.2018, 12:58 von Steffl.
Bearbeitungsgrund: Frage ergänzt
)
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
Registriert seit: 16.03.2018
Version(en): 2007,2016
28.08.2018, 14:30
(Dieser Beitrag wurde zuletzt bearbeitet: 28.08.2018, 14:31 von Florian20.)
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

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 ???
Registriert seit: 16.03.2018
Version(en): 2007,2016
Registriert seit: 16.03.2018
Version(en): 2007,2016
ups hab die andere vergessen
Registriert seit: 10.07.2018
Version(en): 2013, 2016
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
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
Übrigens ergibt der Satz "
Live is a Game Play it" so überhaupt keinen Sinn...
Schöne Grüße
Berni