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.

Combobox: Zugriff auf anderes Tabellenblatt
#1
Hallo miteinander,

ich versuche gerade mit meiner Comboxbox einen Wert aus einem anderen Tabellenblatt ("Tabelle2") abzugreifen, komme hierbei aber leider nicht weiter.
Momentan (sh. Code) hole ich mir die Daten noch aus demselben Tabellenblatt und lasse dabei eigenständig nach dem letzten Eintrag suchen...

Code:
Private Sub UserForm_Initialize()
   ComboBox1.RowSource = Range(Range("AA4"), Range("AA200").End(xlUp)).Address
   ComboBox1.ListIndex = 0
End Sub

Mein Gedanke, das Worksheet direkt anzusprechen, funktioniert leider nicht. 

Code:
Private Sub UserForm_Initialize()
   ComboBox1.RowSource = Worksheet("Tabelle2").Range("A4"), Worksheet("Tabelle2").Range("A200").End(xlUp).Address
   ComboBox1.ListIndex = 0
End Sub

Kann mir jemand eventuell sagen, wo mein Denkfehler liegt? 

Einen schönen Start ins Wochenende.

Bookshelf3011
Antworten Top
#2
Hallo Bookshelf3011 ,

Du möchtest doch ein Sheet aus der Worksheets-Auflistung auswählen, nicht wahr? ;)

Gruß  Jonas
[-] Folgende(r) 1 Nutzer sagt Danke an Jonas0806 für diesen Beitrag:
  • Bookshelf3011
Antworten Top
#3
Auch Hallo,

vielleicht so?

Code:
Private Sub UserForm_Initialize()
   Dim lngLastRow As Long
  
   With Worksheets("Tabelle2")
   lngLastRow = .Range("AA200").End(xlUp).Row
   ComboBox1.RowSource = .Range("A4:AA" & lngLastRow).Address
   ComboBox1.ListIndex = 0
   End With
End Sub
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • Bookshelf3011
Antworten Top
#4
Hallo Steffl,

dein Code funktioniert wunderbar. Vielen Dank. Nur leider hat sich jetzt ein anderes Problem aufgetan:

Starte ich den Code aus dem Editor (F5) heraus, so zeigt er mir den Inhalt der Combobox nur dann an, wenn ich das Tabellenblatt aktiv ausgewählt habe. Starte ich den Code über einen
Button in einem anderen Tabellenblatt (was der Grundüberlegung entspricht), so ist die Combobox "leer". "Leer" in dem Sinne, das er mir zwar exakt so viele Felder anzeigt, wie Inhalte
im anderen Tabellenblatt eingetragen sind, diese jedoch in der Combobox nicht sichtbar sind. Quasi leere Auswahlfelder...

Gruß

Bookshelf3011
Antworten Top
#5
@Jonas0806:

Da hast du natürlich recht. Was ein grundsätzlich blöder Fehler meinerseits. Danke dir.

Gruß

Bookshelf3011
Antworten Top
#6
Hallo,

Stefans Vorschlag mit einer kleinen Ergänzung müsste funktionieren:


Code:
Private Sub UserForm_Initialize()
   Dim lngLastRow As Long
  
   With Worksheets("Tabelle2")
   lngLastRow = .Range("AA200").End(xlUp).Row
   ComboBox1.RowSource = "Tabelle2!" & .Range("A4:AA" & lngLastRow).Address
   ComboBox1.ListIndex = 0
   End With
End
Gruß Atilla
[-] Folgende(r) 2 Nutzer sagen Danke an atilla für diesen Beitrag:
  • Bookshelf3011, Steffl
Antworten Top
#7
Hallo atilla,

vielen Dank für die Ergänzung des Codes. Jetzt funktioniert alles wie es soll.

Noch einen schönen Abend.

Gruß

Bookshelf3011
Antworten Top


Gehe zu:


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