Anzeige
Archiv - Navigation
1204to1208
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
Vergleich und in TextBox ausgeben
amintire
Hallo alle zusammen,
habe zwei TextBoxe (TextBox1 und TextBox2) wo mit CommandButton1_Click() die Eingaben in die Tabelle3 ab A2 und B2 in die Zelle geschrieben werden.
Nun möchte ich, wenn die TextBox1 in der Tabelle3 vorhanden ist, dann die TextBox2 mit dem zellinhalt füllen lassen.
Private Sub CommandButton1_Click()
Dim i As Long
With Sheets("Tabelle3")
i = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(i, 1) = TextBox1
i = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
.Cells(i, 2) = TextBox2
End With
If TextBox2 = "" Then
MsgBox ("Geben Sie die Daten ein.")
'  ComboBox2.SetFocus
End If
ActiveCell.Offset(1, 0).Range("A1").Select
Application.ScreenUpdating = True
Unload Me
End Sub

Vielen Dank für eure Hilfe,
Lieben Gruß
Amina

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Vergleich und in TextBox ausgeben
20.03.2011 16:44:36
Hajo_Zi
Hallo Ammina,
mit welcher Zelle soll verglichen werden? .Cells(i, 1) ist immer leer.

AW: Vergleich und in TextBox ausgeben
20.03.2011 16:53:08
amintire
Hallo Hajo,
hier mal eine Beispiedatei.
Man gibt in TextBox1 und TextBox2 Daten ein, die werden beim klicken auf CommandButton in Tabelle3 reingeschrieben.
Nun möchte ich, wenn ich in TextBox1 etwas eingebe, was in der Tabelle3 ab Zelle A2 schon drin steht, dass sich TextBox2 automatisch ausfüllt. TextBox2 Einträge stehen in Tabelle3 ab Zeile B2.
https://www.herber.de/bbs/user/74033.xls
Vielleicht hilft ja die Beispielmappe als Übersicht.
Lieben Gruß
Amina
Anzeige
AW: Vergleich und in TextBox ausgeben
20.03.2011 17:02:43
Hajo_Zi
Hallo Amoina,
es ist wird einen Punkt klarer Textbox1 soll in in Spalte A gesucht werde ab Zeile 2 falls gefunden und jetzt kommt das neue soll Textbox2 automatisch gefüllt werden.
Im ersten Beitrag hätte ich das noch so gelesen falls Textbox1 in Tabelle vorhanden soll Textbox2 in Tabelle eingetragen werden. Jetzt soll mit einmal Textbox2 automatisch gefüllt werden. Nur wie?
Gruß Hajo
AW: Vergleich und in TextBox ausgeben
20.03.2011 17:07:02
amintire
Hallo Hajo,
kann sein das ich mich einwenig unverständlich ausdrücke.
Also ich gebe die Daten in TextBox1 und TextBox2 ein, klicke auf ok und die werden dann in die Tabelle eingetragen.
Wenn ich, wie jetzt in dem Beispiel, in TextBox1 z.B. Test eingebe, soll ähnlich wie eine SVerweis Formel ablaufen die daten in Tabelle3 ab A2 suchen und die Zelle daneben in textBox2 ausgeben.
Wenn es Test nicht in Tabelle3 gibt, dann soll TextBox2 leer bleiben.
Gruß Amina
Anzeige
AW: Vergleich und in TextBox ausgeben
20.03.2011 17:18:09
Case
Hallo, ;-)
folgenden Code in die UserForm:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)
Dim varTMP As Variant
If KeyCode = 13 Then
With Tabelle3
varTMP = Application.Match(TextBox1.Text, .Range("A:A"), 0)
If Not IsError(varTMP) Then
TextBox2.Text = .Cells(varTMP, 2).Value
Else
TextBox2.Text = ""
End If
End With
End If
End Sub
Dann Text in "TextBox1" eingeben und Return drücken.
Servus
Case

AW: gut aber...
20.03.2011 17:26:06
amintire
Hallo Case,
der Code ist schon mal gut, aber geht es auch ohne der "Return" taste ?
Lieben Gruß
Amina
Anzeige
AW: noch etwas ;)
20.03.2011 17:36:31
amintire
Hallo Case.
also habe des mal getestet, funktioniert mit der Return Taste, benötige es aber ohne Return Taste.
Also wenn ich Test reinschreibe oder durch eine Auswahl der Text in TextBox1 erscheint, soll TextBox2 gefüllt werden (wenn vorhanden).
Mit deinem Code funktioniert es nur mit der Return Taste.
Was aber noch zu bemängeln ist, wenn ich jetzt bei Dir,
Test eingebe, Return, erscheint in TextBox2 die Zelle daneben, ändere ich aber diese und klicke auf ok, dann schreibt er mir einen komplett neuen Eintrag in Tabelle3 anstatt den vorhandenen zu überschreiben.
Hoffe ist verständlich was ich meine.
Lieben Gruß
Amina
Anzeige
AW: gut aber...
20.03.2011 17:36:34
Case
Hallo, ;-)
z. B. über das Change-Ereignis:
Private Sub TextBox1_Change()
Dim varTMP As Variant
With Tabelle3
varTMP = Application.Match(TextBox1.Text, .Range("A:A"), 0)
If Not IsError(varTMP) Then
TextBox2.Text = .Cells(varTMP, 2).Value
Else
TextBox2.Text = ""
End If
End With
End Sub
Du kannst auch das Exit-Ereignis nehmen.
Servus
Case

AW: und wie ersetzen?
20.03.2011 17:47:20
amintire
Hallo Case ;)
das funktioniert schon mal, wie ersetze ich jetzt die Zellen anstatt eine neue darunter zu schreiben?
Lieben Gruß
Amina
Anzeige
Ersetzen geht so...
20.03.2011 17:51:02
Case
Hallo, ;-)
lege Dir noch einen CommandButton in der UserForm an und nimm dann folgenden Code:
Private Sub CommandButton2_Click()
If Trim(TextBox1.Text)  "" And Trim(TextBox2.Text)  "" Then
If Me.Tag  "" Then
With Tabelle3
.Cells(Me.Tag, 1).Value = TextBox1.Text
.Cells(Me.Tag, 2).Value = TextBox2.Text
End With
End If
End If
End Sub
Private Sub TextBox1_Change()
Dim varTMP As Variant
With Tabelle3
varTMP = Application.Match(TextBox1.Text, .Range("A:A"), 0)
If Not IsError(varTMP) Then
Me.Tag = varTMP
TextBox2.Text = .Cells(varTMP, 2).Value
Else
TextBox2.Text = ""
End If
End With
End Sub
Servus
Case

Anzeige
AW: verbinden?
20.03.2011 17:59:29
amintire
Hallo Case,
kann man CommandButton 1 und 2 nicht verschmelzen?
Aber funktioniert auch mit dem CommandButton2 ;)
Gruß Amina
Verbinden...
20.03.2011 18:24:15
Case
Hallo, ;-)
das würde dann so der Spur nach gehen:
Option Explicit
Private Sub TextBox1_Change()
Dim varTMP As Variant
With Tabelle3
varTMP = Application.Match(TextBox1.Text, .Range("A:A"), 0)
If Not IsError(varTMP) Then
Me.Tag = varTMP
TextBox2.Text = .Cells(varTMP, 2).Value
Else
Me.Tag = ""
TextBox2.Text = ""
End If
End With
End Sub
Private Sub CommandButton1_Click()
Dim lngRow As Long
If Trim(TextBox1.Text)  "" And Trim(TextBox2.Text)  "" Then
If Me.Tag  "" Then
With Tabelle3
.Cells(Me.Tag, 1).Value = TextBox1.Text
.Cells(Me.Tag, 2).Value = TextBox2.Text
End With
Else
With Tabelle3
lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(lngRow, 1) = TextBox1.Text
.Cells(lngRow, 2) = TextBox2.Text
End With
End If
TextBox1.Text = ""
TextBox2.Text = ""
Else
MsgBox ("Eingabe unvollständig!")
TextBox1.SetFocus
End If
End Sub
Servus
Case

Anzeige
AW: DANKE Case
20.03.2011 19:03:44
amintire
Danke für deine Zeit, hast mir sehr geholfen ;)
Lieben Gruß
Amina
hier eine weitere Variante ...
20.03.2011 19:06:44
Matthias
Hallo
Ich habe mal das Beispiel von Case genommen und eine modifizierte Version gebastelt
Hier kannst Du über 2 Optionbutton wählen, ob Du neu hinten anfügen oder ersetzen willst.
Hab mal das UForm modal gestartet, um das Bild zu erstellen.
Userbild
In dieser Version brauchst Du also nur ein Button.
Hier zum testen:
https://www.herber.de/bbs/user/74035.xls
Nebenbei erwähnt:
Ich persönlich würde aber eher mit einer Combobox, statt mit der Textbox1 arbeiten
Gruß Matthias
Anzeige
AW: hier eine weitere Variante ...
20.03.2011 19:24:36
amintire
Danke Matthias, auch keine schlechte Idee.
Vielen Dank für eure Hilfe.
Lieben Gruß
Amina

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige