Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1532to1536
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
VBA: Kein Eintrag sichtbar
10.01.2017 16:00:42
Hans
Hallo Gemeinde!
Ich habe eine Userform die den Inhalt eines Textfeldes auf mind. 12 Stellen Länge kontrollieren soll und dann in die nächste freie Zelle ab "A7" eintregen soll. Bei zu kurzer Eingabe soll ein Fehlerfenster kommen (dieses Funktioniert).
Leider wird aber der Inhalt der Textfeldes nicht eingetragen.
Mein bisheriger Code lautet:
Private Sub CommandButton1_Click()
Z = Range("A7").End(xlDown).Row + 1
If Z > 65000 Then Z = 2
If Len(TextBox1.Text) = 12 Then
Cells(Z, 1) = TextBox1
Else: MsgBox "Nummer Fehlerhaft!", 48, "Achtung"
End If
Dim ctrElement As Control
For Each ctrElement In Controls
Select Case TypeName(ctrElement)
Case "TextBox": ctrElement = ""
Case "CheckBox": ctrElement = False
Case "ListBox", "ComboBox"
If ctrElement.RowSource = "" Then
ctrElement.Clear
Else
ctrElement.ListIndex = -1
End If
End Select
Next
End Sub
Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub
wo liegt der Fehler und warum?
Die Codeschnipsel wurden zusammengegoogelt aber nicht alles verstanden!
Danke für Eure Mühe!
mfG der Hans

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Kein Eintrag sichtbar
10.01.2017 16:05:00
Werner
Hallo Hans,
du kontrollierst die TextBox-Eingabe ja auf die exakte Länge von 12 Zeichen. Das heißt länger und kürzer führen zur Messagebox. Wenn du nur bei kleiner 12 die Meldung willst dann:
If Len(TextBox1.Text) 
Gruß Werner
AW: VBA: Kein Eintrag sichtbar
10.01.2017 16:15:23
Hans
Hallo Werner,
Das mit den exakt 12 Zeichen ist richtig. Das Fenster funktioniert auch bei zu kurzer Eingabe!
Nur der "Übertrag" der TextBox1 in die nächste freie Zelle will nicht. Bei Klick auf "eintragen" wird zwar die TextBox gelöscht aber im Arbeitsblatt taucht nichts auf. Das Ziel wäre das Arbeitsblatt "Scheine" ab Zelle A7
mfG der Hans
Anzeige
AW: VBA: Kein Eintrag sichtbar
10.01.2017 16:20:53
Werner
Hallo Hans,
Anscheinend hast du es nicht ausprobiert. Mit deinem Code wird der Inhalt der TextBox nur dann übertragen wenn die Länge exakt 12 Zeichen ist. Ist die Eingabe länger oder kürzer als 12 Zeichen, dann wird nichts in die Tabelle geschrieben.
Gruß Werner
AW: VBA: Kein Eintrag sichtbar
10.01.2017 16:27:58
Hans
Hallo Werner,
Bei größer 12 und kleiner 12 kommt die MSGBox wie gewünscht.
Bei exakt 12 Stellen (es geht um Seriennummern Zahlen und Buchstaben) kommt keien Fehlermeldung aber leider immer noch kein Eintrag. Es wurde soeben nochmals getestet
Gruß Hans
AW: VBA: Kein Eintrag sichtbar
10.01.2017 16:30:04
UweD
Hallo
so? Vielleicht fehlte der Blattbezug?
Private Sub CommandButton1_Click()
    Dim ctrElement As Control
    Dim Z As Long
        
    Z = Sheets("Tabelle1").Range("A7").End(xlDown).Row + 1
    Z = IIf(Z < 7, 7, Z)
    Z = IIf(Z > 65000, 7, Z) ' 2 macht hier keinen Sinn, da ja Zeile 7 gilt 
    If Len(TextBox1.Text) = 12 Then
        Sheets("Tabelle1").Cells(Z, 1) = TextBox1
    Else
         MsgBox "Nummer Fehlerhaft!", 48, "Achtung"
    End If
    
    For Each ctrElement In Controls
        Select Case TypeName(ctrElement)
            Case "TextBox": ctrElement = ""
            Case "CheckBox": ctrElement = False
            Case "ListBox", "ComboBox"
                If ctrElement.RowSource = "" Then
                    ctrElement.Clear
                Else
                    ctrElement.ListIndex = -1
                End If
        End Select
    Next
  
End Sub

Private Sub CommandButton2_Click()
    UserForm1.Hide
End Sub

LG UweD
Anzeige
AW: VBA: Kein Eintrag sichtbar
10.01.2017 16:54:25
Hans
Hallo UweD,
Ich habe deine Version mal kopiert und eingefügt.
Das "grüne" gelöscht! und ausprobiert!
Der Eintrag erfolgt nun!!
Leider wird aber alles in A7 eingetragen/überschrieben und nicht in die nächste freie Zelle:
Der Tabellenbezug wurde Meinen Bezeichnungen angepasst.
Private Sub CommandButton1_Click()
Dim ctrElement As Control
Dim Z As Long
Z = Sheets("Scheine").Range("A7").End(xlDown).Row + 1
Z = IIf(Z  65000, 7, Z)
If Len(TextBox1.Text) = 12 Then
Sheets("Scheine").Cells(Z, 1) = TextBox1
Else
MsgBox "Nummer Fehlerhaft!", 48, "Achtung"
End If
For Each ctrElement In Controls
Select Case TypeName(ctrElement)
Case "TextBox": ctrElement = ""
Case "CheckBox": ctrElement = False
Case "ListBox", "ComboBox"
If ctrElement.RowSource = "" Then
ctrElement.Clear
Else
ctrElement.ListIndex = -1
End If
End Select
Next
End Sub

Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub

Anzeige
zeig doch mal eine Muster Datei
10.01.2017 19:47:09
UweD
... ich kann bei mir keinen Fehler feststellen
AW: VBA: Kein Eintrag sichtbar
10.01.2017 20:12:25
fcs
Hallo Hans,
das Problem ist der Weg wie du di nächste Einfügezeile berechnest.
Wenn in Zeile 7 der 1. Werte eingetragen werden soll und du mit End(xlDown) arbeiten willst, dann musst du in Zelle A6 starten und A6 muss einen Wert enthalten, wenn du ohne weiter ePrüfungen auskommen willst.
Einfacher wird es, wenn du startend in der letzten Zelle mit End(xlUp) arbeitest.
    Dim Z As Long
'wenn Zelle  A6 einen Wert enthält
Z = Sheets("Scheine").Range("A6").End(xlDown).Row + 1
If Z > Sheets("Scheine").Rows.Count Then Z = 7
Sheets("Scheine").Cells(Z, 1) = "Test " & Z      'test-Zeile
'oder anderer Weg
With Sheets("Scheine")
Z = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
If Z 

LG
Franz
Anzeige
AW: VBA: Kein Eintrag sichtbar
11.01.2017 09:47:13
Hans
Guten Morgen,
@ UweD. Die Aktion mit Beispieldatei hat sich erledigt! Ich habe die Version 2 von "fcs" verwendet.
Jetzt funktioniert das alles!
Ich danke Euch für Eure große Hilfe!!
Es ist schön und gut, dass man hier seine Probleme posten kann und Hilfe bzw. Lösungen bekommt.
Nun könnte man ja mit allem hier mal Fragen und abwarten.
Das möchte ich aber nicht!
Gibt es eine möglichkeit zum "Übersetzen"? Ich meine ich gebe eine Code ein (von hier oder Google usw.) und bekomme die Bedeutung angezeigt was es macht oder bewirkt um etwas lernen zu konnen.
Oder Schritt für Schritt Übungen um etwas "zu basteln" für den Lerneffekt.
Gruß der Hans
Anzeige
AW: VBA: Kein Eintrag sichtbar
11.01.2017 19:11:57
fcs
Hallo Hans,
hier findest bei Herber.de viele Beispieldateien.
https://www.herber.de/bestellung.htm
Eine kompakte und preiswerte Kurz-Einführung in Excel-VBA findest hier
https://www.knowware.de/office-programme/excel/
Zusätzlich solltest im VBA-Editor unter
Extras --&gt Optionnen... --&gt Registor "Editor" alle Optionen aktivieren. Das erleichtert die Programmierung und es werden teilweise Hilfs-Infomationen zu Mehoden oder Eigenschaften angezeigt.
VBA ist generel Englisch, bei einem deutsch-sprachigen Excel werden jedoch die Hilfe-Informationen zu den einzelnen Methoden und Eigenschaften nach Taste F1 in deutsch angezeigt. Wenn auch zum Teil über die etwas langsame Online-Hilfe.
Gruß
Franz
Anzeige
AW: VBA: Kein Eintrag sichtbar
12.01.2017 09:24:28
Hans
Hallo Franz,
Danke für die Infos!
Werde mich da mal umschauen, und im Editor die Änderungen vornehmen!
Gruß der Hans

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige