Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1416to1420
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

UserForm Kombinationsfeld Inhalte erweitern

UserForm Kombinationsfeld Inhalte erweitern
23.03.2015 16:46:15
puma_888
Hallo zusammen,
ich habe eine Tabelle, deren Daten B8:B98 in zwei Kombinationsfeld auf einer UserForm ausgewählt werden können. Dies geschieht durch folgenden Code:
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "B8:B98"
ComboBox2.RowSource = "B8:B98"
End Sub

Durch diesen Code kann ich die einzelnen Werte aus der Tabelle in der Combobox auswählen. Nun meine Frage: Wie müsste ich den Code erweitern, damit z.B. ein neuer Eintrag in die Zelle B99 automatisch in die Combobox mit aufgenommen wird, ohne das ich den Bereich im Code erweitern muss. Vielen Dank im voraus.
Gruß
Markus

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

Betreff
Datum
Anwender
Anzeige
AW: UserForm Kombinationsfeld Inhalte erweitern
23.03.2015 17:11:45
Klexy
So vielleicht?
Mit Comboboxen kenn ich mich nicht aus.
Dim xListe As Range
Set xListe = Range(Range("B8"), Range("B8").End(xlDown))
ComboBox1.RowSource = xListe

AW: UserForm Kombinationsfeld Inhalte erweitern
23.03.2015 17:13:34
Nepumuk
Hallo,
teste mal:
Private Sub UserForm_Initialize()
    Dim strRowSource As String
    With Worksheets("Tabelle1") 'Anpassen !!!!!!!!!!!!!!!!!
        strRowSource = "B8:B" & CStr(.Cells(.Rows.Count, 2).End(xlUp).Row)
    End With
    ComboBox1.RowSource = strRowSource
    ComboBox2.RowSource = strRowSource
End Sub

Gruß
Nepumuk

Anzeige
AW: UserForm Kombinationsfeld Inhalte erweitern
24.03.2015 09:15:06
puma_888
Hi Nepumuk,
wenn ich deinen Code eingeben kommt bei mir eine Fehlermeldung: "Fehler beim Kompilieren: Variable nicht definiert" dabei zeigt er mir den Teil (x1Up) an. Wie müsste ich x1UP definieren und was bedeutet dieser Teil überhaupt? Ist mir nicht ganz schlüssig.
Gruß
Markus

AW: UserForm Kombinationsfeld Inhalte erweitern
24.03.2015 09:24:57
Klexy
Das ist nicht x1Up, sondern xlUp
nicht Eins, sondern L

AW: UserForm Kombinationsfeld Inhalte erweitern
24.03.2015 09:40:01
puma_888
Hi Klexy,
danke für den Hinweis, der Code funktioniert jetzt. Das blöde ist nur wenn ich nun über das Kombifeld Daten auswählen möchte, nehmen die bereits vorhanden Daten beim scrollen relativ wenig platz ein und die Zellen die noch nicht befüllt sind nehmen viel zu viel Platz ein, sodass der Benutzer beim Scrollen schnell die 98 Daten überflogen hat und nur noch ein weißes Feld beim Scrollen sieht. Kann man den Code so verändern dass mir im Kombifeld bei der Auswahl nur die 98 Datensätze zur Auswahl stehen ohne die restlichen leeren Zellen mit anzuzeigen aber es soll dennoch möglich sein neue Datensätze aus der Tabelle automatisch mit aufzunehmen.
Gruß
Markus

Anzeige
AW: UserForm Kombinationsfeld Inhalte erweitern
24.03.2015 10:17:11
Nepumuk
Hallo,
wie kommen die Daten in die Spalte?
Gruß
Nepumuk

AW: UserForm Kombinationsfeld Inhalte erweitern
24.03.2015 10:22:27
puma_888
Hi,
die Daten werden manuell in die Spalte eingetragen.
Gruß
Markus

AW: UserForm Kombinationsfeld Inhalte erweitern
24.03.2015 10:40:42
Nepumuk
Hallo,
dann sind die Zeilen unterhalb von Zeile 98 irgendwie nicht leer. Markiere die mal bis zum Ende der Tabelle und drück auf entfernen.
Gruß
Nepumuk

AW: UserForm Kombinationsfeld Inhalte erweitern
24.03.2015 11:32:47
puma_888
Hi, also wenn ich jetzt deinen Code eingebe, dann kommt gleich von Beginn an eine Fehlermeldung. Anbei ist meine Tabelle die Datensätze in Spalte B sind auf B8:B16 gekürzt. Deinen Code hab ich momentan als Kommentar drin und ich habe dafür meinen bisherigen Code aktive. Du kannst ja mal kurz meinen Code als Kommentar setzen und deinen aktivieren, dann siehst du mal die Fehlermeldung die immer kommt. Vllt. findest du eine Lösung, ich komm gerade einfach nicht weiter. Über das Befehlsfeld "Produkte vergleichen" kann die Userform1 aufgerufen werden.
https://www.herber.de/bbs/user/96598.xls
Gruß
Markus

Anzeige
AW: Es funktioniert!
24.03.2015 12:44:18
puma_888
Es funktioniert :)! Hab noch ein bisschen rumgebastelt, danke für eure Hilfe.
Gruß Markus

AW: UserForm Kombinationsfeld Inhalte erweitern
24.03.2015 12:44:43
Nepumuk
Hallo,
funktioniert einwandfrei nach einer kleinen Änderung:
Private Sub UserForm_Initialize()
    Dim strRowSource As String
    With Worksheets("Kettenzüge")
        strRowSource = "B8:B" & CStr(.Cells(.Rows.Count, 2).End(xlUp).Row)
    End With
    ComboBox1.RowSource = strRowSource
    ComboBox2.RowSource = strRowSource
End Sub

Du hast aber noch einen Verweis auf das RefEdit-Control in der Mappe. Der könnte den Fehler auslösen wenn dieses Control auf deinem Rechner nicht registriert ist. Geh mal im VBA-Editor über die Menüleiste - Extras - Verweise in die Liste und nimm das Häkchen bei "Nicht vorhanden" bzw. dem RefEdit-Control raus.
Gruß
Nepumuk

Anzeige
AW: Noch eine weitere Frage
24.03.2015 16:01:30
puma_888
Hi,
es funktioniert alles soweit mit deinem Code, vielen Dank :).
Ich hätte noch eine weitere Frage zu meinem Programm. Wenn ich in meine Tabelle einen neuen Datensatz aufnehmen möchte, also in eine neue Zeile ein Produkt mit den dazugehörigen Kriterien eintragen möchte. Um dies umzusetzen verwende ich ebenfalls eine UserForm2.
Ich habe in meine Tabelle einen weiteren Befehlsbutton eingefügt "Produkt hinzufügen". Durch anklicken dieses Buttons wird die Userform2 geöffnet. Hier kann man alle wichtigen Kriterien zum Produkt in die integrierten TextBoxen eingeben. Anschließend sollen die eingefügten Daten über den Button "Daten hinzufügen" in die Excel Tabelle in die erste frei Zeile unter den bereits vorhanden Daten übernommen werden.
Tabelle:
https://www.herber.de/bbs/user/96610.xls
Um die erste frei Zeile zu ermitteln hab ich im I-Net diesen Code gefunden:
zeile = Cells(Rows.Count, 1).End(xlUp).Row + 1
Anschließend wollte ich jeder Zelle die entsprechenden Daten zuweisen:
Private Sub CommandButton1_Click()
Dim zeile As Integer
zeile = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(zeile, 1) = UserForm2.TextBox1.Text
Cells(zeile, 1) = UserForm2.TextBox2.Text
Cells(zeile, 1) = UserForm2.TextBox3.Text
Cells(zeile, 1) = UserForm2.TextBox4.Text
Cells(zeile, 1) = UserForm2.TextBox5.Text
Cells(zeile, 1) = UserForm2.TextBox6.Text
Cells(zeile, 1) = UserForm2.TextBox7.Text
Cells(zeile, 1) = UserForm2.TextBox8.Text
Cells(zeile, 1) = UserForm2.TextBox9.Text
Cells(zeile, 1) = UserForm2.TextBox10.Text
Cells(zeile, 1) = UserForm2.TextBox11.Text
Cells(zeile, 1) = UserForm2.TextBox12.Text
Cells(zeile, 1) = UserForm2.TextBox13.Text
Cells(zeile, 1) = UserForm2.TextBox14.Text
Cells(zeile, 1) = UserForm2.TextBox15.Text
Cells(zeile, 1) = UserForm2.TextBox16.Text
Cells(zeile, 1) = UserForm2.TextBox17.Text
Cells(zeile, 1) = UserForm2.TextBox18.Text
Cells(zeile, 1) = UserForm2.TextBox19.Text
Cells(zeile, 1) = UserForm2.TextBox20.Text
Cells(zeile, 1) = UserForm2.TextBox21.Text
Cells(zeile, 1) = UserForm2.TextBox22.Text
Cells(zeile, 1) = UserForm2.TextBox23.Text
Cells(zeile, 1) = UserForm2.TextBox24.Text
Cells(zeile, 1) = UserForm2.TextBox25.Text
Cells(zeile, 1) = UserForm2.TextBox26.Text
End Sub
Aber irgendwie passiert nichts. Hast du vllt. eine Idee was ich im Code verändern müsste? Danke, für deine Mühe :).
Gruß
Markus

Anzeige
AW: Noch eine weitere Frage
24.03.2015 16:40:42
Nepumuk
Hallo,
teste mal damit:
Private Sub CommandButton1_Click()
    Dim lngRow As Long, lngIndex As Long
    With Worksheets("Kettenzüge")
        lngRow = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
        For lngIndex = 1 To 26
            .Cells(lngRow, lngIndex + 1).Value = _
                Controls("TextBox" & CStr(lngIndex)).Text
        Next
    End With
End Sub

Gruß
Nepumuk

Anzeige
AW: Noch eine weitere Frage
25.03.2015 09:19:12
puma_888
Hi,
vielen vielen Dank, funktioniert Einwandfrei :).
Ich überlege die ganze Zeit schon, wie ich in die Excel Tabelle ein neues Kriterium aufnehmen kann und dieses Kriterium dann auch automatisch in die beiden UserFormen übernommen werden, um die Produkte zu vergleichen oder ein neues Produkt hinzuzufügen. Aber das funktioniert vermutlich nicht ohne den Code anzupassen oder? Gibt es eine andere benutzerfreundliche Möglichkeit um die Produkte der Tabelle zu vergleichen oder hinzuzufügen, sodass auch die Aufnahme eines neuen Kriterium automatisch mit aufgenommen werden kann? Vllt. hast du ja eine Idee. Ich hab halt gedacht über die Userformen ist es für den Benutzer relativ einfach und übersichtlich die Funktionen durchzuführen aber vllt. gibt es ja noch eine bessere Möglichkeit, von der ich bis jetzt noch nichts gehört habe :).
Gruß
Markus

Anzeige
AW: Noch eine weitere Frage
25.03.2015 15:00:22
Nepumuk
Hallo,
du solltest erst mal VBA besser beherrschen, dann können wir darüber reden. Denn es hilft dir ja nichts wenn du den Code dann nicht verstehst. Am einfachsten lernst du wenn du hier und in anderen Excelforen versuchst Fragen zu beantworten und die Antworten der anderen studierst.
Gruß
Nepumuk

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige