Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Multi Userform mit Daten aus Tabelle füllen
#1
Und gleich dass nächste Problem.
Also, ich habe eine Tabelle mit Daten in den Spalten A-Z . Zeilentiefe 2-200.
Jede Zeile hat eine Variable Erkennungsnummer.

Nun habe ich eine Userform erstellt, die mit einer Combobox und 16 TextBoxen bestückt ist. In der Combobox Kann ich die Erkennungsnummer aus der Tabelle auswählen, was schon funktioniert.

Meine Idee, wenn ich die Erkennungsnummer aus der Combobox auswähle, sollen in den leeren TextBoxen die Daten aus der dazugehörigen zeile automatisch eingefügt werden.
Denke ich nun wieder zu kompliziert ? ist es garnicht möglich ? kann mir jemand helfen ? hat jemand eine Idee ?
Habe hier und andersweitig 12 Stunden nach Möglichkeiten gesucht, nichts gefunden. :22:
Antworten Top
#2
Hallo,

wenn die Combobox mit allen Werten einer Spalte befüllt ist, dann kann  man mit dem ListIndex arbeiten.

Der erste Index der Combobox ist 0.
Angenommen Du hast in der Combo Daten aus A2:A bis Ende.
Du wählst den ersten Eintrag aus, das wäre der Eintrag aus Zelle A2.

Jetzt möchtest Du den Wert aus Zelle B2, neben der A2, in die erste Textbox einlesen.

Ohne die Comboauswahl zu betrachten, würde das Einlesen so lauten:

TextBox1 = Range("B2").Value ; Range("B2") kann man in der Cells Schreibweise so schreiben Cells(2, 2)
In der Klammer die Werte bedeuten Zeilenwert und Spaltenwert also: Cells(Zeile, Spalte)

Diese Schreibweise nutzt Du dann zum einlesen in die Textbox.
Du hast den ersten Eintrag aus der Combo, welches den Listindex = 0 hat, gleichbedeutend Wert aus Zeile 2 der Tabelle.
Dann kann ich also schreiben:

Textbox1 = Cells(ComboBox1.Listindex +2, 2).Value
Die anderen Textboxen füllst Du dann auf die gleiche Weise, Du erhöhst die Spaltenzahl immer um eins.

Das wäre eine Variante, wie so etwas ablaufen kann.
Man kann statt jede Textbox einzeln in einer Codezeile anzusprechen, das in einer Schleife abhandeln.
Oft haben die Combos nicht alle Werte eines Bereichs, sondern sind nach Bedingung gefüllt, dann kann man mit der Find Methode, mit Filtern mit
Tabellenfunktionen, die Zeile suchen..

Und, und, und....
Also, wenn Du weitergehende Fragen hast, dann ist es immer sinnvoll das am Lebenden Objekt zu erörtern, hieße eine Beispielmappe einstellen.
Gruß Atilla
Antworten Top
#3
Das klingt gut..... habe diese Version versucht umzusetzen ..... ohne erfolg. beim auswählen der Kennung, passiert .... nichts. Muss ich in der Combobox noch einen eintrag hinzufügen ? Wie müsste der Code in der TextBox aussehen ? ich glaube ich übersehe mal wieder etwas :20:
Antworten Top
#4
Hallo,



Zitat:ich glaube ich übersehe mal wieder etwas

das denke ich auch, vor allem meinen letzten Satz in meiner Antwort.
Gruß Atilla
Antworten Top
#5
Code:
Private Sub Userform_Initialize()
    Combobox1.list=activesheet.cells(1).currentregion.value
End Sub

Private Sub Combobox1_change()
   if combobox1.listindex>-1 then
    for j=1 to 12
      Me("TextBox" & j).Text=combobox1.list(combobox1.listindex,j)
    next
   end if
End Sub

http://www.snb-vba.eu/VBA_Userform_in_database_en.html
Antworten Top
#6
Entschuldige, bin hier auf der Arbeit im stress .... habe jetzt mal kurz eine Testtabelle angelegt, sowie eine 1zu1 Userform. Vielleicht kannst du mir da behilflich sein


Angehängte Dateien
.xlsm   Mappe1.xlsm (Größe: 14,84 KB / Downloads: 26)
Antworten Top
#7
Hallo Hajo,

ich stell Dir mal einen Code ein, der Beipielhaft zwei Textboxen nach Auswahl aus der Combox8 befüllt, aber damit wirst Du nicht wirklich weiterkommen.
Du wirst sicher noch einige Fragen haben. Du solltest Dich auch informieren, wie eine Combobox befüllt wird.

Snb hat Dir eine Variante gezeigt.

Folgenden Code hinter die Userform einfügen:


Code:
Private Sub ComboBox8_Change()
 If ComboBox8.ListIndex > -1 Then
   TextBox12 = Cells(ComboBox8.ListIndex + 2, 2).Value
   TextBox9 = Cells(ComboBox8.ListIndex + 2, 3).Value
 End If
End Sub
Für weitere Textboxen analog fortführen.
Gruß Atilla
Antworten Top
#8
Blush  hast natürlich recht .... fragen über fragen :19:
bisher hatte ich die Daten für die Combobox über RowSource gezogen ...... dass wird wohl nicht mehr funktionieren. Werde mich nu erstmal um die Befüllung der Combobox kümmern .....
Den Code von snb kann ich wohl als Grundlage nehmen.
Antworten Top
#9
:22: ich checke es nicht ... bekomme den Code von snb einfach nicht auf meine Bedürfnisse umgearbeitet. Andere Codes wollen auch nicht ....... Das ist ein bischen zu tricky für mich. Werde mir wohl was anderes einfallen lassen.
Antworten Top
#10
(10.02.2016, 00:27)HajoHH schrieb: Und gleich dass nächste Problem.
Also, ich habe eine Tabelle mit Daten in den Spalten A-Z . Zeilentiefe 2-200.
Jede Zeile hat eine Variable Erkennungsnummer.

Nun habe ich eine Userform erstellt, die mit einer Combobox und 16 TextBoxen bestückt ist. In der Combobox Kann ich die Erkennungsnummer aus der Tabelle auswählen, was schon funktioniert.

Setze in das Userform combobox1, und textboxen Textbox1....Textbox16
Setze die Code in das Userform (nichts ändren !!) und..... du bist fertig.

Code:
Private Sub Userform_Initialize()
    Combobox1.list=activesheet.cells(1).currentregion.value
End Sub

Private Sub Combobox1_change()
   if combobox1.listindex>-1 then
    for j=1 to 16
      Me("TextBox" & j).Text=combobox1.list(combobox1.listindex,j)
    next
   end if
End Sub
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste