Zähler in Textbox

D

Dennis-20

Hallo an euch alle,
da ich nicht gerade ein Könner in VBA bin, jedoch es immer besser kann, bleibt es nicht aus dann ich mal an einigen Stellen keine Ahnung habe was ich falsch mache bzw. wie es besser geht. :confused:
Mein Problem:
Ich habe mir eine UserForm erstellt, in der sich eine TextBox (TextBox1) befindet. Dort soll eine Zahl (positive Zahl) eingegeben werden. Diese Zahl wird zunächst durch einen "Klick" auf einen CommandButton (CommandButton1) gespeichert. Durch diesen Klick wird in einer anderen Textbox (TextBox5) der Text "Geben Sie alle Angaben der 1. Person an".
Das alles funktioniert einwandfrei. Nur:
Ich wünsche mir eine Art Zähler, der durch einen Klick auf einen anderen CommandButton (CommandButton2) in der TextBox5 zunächst den "Inhalt" löscht und dann "Geben Sie alle Angaben der 2. Person an" ausgibt und durch noch weitere Klicks (max soll die Zahl in Textbox1 sein) immer die vorherige Zahl um 1 erhöht.

Ich würde mich freuen wenn ich eine "benutzerfrundliche" Erklärung bekomme :)
Im Netz habe ich nicht gefunden :(

Gruß Dennis
 
Willkommen erstmal hier im Forum, :)

ich hoffe, dass ich deine Erklärung richtig verstanden habe.

Visual Basic:
Dim Zähler As Integer 'Hier wird eine öffentliche Variable deklariert

Private Sub CommandButton1_Click()  'Wenn man auf den CommandButton1 klickt...
   Zähler = 1  'Der Zähler wird auf 1 gesetzt
    'Der Anfangstext wird in die TextBox5 geschrieben
   TextBox5.Text = "Geben Sie alle Angaben der 1. Person an." 
End Sub

Private Sub CommandButton2_Click()  'Wenn man auf den CommandButton2 klickt
'Wenn der Zähler gleichgroß wie die Zahl ist, dann wird nichts mehr gemacht
   If Zähler = TextBox1.Text Then Exit Sub   
   Zähler = Zähler + 1  'Der Zähler wird um 1 erhöht
   'Der Text mit dem Zähler alsPersonenanzahl wird in TextBox5 ausgegeben
   TextBox5.Text = "Geben Sie alle Angaben der " & Zähler & ". Person an."
End Sub

Also zuerst schreibt man in TextBox1 eine Zahl rein, wenn man dann auf den CommandButton1 klickt, wird in TextBox5 der Text "Geben Sie alle Angaben der 1. Person an." geschrieben.
Dann, wenn man auf den CommandButton5 klickt, wird der Zähler um eins erhöht und der Text selbe Text, wie vorher ausgegeben, nur dass statt der "1. Person" nun die sovielte Person da steht, wie der Zähler groß ist. Das lässt sich solange wiederholen, bis der Zähler so groß ist, wie die vorher in TextBox1 eingegebene Zahl.

Ich hoffe, ich habe das richtig verstanden und meine Erklärungen waren "benutzfreundlich" genug. :)

Wenn das nicht das war, was du suchtest oder du mit meinen Erklärungen nichts anfangen kannst, dann melde dich einfach wieder. :)

MfG
 
DANKE
alles schön erklärt und es funktioniert einwandfrei :)

hab noch eine kleine frage:
wenn der zähler bei der letzten person angekommen ist und man auf den commandbutton2 klickt, soll danach eine msgbox erscheinen und der commandbutton2 soll enabled=false sein.
mein versuch ging leider nicht ganz, da er bei der letzten person obwohl man noch keine angaben gemacht hat schon die msgbox ausgab und und commandbutton2 "sperrte".

Code:
If zähler = zähler Then
        MsgBox "Es wurden alle Daten der Personen angegeben."
        CommandButton2.Enabled = False
    End If

was muss ich da ändern
 
Das war ja schon fast richtig, es gab nur einen kleinen Fehler, und zwar, wenn du schreibst
Visual Basic:
If zähler = zähler Then
Dann wird der Code natürlich schon beim ersten Mal ausgeführt, weil der Zähler ja immer gleich dem Zähler ist. (1 ist immer gleich 1) ;)

Deswegen musst du prüfen, ob der Zähler schon gleichgroß, wie die Zahl in TextBox1 ist:
Visual Basic:
 'Ist Zähler gleich der Zahl in TextBox1 ?
If Zähler = TextBox1.Text Then   
     MsgBox "Es wurden alle Daten der Personen angegeben."
    CommandButton2.Enabled = False
End If

Hoffe das hilft. :)
 
hmm mir is gerade doch noch was aufgefallen.
als ich das gerade mal getestet habe kam die msgbox bevor ich die letzte person bearbeitet habe.
man müsste also iwie und iwo die msgbox um +1 später anzeigen lassen.
 
Hast du auch das

Visual Basic:
If Zähler = TextBox1.Text Then
      MsgBox "Es wurden alle Daten der Personen angegeben."
      CommandButton2.Enabled = False
      Exit Sub
   End If

über dem
Visual Basic:
Zähler = Zähler + 1  'Der Zähler wird um 1 erhöht

denn bei mir funktioniert alles einwandfrei.

Also sieht das bei dir so aus? :
Visual Basic:
If Zähler = TextBox1.Text Then
      MsgBox "Es wurden alle Daten der Personen angegeben."
      CommandButton2.Enabled = False
      Exit Sub
   End If
   Zähler = Zähler + 1  'Der Zähler wird um 1 erhöht
   'Der Text mit dem Zähler alsPersonenanzahl wird in TextBox5 ausgegeben
   Textbox5.Text = "Geben Sie alle Angaben der " & Zähler & ". Person an."
 
okay jetzt gehts bei mir auch.
kleiner rechtschreibfehler^^
danke nochmal :)
 
Freut mich, dass ich dir helfen konnte. :)
Wenn du noch weitere Fragen hast, scheue dich nicht, dich wieder zu melden ;)
 
hmmm ja da wär eventuell noch was:

wie kann man nach der auswahl einer person in einer combobox die ganze zeile im worksheet ansprechen in der sich diese person befindet, da aus dieser zeile einige daten in einem neuen userform angezeigt werden müssen.
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück