Clever-Excel-Forum

Normale Version: .RowSource ansprechen eines Tabellenblatts
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe folgendes Problem:

In meinem Code wird das Tabellenblatt1 bei dem Befehl .RowSource angesprochen

Code:
With Me.ComboBox1 'Erstellt eine Drop Down Liste in der Combobox1

            .RowSource = "Tabelle1!A2:A" & lngZeileMax1
           .Style = fmStyleDropDownList
           .ListIndex = 0
           .ListRows = 20

       End With
Wie kann ich jetzt im Code das Tabellenblatt anpassen. Ich habe ein anderes Tabellenblatt (Tabelle7) mit dem Namen "Firmendaten". Ich möchte gerne, das anstatt Tabelle7 "Firmendaten" im Code steht. Ich hab schon alles mögliche mit Worksheets("Firmendaten").Range(...) probiert, aber es geht nicht.
Ich hoffe ihr könnt mir helfen.
Vielen Dank für eure Mühen.

Liebe Grüße Robbie1985
Hat keiner eine Antwort???

Ich stell meine Frage nochmal etwas anders. 

Ich habe in einer UserForm ("UserForm1") eine Combobox ("ComboBox1") erstellt. in dieser möchte ich gerne Daten aus dem Tabellenblatt7 ("Firmendaten") verknüpfen. Es soll ein DropDown Menü mit Firmennamen erzeugt werden.

Mir wurde schon mit dem oben genannten Code geholfen, welchen ich für eine andere Aufgabe nutze. Leider funktioniert der Code nicht bei meinem jetzigem Projekt, da ich nicht weiß wie ich auf das Tabellenblatt "Firmendaten" zugreifen kann.


Ich hoffe es gibt doch noch eine Lösung.

Vielen Dank
Hallo,
.RowSource = "Firmendaten!A2:A" & lngZeileMax1
Gruß Uwe
Vielen Dank für die Antwort.
Hallo Uwe,

das funktioniert genau so wie ich es mir vorgestellt habe, danke :)

Nun habe ich noch eine weitere Frage:

ich habe im Tabellenblatt "Firmendaten" noch eine dynamische Tabelle "tbl_invt" erstellt. Kann ich im VBA Code auch nur auf die Tabelle "tbl_invt" verweisen, oder kann ich nur auf das gesamte Tabellenblatt "Firmendaten" verweisen?

z.B. .RowSource = "Firmendaten!tbl_invt" & lngZeileMax1

Vielleicht kann man in der Fett markierten Zeile schon den Bereich der dynamischen Tabelle "tbl_invt" eingeben.

Viele Grüße Robbie

Anbei der Code


Code:
Private Sub UserForm_Initialize()
Dim lngZeileMax1 As Long 'Variable für die Ermittlung der Anzahl der beschriebenen Zellen in der Spalte A der Tabelle1 (Firmendaten)
Dim lngZeileMax4 As Long 'Variable für die Ermittlung der Anzahl der beschriebenen Zellen in der Spalte A der Tabelle4 (Bearbeiter)
Dim lngZeileMax7 As Long
Dim Bereich As Range 'Variable für die Ermittlung der laufenden Nummer
    [b]lngZeileMax1 = Worksheets("Firmendaten").UsedRange.Rows.Count 'ermittelt die Anzahl der beschriebenen Zellen in der Spalte A der Tabelle1 (Firmendaten)[/b]
    lngZeileMax4 = Worksheets("Bearbeiter").UsedRange.Rows.Count 'ermittelt die Anzahl der beschriebenen Zellen in der Spalte A der Tabelle4 (Bearbeiter)
    'lngZeileMax7 = Worksheets("Bearbeiter").UsedRange.Rows.Count
     
      UserForm6.TextBox45.Value = Worksheets("Auftrag").Range("AN3").Value
     
'      ComboBox1.List = Worksheets("Firmendaten").Range("A2:A").Value
       
        With Me.ComboBox1 'Erstellt eine Drop Down Liste in der Combobox1 (Auftragnehmer)
            .RowSource = "Firmendaten!A2:A" & lngZeileMax1
            .Style = fmStyleDropDownList
            .ListIndex = 0
            .ListRows = 20
        End With
        With Me.ComboBox2 'Erstellt eine Drop Down Liste in der Combobox2 (Bearbeiter)
             .RowSource = "Bearbeiter!A2:A" & lngZeileMax4
            .Style = fmStyleDropDownList
            .ListIndex = 0
            .ListRows = 7
    End With
   
    TextBox40.Enabled = False 'sperrt die Eingabe der Textbox durch den Benutzer
    TextBox41.Enabled = False 'sperrt die Eingabe der Textbox durch den Benutzer
    TextBox42.Enabled = False 'sperrt die Eingabe der Textbox durch den Benutzer
    TextBox43.Enabled = False 'sperrt die Eingabe der Textbox durch den Benutzer
    TextBox44.Enabled = False 'sperrt die Eingabe der Textbox durch den Benutzer
    TextBox45.Enabled = False 'sperrt die Eingabe der Textbox durch den Benutzer
    
    Set Bereich = Sheets("Aufträge").Range("AT1") 'Ermittelt die aktuelle laufende Nummer des neuen Auftrags
   
    TextBox44.Value = Bereich.Value
    
    DTPicker1.Value = Now
    
    Exit Sub
       
End Sub
Hallo Robbi,

eine aus meiner Sicht gute Seite zu den Listobjects ist diese:

the-vba-guide-to-listobject-excel-tables
Hallo Robbie,

(10.12.2019, 11:43)Robbie1985 schrieb: [ -> ]ich habe im Tabellenblatt "Firmendaten" noch eine dynamische Tabelle "tbl_invt" erstellt. Kann ich im VBA Code auch nur auf die Tabelle "tbl_invt" verweisen, oder kann ich nur auf das gesamte Tabellenblatt "Firmendaten" verweisen?
.RowSource = "tbl_invt"
Gruß Uwe