Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: rowsource von anderem Blatt?

rowsource von anderem Blatt?
anderem
Guten Morgen!
Wenn ich per VBA einer ListBox die Quelle zuweise hab ich nur die Möglichkeit einen Zellbereich anzugeben. Wie steuere ich denn, das dieser Zellbereich von einem anderen sheet sein soll?
Gruß, Marc
Anzeige
AW: rowsource von anderem Blatt?
21.04.2011 08:55:08
anderem
Hallo Marc,
schreibe vor dem Zelbereich Tabelle1!

"ungültiger Eigenschaftenwert"
21.04.2011 11:55:09
Marc
Danke erstmal für die Rückmeldung.
Den Code hab ich von meinem "Vorgänger" und sehe einiges an Optimierungspotential
RowSource wurde bisher bei aktiviertem Blatt gesetzt und das find ich nicht so prickelnd.
Leider kommt jetzt noch die Fehlermeldung "ungültiger Eigenschaftenwert"
Die Syntax sollte doch stimmen, oder?
With Worksheets("Teilespektrum")
'.Activate
'Teilespektrum ermitteln und in Listenfeld eintragen
ber_ende = .Range("A2") '=3
var_ber$ = "Tabelle2!" & "b2:b" + Trim(Str$(ber_ende + 1)) ' "Tabelle2!b2:b4"
lst_teileauswahl.RowSource = var_ber$
'ERROR!!!
'Werkstoffe ermitteln und in Listenfeld eintragen
ber_ende = .Range("C2")
var_ber$ = "d2:d" + Trim(Str$(ber_ende + 1))
lst_werkstoff.RowSource = var_ber$
End With
Gruß, Marc
Anzeige
AW: "ungültiger Eigenschaftenwert"
21.04.2011 12:07:27
Hajo_Zi
Hallom Marc,
eine Datei wäre besser gewesen. Ein Nachbau meist sieht anders aus und bei mir geht es.
Option Explicit
Private Sub UserForm_Activate()
Dim StBereich As String
StBereich = "Tabelle1!D1:D4"
ListBox1.RowSource = StBereich
End Sub

Gruß Hajo
Anzeige
AW: "ungültiger Eigenschaftenwert"
21.04.2011 13:04:51
Marc
Es scheint nicht an der VBA-Syntax an sich zu liegen. Ich kann den String "Tabelle2!B2:B4
" auch nicht von Hand in das Feld RowSource der Combobox eintragen
Nur "B2:B4" geht hervorragend.
Gibt´s noch ne Stelle wo ich gucken könnte?
Gruß, Marc
AW: "ungültiger Eigenschaftenwert"
21.04.2011 13:07:40
Hajo_Zi
Hallo Marc,
Du hast beim eintragen von Hand schon beachtet das est die Zelladresse eingetragen wird, enter und dann die Tabelle nachgetragen wird?
Gruß Hajo
Anzeige
AW: "ungültiger Eigenschaftenwert"
21.04.2011 13:16:57
Marc
Hallo Hajo!
Nö, hab ich nicht, .... hat mich aber auch nicht weitergebracht. Die Adresse mit Tabellenverweis Tabelle2!B2:B4 wird als ungültiger Eigenschaftenwert verweigert.
Die Excel-Version ist nicht 2007 sondern 2003 SP3, falls es hilft...
Gruß, Marc
stimmt der Blattname? owT
21.04.2011 13:28:20
Rudi
AW: stimmt der Blattname? owT
21.04.2011 13:31:28
Marc
Tabelle2 ist der Blattname in der Projektübersicht, der in der Übersicht mit angegeben ist. Benannt ist das Sheet mit "Teilespektrum"
Gruß, Marc
Anzeige
da ham wir's doch
21.04.2011 13:33:43
Rudi
Hallo,
du musst den Namen, nicht den Codenamen angeben.
Teilespektrum!B2:B4
Gruß
Rudi
ENDLICH! Danke schön (owT)
26.04.2011 08:00:29
Marc
.
AW: rowsource von anderem Blatt?
21.04.2011 13:12:55
anderem
Hallo,
wenn schon VBA, wozu dann RowSource? .List ist viel praktischer.
ListBox1.List=Sheets(2).Range("A2:B10").Value
Gruß
Rudi
Anzeige
Guter Ansatz, leider ....
21.04.2011 13:28:24
Marc
wird auch dieser Eigenschaftenwert nicht (mehr) akzeptiert.
Ich mach die Mappe nochmal neu auf und fang (mit euren Ideen) neu an mit umstricken.
Bis nächste Woche, schönes WE
Gruß, Marc
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Verwendung von RowSource in VBA für ein anderes Blatt


Schritt-für-Schritt-Anleitung

  1. Zielblatt auswählen: Um eine ListBox oder ComboBox in Excel VBA mit Daten aus einem anderen Blatt zu füllen, musst Du sicherstellen, dass Du den richtigen Blattnamen verwendest. Beispiel: Tabelle1!D1:D4.

  2. VBA Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. UserForm erstellen: Füge eine neue UserForm hinzu und platziere eine ListBox oder ComboBox darauf.

  4. Code hinzufügen: Verwende den folgenden VBA-Code, um die RowSource zu setzen:

    Private Sub UserForm_Activate()
       Dim StBereich As String
       StBereich = "Tabelle1!D1:D4" ' Anpassen an Dein Zielblatt
       ListBox1.RowSource = StBereich
    End Sub
  5. Blattnamen überprüfen: Stelle sicher, dass Du den korrekten Namen des Blattes angibst, und beachte, dass der Blattname in den Anführungszeichen stehen muss.


Häufige Fehler und Lösungen

  • "Ungültiger Eigenschaftenwert": Dieser Fehler tritt auf, wenn der Blattname oder der Zellbereich falsch angegeben ist. Überprüfe, ob der Blattname genau mit dem übereinstimmt, was in der Excel-Datei steht. Beispiel: Teilespektrum!B2:B4.

  • Fehlende Anführungszeichen: Wenn Du den Zellbereich manuell einträgst, achte darauf, dass Du die Anführungszeichen korrekt setzt.

  • Versionen: Einige Funktionen sind möglicherweise in älteren Excel-Versionen wie 2003 nicht verfügbar. Stelle sicher, dass Du die richtige Version verwendest und teste den Code in einer aktuellen Version, wenn möglich.


Alternative Methoden

  • Verwendung von .List: Anstelle von RowSource kannst Du die List-Eigenschaft verwenden, um Daten schneller zuzuweisen. Beispiel:

    ListBox1.List = Sheets("Tabelle2").Range("A2:B10").Value
  • Direkte Zuweisung: Du kannst auch einfach die Daten direkt in die ListBox oder ComboBox laden, ohne RowSource zu verwenden, was oft einfacher ist.


Praktische Beispiele

  1. Einfaches Beispiel: Fülle eine ListBox mit Daten von einem anderen Blatt:

    Private Sub UserForm_Activate()
       ListBox1.RowSource = "Tabelle2!A1:A10"
    End Sub
  2. Dynamischer Zellbereich: Wenn Du den Bereich dynamisch anpassen möchtest, kannst Du folgenden Code verwenden:

    Private Sub UserForm_Activate()
       Dim ber_ende As Long
       ber_ende = Worksheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row
       ListBox1.RowSource = "Tabelle2!A1:A" & ber_ende
    End Sub

Tipps für Profis

  • Verwende Debugging: Setze Haltepunkte im VBA-Code, um den Wert der Variablen zu überprüfen, falls Du auf Probleme stößt.

  • Bezeichner verwenden: Verwende klare Bezeichner für Deine Blätter und Bereiche, um die Lesbarkeit des Codes zu erhöhen.

  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um unerwartete Fehler elegant abzufangen und zu behandeln.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der Zellbereich korrekt ist?
Überprüfe den Blattnamen und den Zellbereich in der Excel-Oberfläche. Achte auf Tippfehler und die Verwendung von Anführungszeichen.

2. Warum funktioniert RowSource nicht in meiner Excel-Version?
Einige Funktionen sind je nach Excel-Version unterschiedlich. Stelle sicher, dass Du die neueste Version verwendest oder teste den Code in einer kompatiblen Umgebung.

3. Was mache ich, wenn meine ListBox leer bleibt?
Überprüfe den angegebenen Zellbereich und den Blattnamen. Stelle sicher, dass die Zellen tatsächlich Daten enthalten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige