Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1476to1480
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

Array + 1 fixer Wert

Array + 1 fixer Wert
29.02.2016 22:07:38
Ramon
Hallo zusammen,
ich komme bei folgendem Problem nicht weiter und hoffe auf Hilfe:
Ich habe in Spalte A eine Kundenliste ab Zeile 3, Name: "Customers"
In Zeile 2 steht die Spaltenüberschrift Customers (hier liegt
ein Autofilter drauf) und in Zeile 1 steht "All Customers"
Die Kundenliste ab Zeile 3 übergebe ich an ein Array. Diese Liste wird dann
in einer Combobox ausgegeben. Wähle ich dort etwas aus, wird der Autofilter
entsprechend gesetzt.
Nun möchte ich zusätzlich in der Arrayliste (bzw. in der Combobox) den Wert aus
der ersten Zelle (All Customers) haben. Wählt man diesen, so soll der Autofilter
zurückgesetzt werden. Funktioniert soweit alles.
Aber: In meiner Auswahlliste erscheint immer auch der Wert aus Zelle2, also
die Überschrift.
Mein Code sieht hierzu wie folgt aus. Was mache ich bloß falsch?
Sub fuelle_cbKunde()
Dim objSortedList As Object, objArrayList As Object
Dim lngIndex As Long
Dim vntArray As Variant
Set objSortedList = CreateObject(Class:="System.Collections.SortedList")
Set objArrayList = CreateObject("System.Collections.ArrayList")
vntArray = Range("a1", "customer").Value2
objSortedList.Capacity = UBound(vntArray)
For lngIndex = 1 To UBound(vntArray)
If Not IsEmpty(vntArray(lngIndex, 1)) Then _
objSortedList(vntArray(lngIndex, 1)) = ""
Next
objArrayList.AddRange objSortedList.Keys
cbKunde.List = objArrayList.toarray
Set objSortedList = Nothing
Set objArrayList = Nothing
End 

Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array + 1 fixer Wert
29.02.2016 22:59:11
Gerd
Hallo Ramon,
probiere mal.
'..............
vntArray = Range("a1", "customer").Value2
vntArray(2,1)= ""

'..............
Gruß Gerd

AW: Array + 1 fixer Wert
01.03.2016 09:30:31
Ramon
Guten Morgen Gerd,
vielen Dank, dass funktioniert soweit tatsächlich. Unschön an der Lösung ist nur, dass er
jetzt in der Combobox einen "Leerwert" in der Liste anzeigt, den man auch tatsächlich
anwählen kann. Das heißt, der zugehörige Autofilter wird dann auf "entspricht leer" gesetzt.
Das tatsächliche setzen des Filters kann ich hier natürlich abfangen. Unschön ist das mit dem
Leerwert aber trotzdem.
So richtig verstehen tue ich das ohnehin noch nicht. Mit "Deiner" Zeile sage ich ihm nun, dass
er den Wert aus der 2. Zelle auf leer setzen soll. Aber warum überhaupt? - Ich gebe doch explizit
vor, dass er nur A1 und dann die Liste ab A3- ... verwenden soll. Wieso wird A2 überhaupt
angesprochen?
Gruß,
Ramon

Anzeige
Range hat eine von-bis-Angabe, ...
01.03.2016 13:28:00
Luc:-?
…Ramon;
wenn das EinzelZellen sein sollen, muss es Range("a1,customer") heißen. Allerdings bekommst du dann nur den 1.Wert, da es sich um einen unzusammenhängenden Bereich handelt. Den 2. musst du mit INDEX-Var2 ermitteln und kannst so das Array nicht oW auf 1× füllen. Vgl mal …
MsgBox Range("A1", "customer").AddressLocal(0, 0)
MsgBox Range("A1,customer").AddressLocal(0, 0)
MsgBox Range("A1,customer").Value2
MsgBox Range("A1,customer").Value2 & "|" & WorksheetFunction.Index(Range("A1,customer"), 1, , 2)

Feedback erwünscht! Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Range hat eine von-bis-Angabe, ...
01.03.2016 16:02:48
Ramon
Hallo Luc :-?,
okay, so langsam verstehe ich es. Aber ich habe es jetzt auf ganz einfache Weise gelöst. Denn
da ich der anzuzeigenden Listenauswahl ja quasi jeden Wert "manuell" über vntArray(x, y)= z
vorgeben kann (danke an Gerd für den Tipp), verzichte ich jetzt einfach auf den All-Eintrag in
Zeile 1, nehme stattdessen den Überschriftswert aus der 2. Zeile mit in meinen "Customer"-Bezug
und schon funktioniert es:
vntArray = Range("customer").Value2
vntArray(1, 1) = "_All Customers"
Also, vielen Dank für die konstruktiven Tipps !
Gruß,
Ramon

Anzeige
Bitte sehr! ;-) owT
01.03.2016 16:16:00
Luc:-?
:-?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige