Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

Hochzählen in UserForm | Herbers Excel-Forum


Betrifft: Hochzählen in UserForm von: Andi
Geschrieben am: 09.02.2012 09:31:07

Hallo liebe Herber-Gemeinde,

Ich habe ein dringendes Problem.
Ich habe eine Auswahl von z.B. 7 Fehlern. Und diese stehen per Bezeichnungsfeld auf einem Blatt in der UserForm. Neben jedem Fehler habe ich jeweils einen Button ( Befehlsschaltfläche ) und daneben ein Ausgabefeld ( Textfeld ).

In jedem Ausgabefeld sollte zu Beginn 0 stehen und dann beim jeweiligen Buttonclick um 1 hochzählen.

Über Vorschläge zur Realisierung würde ich mich tierisch freuen.

Mfg Andi

  

Betrifft: AW: Hochzählen in UserForm von: Oberschlumpf
Geschrieben am: 09.02.2012 11:09:02

Hi Andi

Versuch mal:

beispielhaft an Ausgabefeld1

Private Sub Userform_Activate()

    Ausgabefeld1.Text = 0

End Sub

Private Sub CommundButton1_Click()

    Ausgabefeld1.Text = Val(Ausgabefeld1.Caption) + 1

End Sub
Für Ausgabefeld1 musst du natürlich den Namen eintragen, den du verwendet hast.

Hilfts?

Mein Code ist ungetestet, da ich keine Bsp-Datei von dir sehe.

Ciao
Thorsten


  

Betrifft: ..welche "Fehler" meinst Du ? owT von: robert
Geschrieben am: 09.02.2012 11:12:00




  

Betrifft: AW: ..welche "Fehler" meinst Du ? owT von: Oberschlumpf
Geschrieben am: 09.02.2012 11:14:48

Hi Robert

Vllt Fehler, die nur für ihn von Bedeutung sind und hier für die Lösung nicht relevant sind. Also er meint wohl nicht Excel-Fehler, denk ich.

Ciao
Thorsten


  

Betrifft: AW: ..welche "Fehler" meinst Du ? owT von: Andi
Geschrieben am: 09.02.2012 11:19:23

Hi Robert und Thorsten,

Erstmal danke für eure Antworten. :)

Thorsten Du hast Recht die Fehler beziehen sich nicht auf Excel und Robert Dein Vorschlag funktioniert einwandfrei. Klasse!!!

Danke euch beiden nochmal!!! :D

Grüße Andi


  

Betrifft: ???????? von: Oberschlumpf
Geschrieben am: 09.02.2012 11:21:43

ähh Andi

Welchen Vorschlag von Robert meinst du denn??

Ciao
Thorsten


  

Betrifft: AW: ???????? von: Andi
Geschrieben am: 09.02.2012 11:23:16

Oh sorry habe die Namen vertauscht!!! :D
Deinen meinte ich natürlich Thorsten!

Bye Andi


  

Betrifft: AW: Hochzählen in UserForm von: Andi
Geschrieben am: 09.02.2012 13:24:11

Hallo ich muss leider nochmal nerven und ich hoffe ihr wisst nochmal weiter. :)

Es funktioniert soweit super: Beim klicken des Buttons erhöht sich der Wert im Ausgabefeld nun um +1.

Jetzt doch noch eine Frage: Wie bekomme ich es hin das der sich erhöhte Wert gespeichert bleibt, also beim nächsten schließen und wieder öffnen der Datei der Wert immernoch drin steht?

Danke im vorraus.

Gruß Andi


  

Betrifft: AW: Hochzählen in UserForm von: Oberschlumpf
Geschrieben am: 09.02.2012 14:45:13

Hi Andi

Das geht entweder, indem du den Wert in eine Hilfszelle schreibst, oder indem du den Wert in eine extra Datei speicherst, die vom Code erzeugt wird.

Lösung Zelle:
vorm Beenden:

Private Sub Userform_Terminate()
    Range("Z1").Value = Ausgabefeld1.Text
End Sub
nach Starten des Userforms:
Private Sub Userform_Activate()
    If Range("Z1").Value <> "" Then
            Ausgabefeld1.Text = Range("Z1").Value
        Else
            Ausgabefeld1.Text = 0 'diese Zeile hast du schon
    End If
End Sub
wenn mit extra Datei:
vorm Beenden:
Private Sub Userform_Terminate()
    Open ThisWorkbook.Path & "\datei.ini" For Output As #1
        Print #1, Ausgabefeld1.Text
    Close
End Sub
nach Starten des Userforms:
Private Sub Userform_Activate()
    Dim liInhalt As Integer
    Open ThisWorkbook.Path & "\datei.ini" For Input As #1
        Input #1, liInhalt
    Close
    Ausgabefeld1.Text = liInhalt
End Sub
Was davon hilft?

Ciao
Thorsten


  

Betrifft: AW: Hochzählen in UserForm von: Andi
Geschrieben am: 09.02.2012 15:20:14

Hi Thorsten,

also ich habe es schonmal geschafft, das er den Inhalt der Hilfszellen ausliest und in meiner textbox ausgibt, jedoch schaffe ich es nicht die Werte aus der Textbox in die Hilfszellen zu bekommen

Private Sub Userform_Terminate()
    Range("Z1").Value = Ausgabefeld1.Text
End Sub
Damit will er nicht Recht!!! (trotzdem Danke)

Meine Userform_queryclose sieht so aus:



Private Sub Userform_QueryClose(Cancel As Integer, CloseMode As Integer)

Dim wkb As Workbook
Application.ScreenUpdating = False

For Each wkb In Workbooks
    If Windows(wkb.Name).Visible Then _
      ActiveWindow.WindowState = xlMaximized
Next

Application.ScreenUpdating = True

End Sub


Die Tabelle in der die Hilfszelle steht heißt Definitionen...

Eine Idee???


  

Betrifft: AW: Hochzählen in UserForm von: Oberschlumpf
Geschrieben am: 09.02.2012 19:49:20

Hi

Bei Verwendung von

Range("Z1").Value = Ausgabefeld1.Text

wird der Wert von Ausgabefeld1.Text in die Zelle Z1 im gerade aktuellen Tabellenblatt geschrieben.
Ich weiss aber nicht, ob das gerade aktuelle Tabellenblatt auch das ist, in dem die Zelle Z1 genutzt werden soll.

Dein Textfeld heißt auch Ausgabefeld1.Text, oder?

Sorry, ohne Bsp-Datei von dir kann ich nich weiter helfen.

Ciao
Thorsten


  

Betrifft: AW: Hochzählen in UserForm von: Andi
Geschrieben am: 10.02.2012 08:16:25

Guten Morgen Thorsten,

Mein Textfeld heißt LabelAnzahl1. Und die Tabelle in die es geschrieben werden soll heißt 'Definitionen'. Und da soll es dann in die Zelle E17.

Gruß Andi


  

Betrifft: AW: Hochzählen in UserForm von: Andi
Geschrieben am: 10.02.2012 08:38:02

So Thorsten ich nochmal. :)

Du hattest natürlich Recht. Es funktioniert genau so wie Du es schreibst, danke. Nur wie bekomme ich es hin das die Tabelle 'Definitionen' auch immer aktiv ist wenn ich die UserForm schließe??? Denn normalerweise ist immer eine andere Tabelle aktiv.

Gruß Andi

Und danke nochmal


  

Betrifft: AW: Hochzählen in UserForm von: Andi
Geschrieben am: 10.02.2012 08:49:25

Also Thorsten,

es funktioniert Du hattest natürlich Recht. :) Danke.
Ich habe nur das Problem das ich die Tabelle ausgebledet habe und er die Werte dann nicht darin speichert da die Tabelle ja nicht aktiv ist.

Gruß Andi


  

Betrifft: AW: Hochzählen in UserForm von: Oberschlumpf
Geschrieben am: 10.02.2012 16:32:11

Hi Andi

Du musst die Objekte 100% genau referenzieren.

Sheets("Definitionen").Range("E17").Value = LabelAnzahl1.Caption

oder eben umgekehrt.

Aber ist dein "Textfeld" nun ein Textfeld oder ein Bezeichnungsfeld??

Nicht nur die Referenzierung ist wicthig sondern auch die ricthige Bezeichnung.
Denn wenn du das eine sagst, aber das andere meinst, dann kommen wir auch nicht weiter.

Ciao
Thorsten


  

Betrifft: AW: Hochzählen in UserForm von: Andi
Geschrieben am: 13.02.2012 08:15:34

Hallo Thorsten,

Also ich habe es hinbekommen. Es war ein Bezeichungsfeld.
Habe es so gemacht wie Du es beschreibst, also Sheets("Definitionen").Range... usw.

Dankeschön

MfG Andi


Beiträge aus den Excel-Beispielen zum Thema "Hochzählen in UserForm"