5.7k Aufrufe
Gefragt in Tabellenkalkulation von fedjo Experte (2.2k Punkte)
Hallo,
wie kann man die zwei Bereiche zu einem varBereich verbinden.

Gruß
fedjo

varBereich = Range("C3", Range("C3").End(xlDown))
Range("K3", Range("K3").End(xlDown))

20 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Fedjo,

meinst Du so?

Option Explicit

Sub test()
Dim varBereich As Range
Set varBereich = Range("C3:K" & ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row)
varBereich.Select
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Rainer,
danke für die schnelle Antwort.
Dein Code funktioniert leider nicht, es kommt eine Fehlemeldung: SpecialCells
Eigenschaft des Range Objekt kann nicht zugeordnet werden.

Ich glaube es liegt daran, weil die Zellen nicht formatiert sind.

Gruß
fedjo
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Rainer,
der Inhalt des varBereich sollte in einer ComboBox eingefügt werden.
Hier zum besseren Verständnis der gesamt Code:

Private Sub UserForm_Initialize()
Dim objDictionary As Object
Dim varBereich As Variant
Dim arrDaten As Variant
Dim loZaehler As Long
UserForm4.ComboBox1.Clear
Set objDictionary = CreateObject("Scripting.Dictionary")
varBereich = Range("C3", Range("C3").End(xlDown))
varBereich = Range("K3", Range("K3").End(xlDown))

For loZaehler = LBound(varBereich) To UBound(varBereich)
objDictionary(varBereich(loZaehler, 1)) = 0
Next loZaehler
arrDaten = objDictionary.keys
QuickSort arrDaten
UserForm4.ComboBox1.List = arrDaten
Set objDictionary = Nothing

Gruß
fedjo
End Sub
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Fedjo,

bei mir funktioniert der Code (Excel 2010).

Ich glaube es liegt daran, weil die Zellen nicht formatiert sind.


.... den Satz verstehe ich nicht, jede Zelle hat doch das Format "Standard", wenn es nicht verändert wurde, also sind die Zellen auch formatiert.

Vieleicht kannst Du Deine Frage mal etwas näher umschreiben.

Gruß
Rainer
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Fedjo,

so funktioniert's bei mir:

Option Explicit

Private Sub UserForm_Initialize()
Dim objDictionary As Object
Dim varBereich As Variant
Dim arrDaten As Variant
Dim loZaehler As Long
UserForm4.ComboBox1.Clear
Set objDictionary = CreateObject("Scripting.Dictionary")
varBereich = Range("C3:K" & ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row)
For loZaehler = LBound(varBereich) To UBound(varBereich)
objDictionary(varBereich(loZaehler, 1)) = 0
Next loZaehler
arrDaten = objDictionary.keys
QuickSort arrDaten
UserForm4.ComboBox1.List = arrDaten
Set objDictionary = Nothing
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Rainer,
das mit der Formatierung war nur so ein Gedanke. Es werden in der ComboBox jetzt die Werte aus der Spalte C angezeigt, es sollten aber aus beiden Spalten C, K die Werte eingelesen werden.

Gruß
fedjo
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Fedjo,

da hab ich Dich leider falsch verstanden und muss passen.

Hatte Dir Hajo nicht schon eine ähnliche Frage beantwortet?

Gruß
Rainer
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Rainer,
stimmt, eine ähnliche Frage die sich aber auf eine ListBox bezogen hat.
Ich werde da wohl eine Hilfsspalte verwenden müssen.

Gruß
fedjo
0 Punkte
Beantwortet von theblackbird_ Mitglied (605 Punkte)
Moin,

Wie solls denn aussehen? Du musst Dich entweder genauer ausdruecken, oder mal eine Beispielmappe hochladen, in der Du zeigst, wie das Ergebnis GENAU aussehen soll.
So ist das alles mehr oder weniger ein Stochern im Nebel.
Ich stocher dennoch einmal mit. ;-)
Aendere in Rainer's (rainberg) Code aus #5 die For-Schleife einmal wie folgt:
For loZaehler = LBound(varBereich) To UBound(varBereich)
objDictionary(varBereich(loZaehler, 1) & "_" & varBereich(loZaehler, 9)) = 0
Next loZaehler

Ist das Ergebnis dann nach Deinem Geschmack?

Cu
TheBlackBird ®
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo TheBlackBird,
dein Code funktioniert leider nicht so wie ich es mir vorgestellt habe.

Der Inhalt der Spalten: Range("C3", Range("C3").End(xlDown)) und
Range("K3", Range("K3").End(xlDown))
sollten zu einem ( varBereich = ) untereinander in die ComboBox1 eingfügt werden.

Musterdatei


Gruß
fedjo
...