Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1308to1312
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 ComboBox aus andere sheet1

UserForm ComboBox aus andere sheet1
27.04.2013 00:41:35
mehmet
Hallo,
in Tabelle "TAF" habe ich ein Button wo ich UserForm1 ausrufe.
Leider greift es nicht an die Daten von Tabelle "sheet1".
Wenn ich aber den Button von Tabelle "TAF" in Tabelle "sheet1" aufrufe,
funktioniert es. Warum nicht von Tabelle "TAF" aus her?
https://www.herber.de/bbs/user/85089.xls
Gruss
mehmet

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserForm ComboBox aus andere sheet1
27.04.2013 01:11:50
Mustafa
Hallo Mehmet,
Diese Schreibweise :

varArray = Range(Cells(1, 1), Cells(Cells(65536, 2).End(xlUp).Row, 6))

greift immer auf das Aktive Tabellenblatt.
Wenn du auf ein bestimmtes Tabellenblatt zugreifen möchtest dann so:

varArray = Worksheets("Tabelle1").Range(Worksheets("Tabelle1").Cells(1, 1), Worksheets("Tabelle1").Cells(Worksheets("Tabelle1").Cells(65536, 2).End(xlUp).Row, 6))

Der Übersichtlichkeit halber mache ich das dann aber lieber so:
Private Sub UserForm_Activate()
Dim varArray As Variant
Dim Wks1 As Worksheet
Set Wks1 = Worksheets("Tabelle1")
'   varArray = Range(Cells(1, 1), Cells(Cells(65536, 1).End(xlUp).Row, 3))
varArray = Wks1.Range(Wks1.Cells(1, 1), Wks1.Cells(Wks1.Cells(65536, 2).End(xlUp).Row, 6))
ComboBox1000.List = varArray
End Sub
Vor jede Range oder Cells Anweisung den Bezug auf das richtige Tabellenblatt zuweisen
Oder so :
Private Sub UserForm_Activate()
Dim varArray As Variant
Dim Wks1 As Worksheet
Set Wks1 = Worksheets("Tabelle1")
With Wks1
'   varArray = .Range(.Cells(1, 1), .Cells(.Cells(65536, 1).End(xlUp).Row, 3))
varArray = .Range(.Cells(1, 1), .Cells(.Cells(65536, 2).End(xlUp).Row, 6))
End With
ComboBox1000.List = varArray
End Sub
Da Alle Range und Cells Zuweisungen sich auf das gleiche Tabellenblatt beziehen
mit der With End With anweisung und dem vorangehenden Punkt vor den Range bzw Cells Anweisungen
den Bezug auf die Tabelle 1 setzen.
Rückmeldung ob es hilft wäre nett.
Gruß aus der Domstadt Köln.

Anzeige
AW: UserForm ComboBox aus andere sheet1
27.04.2013 01:22:46
mehmet
Hallo Mustafa,
herlich, es macht was es soll.
Herzlichen Dank für deine Unterstützung.
Darf ich noch eine kurze Frage stellen.
Gibt es eine Möglichkeit,
dass man den ComboBox, wenn es aufklappt,
mit dem Mausrad rauf-/runter drehen kann.
Herzlichen Dank
Gruss
mehmet

Scrollen in Combobox
27.04.2013 01:36:19
Mustafa
Hallo Mehmet,
Sorry wie man die Combobox aufklappen lässt und drin scrollen kann weis ich nicht.
Ich lasse die Frage daher noch offen.
PS: Danke für die Rückmeldung

AW: Scrollen in Combobox
27.04.2013 01:41:01
mehmet
Dank Dir Mustafa,
eine letzte Frage noch bitte 8-)
Nachdem ich ComboBox geklickt habe, erscheint die Information von Spalte B.
Es soll aber von Spalte D erscheinen. Muss ich das in Eigenschaft einstellen oder geht das nur über VBA.
Viele Grüsse
mehmet

Anzeige
AW: Scrollen in Combobox
27.04.2013 02:35:21
Mustafa
Hallo Mehmet,
Mit der Funktion:

ComboBox1000.TextColumn = 4

Kannst du bestimmen welche Spalte des gewählten Eintrages angezeigt werden soll.
In dem Beispiel wäre es die Spalte 4 also die "D" Spalte aus deiner Liste.
Rückmeldung obs hilft wäre Nett.
Gruß aus der Domstadt Köln.

Super Mustafa, herzlichen. Viele Grüsse o.T.
27.04.2013 10:12:31
mehmet
.

Danke für die Rückmeldung orT
28.04.2013 22:31:01
Mustafa
Gruß aus der Domstadt Köln.

Richtig referenzieren
27.04.2013 01:17:19
Erich
Hi Mehmet,
probiers mal mit

Private Sub UserForm_Activate()
Dim varArray As Variant
With Sheets("sheet1")
varArray = .Range(.Cells(1, 1), .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, 6))
' oder
varArray = .Cells(1, 1).Resize(.Cells(.Rows.Count, 2).End(xlUp).Row, 6)
End With
ComboBox1000.List = varArray
End Sub
Wenn du schreibst:
varArray = Range(Cells(1, 1), Cells(Cells(65536, 2).End(xlUp).Row, 6))
woher soll VBA dann wissen, dass du Daten nicht vom zufällig gerade aktiven Blatt "TAF",
sondern vom Blatt "sheet1" meinst?
Schau doch mal hier in der Recherche nach "richtig referenzieren". :-)
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Richtig referenzieren
27.04.2013 01:26:15
mehmet
Hallo Erich,
hast recht.
Hatte viele Variationen versucht ohne Erfolg.
Es musste, wie immer, ein Experte helfen.
Jetzt klappt es aber.
Herzlichen Dank und viele Grüsse.
mehmet

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige