Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
976to980
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
976to980
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ComboBoxDaten in Abhängigkeit filtern o. Userform

ComboBoxDaten in Abhängigkeit filtern o. Userform
20.05.2008 23:17:22
Andreas
Hallo Excelexperten,
Nach langem erfolglosen suchen möchte ich nun bei euch mein glück versuchen.
habe folgende frage:
situation. tabelle1 hat spalte a nummern, b sind bezeichnungen, e bis... sind monate, pro monat 4 spalten
zu jeder bezeichnung steht in zeile und spalte eines monats ein x oder nicht (ja/nein) sozusagen
so in tabelle 2 habe ich ein combifeld, in dem ich monat anwählen kann (aus tabelle 3, Kalender)
in spalte a sind dann die tage runterwärts pro zeile drin.
nun habe ich für jeden tag (pro Zeile) in spalte i combiboxen angelegt. mit denen kann ich dann auf die nummern und bezeichnungen in Tabelle 1 zugreifen und die Auswahl in die zeilen setzen.(mit ListFillRange)
Mein problem ist nun, das die nummern und bezeichnungen nach dem gewählten monat gefiltert werden sollen und da noch zusätzlich nur die mit dem "x". und die in den Combiboxen der zeilen ausgegeben werden.
hoffe es ist verständlich (mein 1. Versuch)und jemand hat eine idee...vielen dank schon mal im voraus
Gruß an die Excel-freunde....andreas

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBoxDaten in Abhängigkeit filtern o. Userform
21.05.2008 11:44:12
fcs
Hallo Andreas,
die meiner Meinung nach beste Lösung ist, die für den gewählten Monat relevanten Nummern/Bezeichnungen in ein separates Blatt zu übertragen und den Listenauswahlbereich mit einem Namen zu versehen. Dieser Name wird dann in den Comboboxen in Spalte I als ListFillRange verwendet.
Die Makros zur Aktualiserung der Auswahlliste werden vom Change-Ereignis der Monats-Combobox gestartet.
Alternativ könnte man auch die AddItem-Methode verwenden, um die ComboBoxen mit der Auswahlliste zu füllen. Dann muss man jedoch dafür sorgen, dass die Liste zum richtigen zeitpunkt mit Daten versorgt wird. Außerdem wird es kopliziert den Inhalt einer verknüpften Zelle zu verwalten, da die Auswahllisten beim Öffnen der datei leer sind.
Hier eine Beispieldatei, die in etwa auf deine Fragestellung zugeschnitten ist.
https://www.herber.de/bbs/user/52508.xls
Gruß
Franz

Anzeige
AW: ComboBoxDaten in Abhängigkeit filtern o. Userf
21.05.2008 23:46:49
Andreas
Hallo Franz
erst mal vielen vielen dank für deine Mühe und Antwort
die beispielmappe sieht auf den ersten blick super aus, fast so wie meine
respekt, hatte nicht gedacht, das meine erklärung ausreicht
ich werde die mappe, bzw die Makros bei mir testen, wird aber etwas dauern, bin halt noch anfänger mit
so was, und geb dir dann noch mal kurz info wie es klappt...
kurze frage noch dazu, wenn ich etwas länger brauche, siehst du meine antwort oder rückfrage dann noch?
ich hoffe es, denn ich kann nachfragen noch nicht ausschließen.
nochmals danke und lob an das forum, ist ne super sache
gruß an alle
andreas

Anzeige
AW: ComboBoxDaten in Abhängigkeit filtern o. Userf
22.05.2008 04:08:00
fcs
Hallo Andres,
ich hab mir den Link auf diesen Thread gespeichert, so dass ich einfach checken kann, ob noch weiter Fragen sind.
Wäre aber hilfreich, wenn du mir ggf. zusätzlich eine kleine E-Mail schickst, dass noch Fragen sind.
Die E-Mail-Adresse findest du unter Forums-Seiten--Profile--Profilliste Name: fcs
Gruß
Franz

AW: ComboBoxDaten in Abhängigkeit filtern o. Userf
24.05.2008 18:35:10
Andreas
Hallo Franz
Habe alle Code in meine Mappe kopiert, hoffe an die richtigen stellen, und dementsprechend angepasst.
auch die Bereichsnamen und Eigenschaften der Felder/Boxen hab ich angepasst.
jetzt macht er aber bei der monatswahl immer Fehler, geht in den code und sagt Variable nicht definiert.
und zwar bei demfolgenden Makro , das hab ich in das Blatt mit der Monatscombobox kopiert.
'Ereignismakros im Tabellen-Blatt

Private Sub ComboBox1_Change() 'Combobox mit Monatsauswahl
'Setzen der Tabellen-Objekte
Set objWksData = Worksheets(strDaten)
Set objWksAuswahl = Worksheets(strAuswahl)
'Auswahlliste Aktualisieren
Call AuswahllisteMonat(Me.ComboBox1.Value)
'Listfillrange der Comboboxen in Spalte I aktualisieren
Call ListFillRangeCombos_I("Auswahl.Bezeichnung")
End Sub


weiß nicht welche variable er meint und wo die definiert werden muß. markiert ist immer das "(strDaten)"
vieleicht hab ich nur falsch reinkopiert...
danke im Voraus
Gruß andreas

Anzeige
AW: ComboBoxDaten in Abhängigkeit filtern o. Userf
24.05.2008 21:32:00
fcs
Hallo Andreas,
sieht so aus, als ob du die Deklaration der Variablen und Konstanten nicht komplett kopiert hast.

Option Explicit
'Konstanten im Blatt mit den Auswahldaten
Private Const strDaten As String = "Tabelle1" 'Tabellenblatt-Name (Blatt mit den "X")
Private Const lngDataZ1 As Long = 3 '1. Zeile mit Nummer
Private Const lngSpJanuar As Long = 5 'Nummer der Spalte mit x im Monat Januar
Private Const lngSpMonat As Long = 4 'Anzahl Spalten je Monat
'Konstanten im Blatt mit den ComboListen (nur erforderlich für Zwischenspeicherbuttons)
Private Const lngEinZ1 As Long = 3 'Zeile der 1. Combobox in Spalte I
'Konstanten im Blatt mit den Auswahllisten
Private Const strAuswahl As String = "Kalender" 'Tabellenblatt-Name
Private Const lngAuswNummer As Long = 3 'Spalte mit Nummer in Auswahlliste
Private Const lngAuswZ1 As Long = 3 '1. Zeile der Auswahlliste
'Objektvariablen für die Tabellenblätter
Private objWksData As Worksheet 'Tabellenblatt mit Auswahldaten
Private objWksEingabe As Worksheet 'Tabellenblatt mit Comboboxen (nur für Zwischenspeicher- _
Buttons)
Private objWksAuswahl As Worksheet 'Tabellenblatt mit Auswahllisten
Private arrSpalteI() 'Array zum Zwischenspeichern der Werte in Spalte


Der Ort wo du die Prozedurn hinkopiert hast schein OK zu sein. Im VBA-Editor unter dem Blatt mit den Komboboxen. Du kannst strDaten aber auch ersetzen durch den Namen des Tabellenblatts mit den X für die Monate in Anführungszeichen
Set objWksData = Worksheets(strDaten)
Set objWksData = Worksheets("TabelleXYZ")
Gruß
Franz

Anzeige
AW: ComboBoxDaten in Abhängigkeit filtern o. Userf
24.05.2008 22:00:00
Andreas
Hallo Franz
Da hast du recht, habe in der zwischenzeit weiterprobiert und dann rausgefunden, das ich zwar alles kopiert habe, aber immer in die unterschiedlichen Tabellenblätter...wie halt die anmerkung dahinter stand...
also zu auswahllisten usw. hab dann alles wie in der Beispieltabelle in die Comboliste getan und es ging...
aber nun hab ich das nächste kleine problem entdeckt, er zeigt mir nicht alle daten; die mit "X" sind; je monat an.
ich hab ja pro monat 4 Spalten (quasi für jede Woche im Monat eine)... und die "X" sind nicht nur in der ersten spalte eines monats..... ; es gibt auch bezeichnungen, wo in der zeile in allen 4 spalten des monats ein x steht, (diese sache ist so zu sagen jede woche vertreten)
was muß ich jetzt noch ändern, das die alle gefunden werden?
wenn ich den mai zum Bsp. nehme, sehe ich 6 auswahldaten, aber in der Tabelle sind es 24...
vielen dank ,hoffe du kannst mir nochmal helfen
achso, frage noch zu den Buttons zum Speichern, brauche ich die oder kann man die auch weglassen?
viele grüße (auch ans gesamte forum)
Andreas

Anzeige
AW: ComboBoxDaten in Abhängigkeit filtern o. Userf
25.05.2008 14:21:50
fcs
Hallo Andreas,
zur Erfassung aller 4 Spalten eines Monats muss noch eine weitere Prüfschleife eingebaut werden.
siehe Änderung im Anschluss.
Die Buttons zum Zwischenspeichern sind nur dann relevant, wenn du den Monat wechseln und anschließend die Werte des vorherigen Monats eintragen möchtest.
Gruß
Franz

Private Sub AuswahllisteMonat(strMonat As String)
'Aktualisert die Auswahlliste für den Monat entsprechend den gesetzten "x"
Dim intMonat As Integer, intI As Integer
Dim lngZeile As Long, lngZeileAusw As Long, lngSpalteX As Long
With objWksAuswahl
'Alte Daten der Auswahlliste löschen
.Range(.Cells(lngAuswZ1, lngAuswNummer), _
.Cells(lngAuswZ1, lngAuswNummer).End(xlDown).Offset(0, 1)).ClearContents
lngZeileAusw = lngAuswZ1 - 1
.Cells(lngAuswZ1 - 2, lngAuswNummer + 1).Value = strMonat
End With
With objWksData
'X-Spalte des Monats bestimmen, dazu müssen Monatsnamen als Langname (z.B. März) _
eingegeben sein, sonst Festlegung der Variablen intMonat per Select Case erforderlich.
intMonat = Month(CDate("1." & strMonat & " " & Year(Date)))
lngSpalteX = lngSpJanuar + (intMonat - 1) * lngSpMonat
'Prüfen der Zeilen für den Monat auf Eintrag "x"
For lngZeile = lngDataZ1 To .Cells(.Rows.Count, 1).End(xlUp).Row
'4 Spalten des Monats abarbeiten
For intI = 0 To 3
If LCase(.Cells(lngZeile, lngSpalteX + intI).Value) = "x" Then
lngZeileAusw = lngZeileAusw + 1
objWksAuswahl.Cells(lngZeileAusw, lngAuswNummer) = _
.Cells(lngZeile, 1).Value 'Nummer
objWksAuswahl.Cells(lngZeileAusw, lngAuswNummer + 1) = _
.Cells(lngZeile, 2).Value 'Bezeichnung
Exit For
End If
Next
Next
End With
'Bereich für Name "Auswahl.Bezeichnung" neu setzen
With objWksAuswahl
Application.Names("Auswahl.Bezeichnung").RefersTo = "='" & .Name & "'!" _
& .Range(.Cells(lngAuswZ1, lngAuswNummer), .Cells(lngZeileAusw, lngAuswNummer + 1)). _
Address
End With
End Sub


Anzeige
AW: ComboBoxDaten in Abhängigkeit filtern o. Userf
25.05.2008 22:54:00
Andreas
Hallo Franz
Das funktioniert ja wunderbar, habe das makro geändert und alles getestet. alles super
auch wenn ich den ganzen code noch nicht ganz verstehe, aber ich hab wieder etwas dazu gelernt...
möchte mich herzlichst bei dir für deine Hilfe und Mühe bedanken.
wenn ich wieder was brauche, werde ich mit sicherheit hier suchen oder fragen
Vielen dank nochmal
gruß andreas

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige