Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
880to884
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
880to884
880to884
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Hilfe bei UserForm

Hilfe bei UserForm
23.06.2007 11:26:11
peschi
Hallo !
Gebe Daten bei Excel per UserForm ein mittels folgendem Code für das UserForm (2 Textboxen: 1.Textbox für Spalte A, 2.Textbox für Spalte B - mehrere Arbeitsblätter - hinzufügen der Daten erfolgt über Button):
Dim loLetzte As Long
With Worksheets(Left(Textbox1,1))
loLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
Set raZelle = .Range("A1:A" & loLetzte).Find(TextBox1, , xlValues, xlWhole)
If Not raZelle Is Nothing Then
MsgBox "Diesen Wert gibt es schon"
Exit Sub
Else
.Cells(loLetzte + 1, 1) = TextBox1
.Cells(loLetzte + 1, 2) = TextBox2
End If
End With
Wie muss der Code umgeschrieben werden, damit während der Eingabe in TextBox1 simultan/gleichzeitig überprüft wird, ob der Eintrag bereits vorhanden ist und die MsgBox"Diesen Wert gibt es schon" bereits früher angezeig wird und nicht erst, wenn die Einträge in beide Textboxen erfolgt sind und man den Button zum hinzufügen der Daten betätigt ? Des weiteren fehlt hier noch nach dem betätigen des Button Daten hinzufügen die Rückmeldung, dass die Daten erfasst/eingetragen wurden.
Gruß
peschi

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe bei UserForm
23.06.2007 11:31:00
Hajo_Zi
Hallo Peschi,
ich würde schreiben. schreibe folgenden Code unter dem Change Ereignis der Textbox
Dim loLetzte As Long
With Worksheets(Left(Textbox1,1))
loLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
Set raZelle = .Range("A1:A" & loLetzte).Find(TextBox1, , xlValues, xlWhole)
If Not raZelle Is Nothing Then
MsgBox "Diesen Wert gibt es schon"
Exit Sub
end if
Der Code steht doch jetzt unter dem Afterupdate Ereignis.
verändere den Code wie folgt.
Else
.Cells(loLetzte + 1, 1) = TextBox1
.Cells(loLetzte + 1, 2) = TextBox2
Msgbox "Werte übertragen"
End If
Du solltest einen Beitrag nicht in einem anderem Forum weiter führen. Karin hatte sich schon mit Deinem Problem schon auseinander gesetzt.

Anzeige
AW: Hilfe bei UserForm
23.06.2007 12:52:00
Gerd
Hallo Peschi,
ob es sinnvoll ist, die Blattauswahl und den Werteabgleich aus einer Textbox-Eingabe zu steuern,
lasse ich mal so als Frage stehen. So im Groben - siehe unten -, ins _AfterUpdate wäre auch o.K.
Hallo Hajo,
das Change-Ereignis wird, soweit ich mich erinnere, bei jeder einzelnen Zeicheneingabe ausgelöst.

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim loLetzte As Long, raZelle As Range
If TextBox1.Text  Empty Then
With Worksheets(Left(TextBox1, 1))
loLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows. _
Count)
Set raZelle = .Range("A1:A" & loLetzte).Find(TextBox1, , xlValues, xlWhole)
If Not raZelle Is Nothing Then
MsgBox "Diesen Wert gibt es schon"
Me.TextBox1.Text = ""
Me.TextBox1.SetFocus
End If
End With
End If
End Sub


Grüße Gerd

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige