Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1368to1372
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
Inhaltsverzeichnis

Von Tabelle in ComboBox übernehmen

Von Tabelle in ComboBox übernehmen
22.07.2014 15:01:51
Thorsten
Grüßt Euch.
Ich habe ein Problem mit der Übernahme von Daten in eine ComboBox bzw. mehrere Comboboxen.
Folgender Code soll nach der Suche (Eingabe in eine Textbox1) aus der Tabelle "Stammdaten" in insgesamt 32 Textboxen einlesen:
Private Sub UserForm_Initialize()
Dim i As Integer, rng As Range
With Worksheets("Stammdaten")
Set rng = .Columns(1).Find(what:=Datensatz_ändern.TextBox1, lookat:=xlWhole)
For i = 1 To 11
Me.Controls("TextBox" & CStr(i)) = .Cells(rng.Row, i)
Next i
End With
TextBox1.Enabled = False
End Sub
Problem ist nur das nach der Textbox 11 eine Combobox kommt. Hier liest er nichts ein. Was muss ich tun, damit dies klappt?

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Von Tabelle in ComboBox übernehmen
22.07.2014 15:19:16
Beverly
Hi Thorsten,
also wenn ich dich richtig verstanden habe - einfach eine Zeile ergänzen, in der du die ComboBox füllst:
Private Sub UserForm_Initialize()
Dim i As Integer, rng As Range
With Worksheets("Stammdaten")
Set rng = .Columns(1).Find(what:=Datensatz_ändern.TextBox1, lookat:=xlWhole)
For i = 1 To 11
Me.Controls("TextBox" & CStr(i)) = .Cells(rng.Row, i)
Next i
ComboBox1.RowSource = Range("A1:A20").Address  '


AW: Von Tabelle in ComboBox übernehmen
22.07.2014 15:55:15
Thorsten
Ne, ich hatte auch nicht so dolle erklärt.
Also ich habe eine Suchmaske mit folgendem Code:
Private Sub CommandButton1_Click()
Dim rng As Range
Set rng = Sheets("Stammdaten").Columns(1).Find(what:=Datensatz_ändern.TextBox1, lookat:= _
xlWhole)
If Not rng Is Nothing Then
Änderform.Show
Else
MsgBox ("Schule nicht gefunden")
End If
End Sub
Damit suche ich eine Nummer in Spalte A. Klicke ich jetzt auf Suchen soll er mit in einer Userform die dazugehörige angegebene Textboxen eintragen. Das klappt auch bis zur Textbox 11.
Wie ich dann oben geschrieben habe, kommt dann eine ComboBox. Diese ComboBox beinhaltet nur 2 Werte (Herr oder Frau). Jetzt wurde ja im Vorfeld in die Tabelle mit einer Maske diese Daten eingelesen.
Diese Userform um die es sich jetzt handelt ist eine Änderform, in der ich die Werte aus der Tabelle dort auslese, ändern kann und wieder in die Tabelle zurück gebe.
Ich würde ja gerne die Datei hochladen, aber es geht nur zip-Dateien. Vertraut man mir dann, wenn die Zip hochgeladen wird?

Anzeige
AW: Von Tabelle in ComboBox übernehmen
22.07.2014 16:13:15
Beverly
Deine Aussage
Wie ich dann oben geschrieben habe, kommt dann eine ComboBox.
sagt überhaupt nichts aus, weil vollkommen unverständlich - was verstehst du unter "kommt dann eine ComboBox"? Hat die ComboBox die fortlaufende Nummer 12 und die TextBoxen gehen erst mit Nummer 13 weiter und tatsächlich sollen alle TextBoxen 1 - 11 und 13 bis 34 gefüllt werden? Eine klare Beschreibung wäre schon erst einmal sehr hilfreich.
Wenn du eine Zip-Datei verwenden musst weil die Mappe zu groß ist, dann erstelle eine Kopie deiner Mappe, in der nur die für das Problemn relevanten Inhalte enthalten sind - dann soltes du diese kopie auch so hochladen können.


Anzeige
AW: Von Tabelle in ComboBox übernehmen
23.07.2014 06:55:20
Thorsten
Guten Morgen.
Genau wie Du gesagt hast. Die Combobox Nr1 ist quasi Nr 12 in der Reihenfolge und es geht mit Textbox 13 weiter.
Hier aber mal die Datei: (kein Passwort)
https://www.herber.de/bbs/user/91652.xls
Es handelt sich um die Userform "Änderform".
Textboxen 1-11
Combobox 1
Textboxen 13-14
Combobox 2
Textboxen 16-17
Combobox 3
Textboxen 19-22
Combobox 4
Textboxen 24-27
Combobox 5
Textboxen 29-32
Das ist die Reihenfolge.

AW: Von Tabelle in ComboBox übernehmen
23.07.2014 08:49:21
Beverly
Hi,
verwende eine Select Case-Verzweigung:
        For i = 1 To 32
Select Case i
Case 1 To 11, 13 To 14, 16 To 17, 19 To 22, 24 To 27, 29 To 32
Me.Controls("TextBox" & CStr(i)) = .Cells(rng.Row, i)
End Select
Next i


Anzeige
AW: Von Tabelle in ComboBox übernehmen
23.07.2014 13:36:44
Thorsten
Danke. Mit den Textboxen klappt es jetzt, aber mit den Comboboxen wirft er mit einen Fehler aus.
Ich bin leider nicht so fit, um es selbst zu lösen. Wie würde der Code aussehen?
Hier ist mein Code:
Private Sub UserForm_Initialize()
Dim i As Integer, rng As Range
With Worksheets("Stammdaten")
Set rng = .Columns(1).Find(what:=Datensatz_ändern.TextBox1, lookat:=xlWhole)
For i = 1 To 32
Select Case i
Case 1 To 11, 13 To 14, 16 To 17, 19 To 22, 24 To 27, 29 To 32
Me.Controls("TextBox" & CStr(i)) = .Cells(rng.Row, i)
Case 12, 15, 18, 23, 28
End Select
Next i
Set rng = .Columns(1).Find(what:=Datensatz_ändern.TextBox1, lookat:=xlWhole)
For i = 1 To 32
Select Case i
Case 12, 15, 18, 23, 28
Me.Controls("Combobox" & CStr(i)) = .Cells(rng.Row, i)
End Select
Next i
End With
TextBox1.Enabled = False
End Sub

Anzeige
AW: Von Tabelle in ComboBox übernehmen
23.07.2014 14:53:58
Thorsten
Keiner eine Idee?

AW: Von Tabelle in ComboBox übernehmen
23.07.2014 15:35:53
Beverly
Hi,
für die ComboBoxen hattest du es doch bereits anders zur Zufriedenheit gelöst - weshalb also den Code jetzt ändern?


AW: Von Tabelle in ComboBox übernehmen
24.07.2014 06:48:51
Thorsten
Ne, mit den Comboboxen ging es von vornherein nicht.
Die wären wie gesagt noch das Prob, gibt es da ne Lösung?

AW: Von Tabelle in ComboBox übernehmen
24.07.2014 10:06:19
Thorsten
So nach etwas Kampf und Krampf habe ich es geschafft.
Ich Depp hatte die Comboboxen falsch betitelt.
Hier mal der fertige Code:
Private Sub UserForm_Initialize()
Dim i As Integer, rng As Range
With Worksheets("Stammdaten")
Set rng = .Columns(1).Find(what:=Datensatz_ändern.TextBox1, lookat:=xlWhole)
For i = 1 To 32
Select Case i
Case 1 To 11, 13 To 14, 16 To 17, 19 To 22, 24 To 27, 29 To 32
Me.Controls("TextBox" & CStr(i)) = .Cells(rng.Row, i)
End Select
Next i
Set rng = .Columns(1).Find(what:=Datensatz_ändern.TextBox1, lookat:=xlWhole)
For i = 1 To 32
Select Case i
Case 12, 15, 18, 23, 28
Me.Controls("Combobox" & CStr(i)) = .Cells(rng.Row, i)
End Select
Next i
End With
TextBox1.Enabled = False
End Sub
Danke Euch.

Anzeige
AW: Von Tabelle in ComboBox übernehmen
24.07.2014 10:14:04
Beverly
Hi,
den code kannst du noch zusammenfassen:
Private Sub UserForm_Initialize()
Dim i As Integer, rng As Range
With Worksheets("Stammdaten")
Set rng = .Columns(1).Find(what:=Datensatz_ändern.TextBox1, lookat:=xlWhole)
For i = 1 To 32
Select Case i
Case 1 To 11, 13 To 14, 16 To 17, 19 To 22, 24 To 27, 29 To 32
Me.Controls("TextBox" & CStr(i)) = .Cells(rng.Row, i)
Case 12, 15, 18, 23, 28
Me.Controls("Combobox" & CStr(i)) = .Cells(rng.Row, i)
End Select
Next i
End With
TextBox1.Enabled = False
End Sub


Anzeige
AW: Von Tabelle in ComboBox übernehmen
24.07.2014 10:14:24
Thorsten
Jetzt habe ich aber noch eine Frage.
Und zwar möchte ich selektieren in einer eigenen Userform.
Jetzt sind aber meine VBA Grenzen erreicht und teilweise überschritten.
Folgendes möchte ich in dieser Datei erreichen:
https://www.herber.de/bbs/user/91700.xls
Und zwar gibt es dort eine Tabelle "Teilnahme". Weiterhin gibt es eine Userform "Beschwerde". Diese Userform ist geschuldet aus einer vorhergehenden Datenbank. Diese möchte ich auch nutzen um zu selektieren.
Selektiert werden soll:
Combobox1: nach Schulform, Ort
Combobox2: Ort, Startzeitpunkt
Angezeigt werden soll z.B. welche Schulform in welchem Ort ist, aber auch welche Schulform welchen Startzeitpunkt hat. Somit würde dann in Combobox1 die Schulform ausgewählt werden und in Combobox2 der Ort.
Das andere Beispiel wäre welche Schulform ist in welchem Ort.
Also so eine Art Überschneidung. Combobox3 interessiert mich nicht mehr, war von dem Vorgänger.
Ich hoffe man kann mir hier weiterhelfen.

Anzeige
AW: Von Tabelle in ComboBox übernehmen
24.07.2014 14:39:02
Thorsten
Irgendjemand eine Idee?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige