Kombinationsfeld mal wieder…

Dieses mal ists etwas komplizierter… Ich möchte in einem Kombinationsfeld (Steuerelement) Daten aus einer Zeile auflisten lassen… Es geht dabei um die gesamte erste Zeile, die Anzahl der gefüllten Spalten der Zeile ist variabel, es können mal mehr und mal weniger sein. Leere Felder solle natürlich nicht im Kombinationsfeld angezeigt werden… Im Kombinationsfeld müssten die Inhalte der Zeile dann noch alphabetisch geordnet werden (Sonderzeichen, Zahlen, ABC).

Ich hab versucht in den Einstellungen unter ListFillRange einfach Tabelle2!1:1 einzugeben, allerdings wird dann nur jeweils die erste Spalte der Zeile aufgelistet. Ich hab absolut keine Ahnung wie ich das hinkrieg soll… Als Hinweis vielleicht noch, das Kombinationsfeld und die Quellzeile sind nicht auf dem selben Blatt.

Für Hilfe wäre dankbar!

Gruß
Nick Scharz

Dieses mal ists etwas komplizierter… Ich möchte in einem
Kombinationsfeld (Steuerelement) Daten aus einer Zeile
auflisten lassen… Es geht dabei um die gesamte erste Zeile,
die Anzahl der gefüllten Spalten der Zeile ist variabel, es
können mal mehr und mal weniger sein. Leere Felder solle
natürlich nicht im Kombinationsfeld angezeigt werden… Im
Kombinationsfeld müssten die Inhalte der Zeile dann noch
alphabetisch geordnet werden (Sonderzeichen, Zahlen, ABC).

Hi Nick,

Option Explicit
Sub tt()
Dim ws2 As Worksheet
Application.ScreenUpdating = False
Set ws2 = Worksheets("Tabelle2")
With Worksheets("Tabelle1")
 ws2.Activate
 ws2.UsedRange.Clear
 .Rows(1).Copy
 ws2.Range("A1").PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=True, Transpose:=True
 Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, \_
 OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
 .ComboBox1.ListFillRange = ws2.Name & "!$A$1:" & ws2.Cells(ws2.Range("A65536").End(xlUp).Row, 1).Address
 .Activate
End With
Application.ScreenUpdating = True
End Sub

Gruß
Reinhard

Hi,

erstmal danke für die schnelle Antwort!

Ich hab das ganze zum Testen in ein Excel Dokument eingesetzt… Das Makro hab ich in die Arbeitsmappe gepackt (war das richtig?) und nen Kombinationsfeld (Steuerelement) auf Tabelle1 erzeugt und mit Zelle A1 verlinkt (Ausgabe). In Tabelle2 hab ich zum testen in A1:F1 Buchstaben verteilt.

Im Kombinationsfeld wurde wieder nur der Inhalt der ersten Zelle angezeigt, und mir ist aufgefallen das Spalte A bis Zeile 256 runter markiert wurde. Ich dachte das wäre vielleicht nen Fehler und hab mal nen paar Buchstaben in der ersten Spalte verteilt, es wird aber auch in dem Fall nur die erste Zelle im Kombifeld angezeigt…

Hab ich was falsch gemacht? Bzw. wie muss ich das richtig anwenden?

Ich weiß nicht ob das wichtig ist, aber ich hab Office 2003.

Gruß
Nick

Hi Nick,

Im Kombinationsfeld wurde wieder nur der Inhalt der ersten
Zelle angezeigt, und mir ist aufgefallen das Spalte A bis
Zeile 256 runter markiert wurde. Ich dachte das wäre
vielleicht nen Fehler und hab mal nen paar Buchstaben in der
ersten Spalte verteilt, es wird aber auch in dem Fall nur die
erste Zelle im Kombifeld angezeigt…

ja, das mit den 256 Zeilen fiel mir auch auf, hatte irgendwie erwartet dass nach dem Paste nur die tatsächliche Anzahl Zeilen selektiert ist.

Hab ich was falsch gemacht? Bzw. wie muss ich das richtig
anwenden?

K.A. was da schief lief, anbei ein e funktionierende Datei mit dem Code: http://rapidshare.de/files/22130879/kw.xls.html

Ich weiß nicht ob das wichtig ist, aber ich hab Office 2003.

Datei ist auf XL2000 getestet.

Gruß
Reinhard

Hi,

ich hab nun das erste Problem gelöst… Ich hatte Tabelle 2 als Quelle benutzt, und es war ja genau anders rum programmiert…

Deine Dateien funktioniert ohne Probleme, jedoch kommts wenn ich es in meine einsetze zu folgendem Problem: Laufzeitfehler ‚428’: Objekt unterstützt diese Eigenschaft oder Methode nicht. Könnte es daran liegen, dass mein Kombinationsfeld auch Anweisungen enthält?

Dann sind mir noch zwei Sachen aufgefallen, das ganze wird ja mit einem Button aktualisiert… Kann man das ganze auch automatisieren? So das es sich zum Beispiel automatisch bei jeder Änderung des Quellblattes mit ändert? Das zweite wäre, wenn die Zellen für die Funktion des ganzen markierten sein müssen, müsste die Auflistung auf ein drittes Blatt das später ausgeblendet werden kann.

Ich hab hier mal meine Test-Datei reingepackt, vielleicht weißt du dann er was ich meine…
Als Hinweis, in der ursprünglichen Datei ist Tabelle2 ausgeblendet, links und rechts neben das Feld das durch das Kombinationsfeld aufgerufen wird befinden sich eine Vielzahl von Formeln und so weiter… Um zu verdeutlichen was das Kombinationsfeld macht hab ich mal einfach manuell ne Auswahl rein gesetzt.

http://hometown.aol.de/NickScharz/Mappe+Test.xls

Vielen dank das du dir Zeit für so was nimmst!

Gruß
Nick

Hi Nick,

Deine Dateien funktioniert ohne Probleme, jedoch kommts wenn
ich es in meine einsetze zu folgendem Problem: Laufzeitfehler
‚428’: Objekt unterstützt diese Eigenschaft oder Methode
nicht. Könnte es daran liegen, dass mein Kombinationsfeld auch
Anweisungen enthält?

Welche Anweisungen? Ich hänge auch grad fest, kommen seltsame Sortierungsfehler.

Dann sind mir noch zwei Sachen aufgefallen, das ganze wird ja
mit einem Button aktualisiert… Kann man das ganze auch
automatisieren? So das es sich zum Beispiel automatisch bei
jeder Änderung des Quellblattes mit ändert?

Das geht über Worksheet_change

Das zweite wäre,
wenn die Zellen für die Funktion des ganzen markierten sein
müssen, müsste die Auflistung auf ein drittes Blatt das später
ausgeblendet werden kann.

Tabelle1 oder Tablle3 ist egal

Als Hinweis, in der ursprünglichen Datei ist Tabelle2
ausgeblendet, links und rechts neben das Feld das durch das
Kombinationsfeld aufgerufen wird befinden sich eine Vielzahl
von Formeln und so weiter… Um zu verdeutlichen was das
Kombinationsfeld macht hab ich mal einfach manuell ne Auswahl
rein gesetzt.

Da ich 3 MB-Dateien unübersichtlich finde *g, kannst du mal in einer Kopie deiner Orginaldatei alles unterhalb Zeile 10 löschen, ggfs die Zeilen 1-10 anonymisieren und hochladen?
Wenn dann in einigen Zellenformeln Fehler auftreten weil es nur noch 10 zeilen sind, so macht das nix, kannste so lassen.
Soll Blatt2 und Blatt3 mit Excel einblendbar sein oder nur mit Vba?

Gruß
Reinhard

http://hometown.aol.de/NickScharz/Mappe+Test.xls

Vielen dank das du dir Zeit für so was nimmst!

Gruß
Nick

Deine Dateien funktioniert ohne Probleme, jedoch kommts wenn
ich es in meine einsetze zu folgendem Problem: Laufzeitfehler
‚428’: Objekt unterstützt diese Eigenschaft oder Methode
nicht. Könnte es daran liegen, dass mein Kombinationsfeld auch
Anweisungen enthält?

Hi Nick,
k.A. woher der Fehler kommt, may be er kommt aus dieser Ecke irgendwie.

Sub Geht1()
Dim ws1 As Worksheet
Set ws1 = Worksheets("Tabelle1")
With Worksheets("Tabelle1")
 .ComboBox1.ListFillRange = "A1:A10"
End With
End Sub

Sub Geht2()
Dim ws1 As Object
Set ws1 = Worksheets("Tabelle1")
With ws1
 .ComboBox1.ListFillRange = "A1:A10"
End With
End Sub

Sub GehtNicht()
Dim ws1 As Worksheet
Set ws1 = Worksheets("Tabelle1")
With ws1
 .ComboBox1.ListFillRange = "A1:A10"
End With
End Sub

Gruß
Reinhard

Hi,

du möchtest jetzt also die Datei haben in der das ganze letztlich zum einsatz kommt? Meinst das mit Originaldatei?

Die Testdatei die unter dem Link zu finden is, hat nur 75 KB, die Original hat ca. 600KB.

Blatt 2 und 3 dürfen im Grunde nicht wieder eingeblendet werden… Was aber auch über Arbeitsmappe schützen gehen müsste…

Gruß
Nick

Hi Nick

du möchtest jetzt also die Datei haben in der das ganze
letztlich zum einsatz kommt? Meinst das mit Originaldatei?

Ja

Die Testdatei die unter dem Link zu finden is, hat nur 75 KB,
die Original hat ca. 600KB.

In der testdatei waren, für mich, einige Unklarheiten, deshalb die Originaldatei,
aber zur Lösung in Vba brauche ich nur die exakte Dateistruktur und nicht 65536 Zeilen, deshalb die Bitte um Entschlackung.

Blatt 2 und 3 dürfen im Grunde nicht wieder eingeblendet
werden… Was aber auch über Arbeitsmappe schützen gehen
müsste…

Naja, da sehe ich evtl Probleme wenn Anwender in das Blatt was eintragen wollen/sollen, mit Vba „versteckt“ sind die Blätter „weg“ für jeden User ohne Vba-kenntnisse.

Gruß
Reinhard

Hiho =)

Ich hab dir die Originaldatei via eMail zugesendet. Es geht um das Blatt „Planung“. Die beiden Blätter danach „Ausgeblendet1 & 2“ solten dann die vom Blatt Planung abgelegten Daten und halt die Sortierung der Zeile enthalten. Es geht um die rot umrandete Spalte „Anzahl“. In der Zeile unter der Spaltenüberschrift Anzahl kommt die Ausgabe des Kombinationsfeldes, die Zeile wird dann ausgeblendet.

Den Code für die Button und so hab ich da noch nicht eingegebn, weil ichs halt noch in der adern Datei getestet hab.

Gruß
Nick

Hi,

ich habs inzwischen mal auch mal weiter versucht… Ich bin auf folgendes gekommen: In Tabelle3 hab ich auch der ersten Zeile mit dieser Formel eine Spalte gemacht:

=WENN(INDEX(Tabelle2!$1:blush:1;ZEILE(Tabelle2!1:1))="";"";INDEX(Tabelle2!$1:blush:1;ZEILE(Tabelle1!1:1)))

Und das ganze bis Zeile 256 runter gezogen. Dann hab ich zum sortieren folgendes in VBA in Tabelle3 eingefügt:

Private Sub Worksheet_Calculate()
Range(„A1:A256“).Sort Key1:=Range(„A1“), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

Funktioniert auch wunderbar, sobal ich was neues abspeicher oder lösche wird die Liste auf Tabelle3 ohne Probleme geändert.

Ich dachte mir nun muss ich unter ListFillRange nur noch den Bereich Tabelle3!A1:A256 eingeben und erreichen das im Kombinationsfeld nur Zeilen mit Inhalt angezeigt werden. Jedoch sobald ich in ListFill Range nur den Bereich Tabelle3!A1:A256 angebe (ohne irgendwas anderes) kommt es zu zich Fehler bei den Button als auch bei der ComboBox, aber nur wenn dieser Bereich eingegeben ist, sonst gehen die wunderbar!

Woran kann das liegen? Ließt die ComboBox die Formel vielleicht mit aus?

Hier die Datei:
http://hometown.aol.de/NickScharz/Mappe+Test3.xls

Gruß
Nick