UserForm Daten suchen/laden

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm TextBox
Bild

Betrifft: UserForm Daten suchen/laden
von: Manu
Geschrieben am: 03.08.2015 06:49:17

Hallo,
ich arbeite an einer Userform mit welcher man Daten aus einer bestehenden Excel Tabelle laden und auch ändern kann. Die Änderungen können auch gespeichert und sofort übernommen werden. Den Code dafür habe ich, es läuft auch super. Das einzige Problem ist, Do While Cells(i + 1, 1).Value <> "x"
genau diese Zeile.
Das bedeutet, dass diese Suchfunktion nur dann funktioniert wenn ein X in das Tabellenblatt geschrieben wird. Wenn ich nur "" schreibe funktioniert es nur dann wenn keine leeren Zellen vorhanden sind. Wie könnte ich das Problem lösen? (evtl lässt sich das Do While ersetzen, durch for to oder if ..... )
https://www.sendspace.com/file/mb9udv

Sub getData()
Dim id As String
Dim i As Integer
Dim j As Integer
Dim flag As Boolean
If IsNumeric(UserForm1.TextBox4.Value) Then
flag = False
i = 1
id = UserForm1.TextBox4.Value
Do While Cells(i + 1, 1).Value <> "x"
If Cells(i + 1, 4).Value = id Then
flag = True
For j = 2 To 6
UserForm1.Controls("TextBox1").Value = Cells(i + 1, 1).Value
UserForm1.Controls("TextBox2").Value = Cells(i + 1, 2).Value
Next j
End If
i = i + 1
Loop
If flag = False Then
For j = 2 To 6
UserForm1.Controls("TextBox1").Value = ""
UserForm1.Controls("TextBox2").Value = ""
Next j
End If
If flag = False Then
End If
Else
ClearForm
End If
End Sub

Sub EditAdd()
Dim id As String
Dim i As Integer
Dim j As Integer
Dim flag As Boolean
Dim emptyRow As Long
If UserForm1.TextBox4.Value <> "" Then
flag = False
i = 1
id = UserForm1.TextBox4.Value
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
Do While Cells(i + 1, 1).Value <> "x"
If Cells(i + 1, 4).Value = id Then
flag = True
For j = 2 To 20
Cells(i + 1, 1).Value = UserForm1.Controls("TextBox1").Value
Cells(i + 1, 2).Value = UserForm1.Controls("TextBox2").Value
Next j
End If
i = i + 1
Loop
If flag = False Then
For j = 1 To 20
Cells(emptyRow, 1).Value = UserForm1.Controls("TextBox1").Value
Cells(emptyRow, 1).Value = UserForm1.Controls("TextBox2").Value
Next j
End If
End If
End Sub

Bild

Betrifft: AW: UserForm Daten suchen/laden
von: Sepp
Geschrieben am: 03.08.2015 10:40:37
Hallo Manu,
1. Einträge sucht man am besten mit .Find()
2. Die Datei hat nichts mit deinem Code zu tun!
3. Deine For-Schleifen sind Nonsens.
4.Lade Deine Beispieldatei (mit dem richtigen Code) hier hoch, nicht jeder vertraut den z. T. dubiosen filehostern.

Gruß Sepp


Bild

Betrifft: AW: UserForm Daten suchen/laden
von: Rudi Maintaire
Geschrieben am: 03.08.2015 10:41:50
Hallo,
was soll das denn?

For j = 2 To 6
  UserForm1.Controls("TextBox1").Value = Cells(i + 1, 1).Value
  UserForm1.Controls("TextBox2").Value = Cells(i + 1, 2).Value
Next j

5x hintereinander Werte in 2 TextBoxen????
Gruß
Rudi

Bild

Betrifft: AW: UserForm Daten suchen/laden
von: Manu
Geschrieben am: 03.08.2015 11:18:05
https://www.herber.de/bbs/user/99275.xlsm

Bild

Betrifft: AW: UserForm Daten suchen/laden
von: Manu
Geschrieben am: 03.08.2015 11:25:24
Danke dass du mir helfen willst Sepp. Ich habs leider noch nicht allein lösen können. In der beigefügten Datei habe ich bewusst einiges leer gelassen um das ganze zu testen.
1. Das eine ist, dass Combobox2 (City) nicht die Werte von dem entsprechenden Sheet (Cities) bezieht, sondern immer von dem gerade geöffneten. Deswegen ist der Button in sheet1. So soll es funktionieren später.
2. Das andere ist die Sache mit dem X in der Do while codezeile, es kann schon mal vorkommen, dass eine Zelle leer bleibt. Nach meinem Code müsste man irgendwo in der Tabelle ein X reinschreiben,, aber das müsste bestimmt auch anders gehen.
Vielen Dank für die Hilfe, datei ist oben.
Gruß

Bild

Betrifft: AW: UserForm Daten suchen/laden
von: Sepp
Geschrieben am: 03.08.2015 11:34:56
Hallo Manu,
ich würde dir schon helfen, allerdings ist es schwer nachzuvollziehen, was du eigentlich erreichen willst.
Ich kann nur raten, welche Einträge wo im UF angezeigt werden sollen.
Warum hat deine Datenliste keine Überschriften? Dann wäre die Zuordnung einfach.
Für mich ergeben die Einträge in den Zeilen 2 bis 4 z. B. keinen Sinn, für dich ist es einfach, weil du weißt, was du willst, wir können nur Raten.

Gruß Sepp


Bild

Betrifft: AW: UserForm Daten suchen/laden
von: Manu
Geschrieben am: 03.08.2015 12:44:40
Ok gerne. Es ist so: In Textbox9 (Spalte I) werden Werte eingetragen die in Spalte I stehen. Nachdem ein Wert z B von I5 eingetragen wurde, werden alle Werte der Zeile 5 in die anderen Textboxen eingetragen. Analog Spalte D. Das sind die Suchkriterien. Alles was in einer Zeile steht gehört zusammen. Erreicht habe ich dies mit getData, geändert werden kann Text mit Sub EditAdd.
Bei den Comboboxen sieht es anders aus. Die eine mit Country funktioniert wie gedacht, die zweite City bleibt leer, wenn aktuell Sheet1 offen ist. Diese Combobox müsste jetzt Werte vom Sheet mit Namen Cities beziehen, oder eben einfach von einem ganz bestimmten. Man könnte auch ein neues erstellen.

Bild

Betrifft: AW: UserForm Daten suchen/laden
von: Manu
Geschrieben am: 03.08.2015 12:49:42
Ok die Textboxen sollen sich füllen wenn der Button in Sheet Cities ist. Einfach rüberkopieren. Das hab ich jetzt vergessen.

Bild

Betrifft: AW: UserForm Daten suchen/laden
von: Manu
Geschrieben am: 03.08.2015 16:40:07
Ich hab das ganze nochmal überarbeitet, jetzt kennt man sich aus. Also, man wählt 1 Land aus und in der zweiten Combobox wird die dazugehörige Stadt angezeigt. Die Combobox Country funktioniert, aber bei Combobox2 City gibt es ein Problem. Es bezieht sich nicht auf das Sheet mit den Städten.
Und das zweite die Do While Zeile mit dem "X". Ich will das so schreiben dass alles durchsucht wird, die S Werte, also S11, S26 usw. sollen in die Textboxen geschrieben werden, Spalte I ist Suchkriterium, angezeigt werden soll alles was in der gleichen Zeile steht wie der eingetippte Wert.
Analog Spalte D, das ist nur ein weiteres Suchkriterium.
Ich wäre für Hilfe dankbar.

Bild

Betrifft: AW: UserForm Daten suchen/laden
von: Manu
Geschrieben am: 03.08.2015 16:43:29
https://www.herber.de/bbs/user/99291.xlsm

Bild

Betrifft: AW: UserForm Daten suchen/laden
von: Manu
Geschrieben am: 04.08.2015 09:28:47
Weiss jemand wo der Fehler liegt? Entschuldigung wegen dem durcheinander, jetzt ist die Datei besser gestaltet. Die Zahlen und Namen des Sheets Cites einfach mit reinnehmen, soll alles in der Combobox City angezeigt werden. Die ganze Reihe, wie bei Combobox Country.
Gruß

 Bild

Beiträge aus den Excel-Beispielen zum Thema "UserForm Daten suchen/laden"