Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Vba - Excel - wenn in combobox 1 Auflistung der Namen Arbeitsblätter gefiltert wurde - dann Auswahl in Combobox 2 nur Filterauswahl der Spalte des gewählten Arbeitsblattes

Frage Entwicklung VB for Applications

Mitglied: Knibbli

Knibbli (Level 1) - Jetzt verbinden

01.08.2010 um 17:02 Uhr, 4843 Aufrufe, 17 Kommentare

Hallö,

hoffe auf Eure Hilfe 0

Komme einfach nicht weiter und finde hier und im Netz irgendwie nicht die passende Lösung.

Dazu muss ich sagen, dass ich ein absoluter Anfänger im VBA bin aber nun schon Tage hieran rum tüftle - lese - usw. :'(
Mit Excel selbst, kenne ich mich ganz gut aus......

Es geht mir allerdings nun darum, alles bisherige in einer Datei, was ich in Formeln geschrieben hatte, in VBA zu bekommen
da das Blatt "Auswertung" (automatisiert) - immer wieder aktualisiert - gelöscht und neu überschrieben werden muss
.... und dies so einfach wie möglich für den Anwender.

Die Datei selbst ist leider nicht besonders ordentlich aufgebaut und wird nicht verändert werden (außer Werte-Inhalte und neue Tabellenblätter),
daher muss ich mich an dem Gegebenen anpassen und daraus das Optimalste zum Auswerten rausholen.

Kann mir jemand sagen wie ich die Comboboxfilterung in VBA Variante so umschreibe,
dass nur das aufgelistet wird, was mit der Typfilterung die Spalte dieses Typ-Blatts ausgewählt wurde?

Anders, wie baut man im unteren VBA Code es so um, dass
wenn im Combobox 1 Auswahlfeld (Typ) z.B. Typ-2 gewählt wurde,
dann im Combobox 2 Auswahlfeld (Variante) nur dies als Auswahlliste zum Auswählen erscheint was im Blatt Typ-2 vorgegeben ist?

Falls die Datei benötigt wird stelle ich sie gerne zur Verfügung.

LG
Knibbli



01.
Private Sub Variante_Change() 
02.
    Filtern 
03.
End Sub 
04.
 
05.
Private Sub Typ_Change() 
06.
    Filtern 
07.
End Sub 
08.
   
09.
Public Sub Variante_befüllen() 
10.
    Dim a As Range 
11.
    Dim i As Integer 
12.
    Dim WS As Worksheet 
13.
    With ThisWorkbook.Sheets("Auswertung").Variante 
14.
        .Clear 
15.
        For Each WS In ThisWorkbook.Worksheets 
16.
            If WS.Name = "Typ-1" Or WS.Name = "Typ-2" Or WS.Name = "Typ-3" Or WS.Name = "Typ-4" Or WS.Name = "Typ-5" Then 
17.
                For Each a In WS.Range("A3:A1000") 
18.
                    If a <> "" Then 
19.
                        For i = 0 To .ListCount - 1 
20.
                            If InStr(1, .List(i), a, 1) <> 0 Then GoTo Weiter 
21.
                        Next i 
22.
                        .AddItem a 
23.
                    End If 
24.
Weiter: 
25.
                Next a 
26.
            End If 
27.
        Next WS 
28.
    End With 
29.
End Sub 
30.
 
31.
Public Sub Typ_befüllen() 
32.
    Dim i As Integer 
33.
    Dim WS As Worksheet 
34.
    With ThisWorkbook.Sheets("Auswertung").Typ 
35.
        .Clear 
36.
        For Each WS In ThisWorkbook.Worksheets 
37.
            If WS.Name = "Typ-1" Or WS.Name = "Typ-2" Or WS.Name = "Typ-3" Or WS.Name = "Typ-4" Or WS.Name = "Typ-5" Then 
38.
                For i = 0 To .ListCount - 1 
39.
                    If InStr(1, .List(i), WS.Name, 1) <> 0 Then GoTo Weiter 
40.
                Next i 
41.
                .AddItem WS.Name 
42.
            End If 
43.
Weiter: 
44.
        Next WS 
45.
    End With 
46.
End Sub 
47.
 
48.
Public Sub Filtern() 
49.
    Dim a As Range 
50.
    Dim b As Range 
51.
    Dim Typ As String 
52.
    Dim zeile As Integer 
53.
    Dim WS As Worksheet 
54.
    zeile = 2 
55.
    With ThisWorkbook.Sheets("Auswertung") 
56.
        .Range("A2:J40").ClearContents 
57.
        .Range("O2:O40").ClearContents 
58.
        If .Variante = "" Or .Typ = "" Then Exit Sub 
59.
        Typ = .Typ 
60.
        Set WS = ThisWorkbook.Sheets(Typ) 
61.
                For Each a In WS.Range("A3:A1000") 
62.
                        If a <> "" And InStr(1, .Variante, a, 1) <> 0 Then 
63.
                            For Each b In .Range("B2:B1000") 
64.
                                If b <> "" And InStr(1, b, a.Offset(0, 2), 1) <> 0 Then 
65.
                                .Cells(zeile - 1, 4) = .Cells(zeile - 1, 4) + a.Offset(0, 4) 
66.
                                .Cells(zeile - 1, 5) = .Cells(zeile - 1, 5) + a.Offset(0, 5) 
67.
                                GoTo Weiter 
68.
                                End If 
69.
                            Next b 
70.
                            .Cells(zeile, 1) = a.Offset(0, 27) 
71.
                            .Cells(zeile, 2) = a 
72.
                            .Cells(zeile, 3) = a.Offset(0, 1) 
73.
                            .Cells(zeile, 4) = a.Offset(0, 2) 
74.
                            .Cells(zeile, 5) = a.Offset(0, 3) 
75.
                            .Cells(zeile, 6) = a.Offset(0, 4) 
76.
                            .Cells(zeile, 7) = a.Offset(0, 5) 
77.
                            .Cells(zeile, 8) = a.Offset(0, 26) 
78.
                            .Cells(zeile, 9) = a.Offset(0, 6) 
79.
                            .Cells(zeile, 10) = Range("U2") 
80.
                            .Cells(zeile, 15) = "0" 
81.
                            zeile = zeile + 1 
82.
                        End If 
83.
Weiter: 
84.
                Next a 
85.
    End With 
86.
End Sub 
87.
 
Mitglied: 76109
02.08.2010 um 09:48 Uhr
Hallo Knibbli!

Das ganze ist mir noch etwas unverständlich, von daher beginn ich mal mit der Routine von Typ befüllen:

01.
Option Explicit 
02.
Option Compare Text 
03.
 
04.
Public Sub Typ_befüllen() 
05.
    Dim WS As Worksheet 
06.
    With ThisWorkbook.Sheets("Auswertung").Typ 
07.
       .Clear 
08.
        For Each WS In ThisWorkbook.Worksheets 
09.
            If Left(WS.Name, 4) Like "Typ-" Then .AddItem WS.Name 
10.
        Next WS 
11.
        .ListIndex = 0 
12.
    End With 
13.
End Sub
Deine For-Schleife mit To .ListCount wird niemals durchlaufen, weil mit der Anweisung .Clear die Liste gelöscht und .ListCount auf -1 gesetzt wird.

In meinem Beispiel werden alle Tabellenblätter in die Liste aufgenommen, die mit "Typ-" beginnen. Hierbei ist allerdings noch unklar, ob die Einträge sortiert werden müssen. Das hängt davon ab, ob die Typ-Blätter der Reihe nach erstellt wurden oder nicht?

Ferner habe ich den ListIndex auf 0 gesetzt, was bedeutet, dass schon mal der erste Eintrag ausgewählt ist und somit auch die 2. ListBox mit einem Aufruf vorinitialisiert werden kann.

Gruß Dieter
Bitte warten ..
Mitglied: Knibbli
02.08.2010 um 13:03 Uhr
Hallo Dieter

Danke für deine Antwort,

Das mit dem

If Left(WS.Name, 4) Like "Typ-" Then .AddItem WS.Name

ist ne super Idee, somit werden dann auch die Tabellenblätter mit diesem Anfang im Tabellennamen eingelesen welche neu hinzugefügt werden.
Das macht wesentlich weniger Codepflegearbeit Die 4 bedeutet die Anzahl der Zeichen. richtig?

Das baue ich so ein.

Der Listindex soll am Anfang leer sein, dafür habe ich eine Aktualisierung zusätzlich per Click eingebaut.

Dies weil verschiedene Leute daran arbeiten und wenn sich Veränderungen ergeben haben in den Auswahl Spalten der Listen
sollen sie gezwungen sein zuerst die Aktulisierung durchzuführen bevor sie auswerten können.

Oder habe ich das mit dem Listindex falsch verstanden? ?

Habe gerade nur schnell Mittag daher baue ich dies erst heute Abend mal so ein und schaue was passiert.

Ich melde mich dann heute Abend wieder.

Lieben Dank erst mal für deine Mühe

LG

Knibbli
Bitte warten ..
Mitglied: 76109
02.08.2010 um 15:54 Uhr
Hallo Knibbli!

Zitat von Knibbli:
If Left(WS.Name, 4) Like "Typ-" Then .AddItem WS.Name

ist ne super Idee, somit werden dann auch die Tabellenblätter mit diesem Anfang im Tabellennamen eingelesen welche neu
hinzugefügt werden.
Das macht wesentlich weniger Codepflegearbeit Die 4 bedeutet die Anzahl der Zeichen. richtig?
Richtig. Dachte ich mir, dass Du das gut findest
Der Listindex soll am Anfang leer sein, dafür habe ich eine Aktualisierung zusätzlich per Click eingebaut.

Dies weil verschiedene Leute daran arbeiten und wenn sich Veränderungen ergeben haben in den Auswahl Spalten der Listen
sollen sie gezwungen sein zuerst die Aktulisierung durchzuführen bevor sie auswerten können.

Oder habe ich das mit dem Listindex falsch verstanden? ?
Nö, dass hast Du völlig richtig verstanden
Lieben Dank erst mal für deine Mühe
Gern geschehen.

Gruß Dieter
Bitte warten ..
Mitglied: Knibbli
02.08.2010 um 19:50 Uhr
So, Dieter .....

Bin wieder da Habe den Code von dir eingebaut und funktioniert super,


Nun zur Filterung 2 Variante?

Dieser Filterung

01.
 If Left(WS.Name, 4) Like "Typ-" Then .AddItem WS.Name 
einzufügen bringt ja nun dann bestimmt nichts , ..... da es ja irgendwie auf die Filterung 1 Typ ankommt?


Hast du eine Idee ? Schritt für Schritt könnte ich es bestimmt verstehen *bettel bettel *


Hier noch mal der jetzige Code.


Lieb Grüß

Knibbli


01.
 
02.
Private Sub neuladen_Click() 
03.
    Typ_befüllen 
04.
    Variante_befüllen 
05.
    End Sub 
06.
 
07.
Private Sub Typ_Change() 
08.
    Filtern 
09.
End Sub 
10.
 
11.
Private Sub Variante_Change() 
12.
    Filtern 
13.
End Sub 
14.
 
15.
Public Sub Typ_befüllen() 
16.
    Dim WS As Worksheet 
17.
    With ThisWorkbook.Sheets("Auswertung").Typ 
18.
       .Clear 
19.
        For Each WS In ThisWorkbook.Worksheets 
20.
            If Left(WS.Name, 4) Like "Typ-" Then .AddItem WS.Name 
21.
        Next WS 
22.
        .ListIndex = -1 
23.
    End With 
24.
End Sub 
25.
 
26.
   
27.
 
28.
 
29.
Public Sub Variante_befüllen() 
30.
    Dim a As Range 
31.
    Dim i As Integer 
32.
    Dim WS As Worksheet 
33.
    With ThisWorkbook.Sheets("Auswertung").Variante 
34.
        .Clear 
35.
        For Each WS In ThisWorkbook.Worksheets 
36.
            If WS.Name = "Typ-1" Or WS.Name = "Typ-2" Or WS.Name = "Typ-3" Or WS.Name = "Typ-4" Or WS.Name = "Typ-5" Then 
37.
                For Each a In WS.Range("A3:A1000") 
38.
                    If a <> "" Then 
39.
                        For i = 0 To .ListCount - 1 
40.
                            If InStr(1, .List(i), a, 1) <> 0 Then GoTo Weiter 
41.
                        Next i 
42.
                        .AddItem a 
43.
                    End If 
44.
Weiter: 
45.
                Next a 
46.
            End If 
47.
        Next WS 
48.
    End With 
49.
End Sub 
50.
 
51.
 
52.
 
53.
 
54.
Public Sub Filtern() 
55.
    Dim a As Range 
56.
    Dim b As Range 
57.
    Dim Typ As String 
58.
    Dim zeile As Integer 
59.
    Dim WS As Worksheet 
60.
    zeile = 2 
61.
    With ThisWorkbook.Sheets("Auswertung") 
62.
        .Range("A2:P35").ClearContents 
63.
        If .Variante = "" Or .Typ = "" Then Exit Sub 
64.
        Typ = .Typ 
65.
        Set WS = ThisWorkbook.Sheets(Typ) 
66.
                For Each a In WS.Range("A3:A1000") 
67.
                        If a <> "" And InStr(1, .Variante, a, 1) <> 0 Then 
68.
                            For Each b In .Range("B2:B1000") 
69.
                                If b <> "" And InStr(1, b, a.Offset(0, 2), 1) <> 0 Then 
70.
                                .Cells(zeile - 1, 4) = .Cells(zeile - 1, 4) + a.Offset(0, 4) 
71.
                                .Cells(zeile - 1, 5) = .Cells(zeile - 1, 5) + a.Offset(0, 5) 
72.
                                GoTo Weiter 
73.
                                End If 
74.
                            Next b 
75.
                            .Cells(zeile, 1) = a.Offset(0, 27) 
76.
                            .Cells(zeile, 2) = a 
77.
                            .Cells(zeile, 3) = a.Offset(0, 1) 
78.
                            .Cells(zeile, 4) = a.Offset(0, 2) 
79.
                            .Cells(zeile, 5) = a.Offset(0, 3) 
80.
                            .Cells(zeile, 6) = a.Offset(0, 4) 
81.
                            .Cells(zeile, 7) = a.Offset(0, 5) 
82.
                            .Cells(zeile, 8) = a.Offset(0, 26) 
83.
                            .Cells(zeile, 9) = a.Offset(0, 6) 
84.
                            .Cells(zeile, 10) = "=IF(RC[-2]>0,R2C21,"""")" 
85.
                            .Cells(zeile, 11) = "=IF(RC[-2]>0,INDEX('x2'!R5C3:R25C6,MATCH(RC[-1],'x2'!R5C3:R25C3,0),MATCH(RC[-2],'x2'!R5C3:R5C6,0)),"""")" 
86.
                            .Cells(zeile, 12) = "=IF(RC[-2]="""","""",IF(RC[-11]=""Typ-1"",INDEX('Typ-1'!R2C2:R72C28,MATCH(RC[-9],'Typ-1'!R2C2:R72C2,0),MATCH(RC[-2],'Typ-1'!R2C2:R2C28,0)),IF(RC[-11]=""Typ-2"",INDEX('Typ-2'!R2C2:R78C[16],MATCH(RC[-9],'Typ-2'!R2C2:R78C2,0),MATCH(RC[-2],'Typ-2'!R2C2:R2C28,0)),IF(RC[-11]=""Typ-3"",INDEX('Typ-3'!R2C2:R102C[16],MATCH(RC[-9],'Typ-3'!R2C2:R102C2,0),MATCH(RC[-2],'Typ-3'!R2C2:R2C28,0)),IF(RC[-11]=""Typ-4"",INDEX('Typ-4'!R2C2:R102C[16],MATCH(RC[-9],'Typ-4'!R2C2:R102C2,0),MATCH(RC[-2],'Typ-4'!R2C2:R2C28,0)),IF(RC[-11]=""Typ-5"",INDEX('Typ-5'!R2C2:R104C[16],MATCH(RC[-9],'Typ-5'!R2C2:R104C2,0),MATCH(RC[-2],'Typ-5'!R2C2:R2C28,0)),""""))))))" 
87.
                            .Cells(zeile, 13) = "=IF(RC[-3]="""","""",IF(AND(RC[-6]>0,RC[-1]>0),INDEX('x3'!R11C2:R40C23,MATCH((INDEX('x3'!R11C2:R40C2,MATCH(SMALL('x3'!R11C2:R40C2,COUNTIF('x3'!R11C2:R40C2,""<=""&RC[-6])),'x3'!R11C2:R40C2,0))),'x3'!R11C2:R40C2,0),MATCH(RC[-3],'x3'!R11C2:R11C23,0)),""""))" 
88.
                            .Cells(zeile, 14) = "=IF(OR(RC[-4]=0,RC[-4]=""""),"""",RC[-4]*R1C14)" 
89.
                            .Cells(zeile, 15) = "0" 
90.
                            .Cells(zeile, 16) = "=IF(RC[-1]>0,RC[-1]*RC[-8],"""")" 
91.
                            zeile = zeile + 1 
92.
                        End If 
93.
Weiter: 
94.
                Next a 
95.
    End With 
96.
End Sub 
97.
 
Bitte warten ..
Mitglied: 76109
02.08.2010 um 21:51 Uhr
Hallo Knibbli!

Die Routine "Variante" befüllen macht so keinen Sinn, da in der Typ-Box ja noch nix ausgewählt wurde.

Ich stelle mir den Ablauf in etwa so vor:
1. Mit "NeuLaden_Click, wird durch Aufruf der Routine "Typ_befuellen" die Typ-Box initialisiert und die Variante-Box mit Clear gelöscht und fertig.
2. Bei Auswahl eines Typ's in der TypBox, wird über die "Typ_Change"-Routine die Variante-Box initialisiert.

Das wäre zunächst meine Vorstellung vom Ablauf. Da, wie Du heute morgen geschrieben hast, die Typ-Box keine Vorauswahl haben soll (List.Index = 0), muss also beim initialisieren der Typ-Box (Neuladen) verhindert werden, dass die Variante-Box initialisiert wird.

Das sollte dann in etwa so funktionieren:
01.
Option Explicit 
02.
Option Compare Text 
03.
 
04.
Private Sub NeuLaden_Click() 
05.
    Variante.Clear 
06.
    Call Typ_Befuellen 
07.
End Sub 
08.
 
09.
Private Sub Typ_Change() 
10.
    If Typ.Text <> "" Then Call Variante_Befuellen 
11.
End Sub 
12.
   
13.
Private Sub Variante_Change() 
14.
    'Filtern 
15.
End Sub 
16.
 
17.
Private Sub Typ_Befuellen() 
18.
    Dim WS As Worksheet 
19.
    With Typ 
20.
       .Clear 
21.
        For Each WS In ThisWorkbook.Worksheets 
22.
            If Left(WS.Name, 4) Like "Typ-" Then .AddItem WS.Name 
23.
        Next WS 
24.
       .ListIndex = -1 
25.
    End With 
26.
End Sub 
27.
 
28.
Private Sub Variante_Befuellen() 
29.
    Dim a As Range 
30.
    With Variante 
31.
       .Clear 
32.
        For Each a In Sheets(Typ.Text).Range("A3:A1000") 
33.
            If a <> "" Then .AddItem a 
34.
        Next 
35.
       .ListIndex = -1 'oder 1. Eintrag mit Index 0? 
36.
    End With 
37.
End Sub
Noch als Anmerkung
Wenn Du die Steuerelemente anwählst, dann kannst Du das nur, wenn Du dich in dem Activen Sheet befindest, insofern benötigst Du kein ThisWorkbook und Sheet-Name. D.h. Du brauchst die Steuerelemente nur mit ihrem Namen anzusprechen. Ebenso machen Public-Anweisungen in Tabellenblatt-Codes keinen Sinn, da Du diese Funktionen nur innerhalb der aktuellen Codeseite verfügbar sind. Public geht nur in Modulen oder Klassenmodulen, wobei eine einfache "Sub Irgendwas" in einem Modul schon als Public in der aktuellen Arbeitsmappe verfügbar ist, allerdings sind Globale Variablen in Modulen nur mit der Public-Anweisung in der gesamten Arbeitsmappe verfügbar. Auch würde ich generell davon absehen, Umlaute in Codes (Funktionsnamen, Variablen...) zu verwenden.

Gruß Dieter

PS. Oweh Oweh... In der Zwischenzeit versuche ich mal die Filterfunktion zu verstehen
Bitte warten ..
Mitglied: Knibbli
03.08.2010 um 00:04 Uhr
Hallö Dieter

Manno, das ist ja Klasse.

Hätte ich geahnt, dass du heute Abend da schon wieder dran feilst
dann hätte ich mir ne Menge Tüftelarbeit gespart.

Hatte, mit Hilfe eines anderen Forums, noch ne Idee bekommen......

... musste damit aber den Umweg über Modul gehen, damit dann die anderen Sachen weiterhin funktionieren.

z.B. Public Sub Typ_befüllen() hatte ich dann über Modul angesrochen und dann im Blatt selbst die Typ_Change geschrieben.


Das hier, von dir, ist ja noch viel kürzer und klarer und passt ohne extra Modul meiner Click Buttons

Habe alles so eingebaut mit ein paar klitzkleinen Änderungen Natürlich habe ich die Umlaute auch raus genommen.

Da habe ich im Stress gar nicht dran gedacht

Deine Private Sub Variante_Befuellen() habe ich so gändert, dass nur einmal der Wert Auswählbar ist, auch wenn dreifach in der Liste.
Falls ich da unnötig mehr im Code rein getan habe............. kannst mich bitte bitte korrigieren !



01.
Option Explicit 
02.
Option Compare Text 
03.
 
04.
Private Sub NeuLaden_Click() 
05.
    Variante.Clear 
06.
    Typ_Befuellen 
07.
End Sub 
08.
 
09.
Private Sub Typ_Change() 
10.
    If Typ.Text <> "" Then Call Variante_Befuellen 
11.
End Sub 
12.
   
13.
Private Sub Variante_Change() 
14.
    Filtern 
15.
End Sub 
16.
 
17.
Private Sub Typ_Befuellen() 
18.
    Dim WS As Worksheet 
19.
    With Typ 
20.
       .Clear 
21.
        For Each WS In ThisWorkbook.Worksheets 
22.
            If Left(WS.Name, 4) Like "Typ-" Then .AddItem WS.Name 
23.
        Next WS 
24.
       .ListIndex = -1 
25.
    End With 
26.
End Sub 
27.
Private Sub Variante_Befuellen() 
28.
    Dim a As Range 
29.
    Dim i As Integer 
30.
    With Variante 
31.
       .Clear 
32.
        For Each a In Sheets(Typ.Text).Range("A4:A1000") 
33.
                    If a <> "" Then 
34.
                        For i = 0 To .ListCount - 1 
35.
                            If InStr(1, .List(i), a, 1) <> 0 Then GoTo Weiter 
36.
                        Next i 
37.
                        .AddItem a 
38.
                    End If 
39.
Weiter: 
40.
                Next a 
41.
    End With 
42.
End Sub

##9206cb| PS : Der Code im Filter funktioniert alles soweit wie ich getestet habe

Weiß nur nicht ob mans besser machen kann.

Ich denke um da leichter durchzusteigen kann ich dir besser gerne mal die Datei zukommen lassen da ich noch mehr Excelformeln in den VBA code integrieren muss ##

Bis dahin wünsche ich erst mal eine gute Nacht .....

##9206cb| und nochmals vielen Lieben Dank für deine Hilfe und deinen Anmerkungen damit ich die Codes besser verstehe und lernen kann. ##

Muss Morgen wieder zur Arbeit raus.

LG

Knibbli
Bitte warten ..
Mitglied: 76109
03.08.2010 um 09:39 Uhr
Hallo Knibbli!

Hoffe, Du hast noch genügend Schlaf gefunden

Jetzt verstehe ich die For-Schleife für AddItem. Stand ich wohl etwas auf dem Schlauch

Aber anstelle von InStr kannst Du auch den Like-Operator verwenden, wobei am Blattanfang die Option "Option Compare Text" stehen muss, wenn NICHT zwischen Klein/Groß-Schreibung unterschieden werden soll. Außerdem stehen Dir auch Wildcardszeichen zur Verfügung (siehe Like-Operator) z.B.:
If "Test String" Like "Test*" Then...
oder
If "Test String" Like "*String" Then...
oder
If "Ein Test String" Like "*Test*" Then...
usw.

Einige Leute sind der Meinung, dass Goto-Anweisungen von einem schlechten Programmierstil zeugen. Der Meinung schließe ich mich nicht an und finde die GoTo-Anweisung in diesem Fall als angebracht. Alternativ könnte man es auch so machen:
01.
Private Sub Variante_Befuellen() 
02.
    Dim a As Range, AddList As Boolean, i As Integer 
03.
    With Variante 
04.
       .Clear 
05.
        For Each a In Sheets(Typ.Text).Range("A3:A1000") 
06.
            If a <> "" Then 
07.
                AddList = True 
08.
                For i = 0 To .ListCount - 1 
09.
                    If .List(i) Like a Then AddList = False:  Exit For 
10.
                Next 
11.
                If AddList Then .AddItem a 
12.
            End If 
13.
        Next 
14.
    End With 
15.
End Sub
Noch ein Hinweis zu Formeln in Zellen schreiben. Das geht z.B. so:
Range("A1").Formula = "=IF(B1<>0,1,0)"

Wenn ich mir die Filter-Funktion etwas genauer angesehen habe, dann melde ich mich wieder

Gruß Dieter
Bitte warten ..
Mitglied: 76109
03.08.2010 um 11:52 Uhr
Hallo nochmal!

So, hier nochmal das Ganze mit umgebauter Filterfunktion (hoffe ohne Fehler ):
01.
Option Explicit 
02.
Option Compare Text 
03.
 
04.
Private Sub NeuLaden_Click() 
05.
    Variante.Clear 
06.
    Call Typ_Befuellen 
07.
End Sub 
08.
 
09.
Private Sub Typ_Change() 
10.
    If Typ.Text <> "" Then Call Variante_Befuellen 
11.
End Sub 
12.
   
13.
Private Sub Variante_Change() 
14.
    Range("A2:P35").ClearContents 
15.
    If Variante.Text <> "" Then Call Filtern 
16.
End Sub 
17.
 
18.
Private Sub Typ_Befuellen() 
19.
    Dim WS As Worksheet 
20.
    With Typ 
21.
       .Clear 
22.
        For Each WS In ThisWorkbook.Worksheets 
23.
            If Left(WS.Name, 4) Like "Typ-" Then .AddItem WS.Name 
24.
        Next WS 
25.
       .ListIndex = -1 
26.
    End With 
27.
End Sub 
28.
 
29.
Private Sub Variante_Befuellen() 
30.
    Dim a As Range, i As Integer 
31.
    With Variante 
32.
       .Clear 
33.
        For Each a In Sheets(Typ.Text).Range("A3:A1000") 
34.
            If a <> "" Then 
35.
                For i = 0 To .ListCount - 1 
36.
                    If .List(i) Like a Then GoTo Weiter 
37.
                Next i 
38.
               .AddItem a 
39.
            End If 
40.
Weiter: 
41.
        Next a 
42.
    End With 
43.
End Sub 
44.
 
45.
 
46.
Private Sub Filtern() 
47.
    Dim a As Range 
48.
    Dim b As Range 
49.
    Dim i As Integer 
50.
    Dim Zeile As Integer 
51.
    Dim Spalten As Variant 
52.
    Dim WS As Worksheet 
53.
         
54.
    Set WS = Sheets(Typ.Text) 
55.
     
56.
    Zeile = 2 
57.
     
58.
    Spalten = Array(27, 0, 1, 2, 3, 4, 5, 26, 6) 
59.
     
60.
    For Each a In WS.Range("A3:A1000") 
61.
        If a Like Variante.Text Then 
62.
            For Each b In Range("B2:B1000") 
63.
                If b <> "" And b Like a.Offset(0, 2) Then 
64.
                    Cells(Zeile - 1, "D") = Cells(Zeile - 1, "D") + a.Offset(0, 4) 
65.
                    Cells(Zeile - 1, "E") = Cells(Zeile - 1, "E") + a.Offset(0, 5) 
66.
                    GoTo Weiter 
67.
                End If 
68.
            Next b 
69.
             
70.
            For i = 0 To UBound(Spalten):  Cells(Zeile, i + 1) = a.Offset(0, Spalten(i)):  Next 'Init Spalten A - I 
71.
             
72.
            Cells(Zeile, "J").Formula = "=IF(RC[-2]>0,R2C21,"""")" 
73.
            Cells(Zeile, "K").Formula = "=IF(RC[-2]>0,INDEX('x2'!R5C3:R25C6,MATCH(RC[-1],'x2'!R5C3:R25C3,0),MATCH(RC[-2],'x2'!R5C3:R5C6,0)),"""")" 
74.
            Cells(Zeile, "L").Formula = "=IF(RC[-2]="""","""",IF(RC[-11]=""Typ-1"",INDEX('Typ-1'!R2C2:R72C28,MATCH(RC[-9],'Typ-1'!R2C2:R72C2,0),MATCH(RC[-2],'Typ-1'!R2C2:R2C28,0)),IF(RC[-11]=""Typ-2"",INDEX('Typ-2'!R2C2:R78C[16],MATCH(RC[-9],'Typ-2'!R2C2:R78C2,0),MATCH(RC[-2],'Typ-2'!R2C2:R2C28,0)),IF(RC[-11]=""Typ-3"",INDEX('Typ-3'!R2C2:R102C[16],MATCH(RC[-9],'Typ-3'!R2C2:R102C2,0),MATCH(RC[-2],'Typ-3'!R2C2:R2C28,0)),IF(RC[-11]=""Typ-4"",INDEX('Typ-4'!R2C2:R102C[16],MATCH(RC[-9],'Typ-4'!R2C2:R102C2,0),MATCH(RC[-2],'Typ-4'!R2C2:R2C28,0)),IF(RC[-11]=""Typ-5"",INDEX('Typ-5'!R2C2:R104C[16],MATCH(RC[-9],'Typ-5'!R2C2:R104C2,0),MATCH(RC[-2],'Typ-5'!R2C2:R2C28,0)),""""))))))" 
75.
            Cells(Zeile, "M").Formula = "=IF(RC[-3]="""","""",IF(AND(RC[-6]>0,RC[-1]>0),INDEX('x3'!R11C2:R40C23,MATCH((INDEX('x3'!R11C2:R40C2,MATCH(SMALL('x3'!R11C2:R40C2,COUNTIF('x3'!R11C2:R40C2,""<=""&RC[-6])),'x3'!R11C2:R40C2,0))),'x3'!R11C2:R40C2,0),MATCH(RC[-3],'x3'!R11C2:R11C23,0)),""""))" 
76.
            Cells(Zeile, "N").Formula = "=IF(OR(RC[-4]=0,RC[-4]=""""),"""",RC[-4]*R1C14)" 
77.
            Cells(Zeile, "O") = "0" 
78.
            Cells(Zeile, "P").Formula = "=IF(RC[-1]>0,RC[-1]*RC[-8],"""")" 
79.
            Zeile = Zeile + 1 
80.
        End If 
81.
Weiter: 
82.
    Next a 
83.
End Sub
wobei noch die Codezeile 74 durch diese zu ersetzen wäre:
01.
Cells(Zeile, "L").Formula = "=IF(RC[-2]="""","""",INDEX('" & Typ.Text & "'!R2C2:R72C28,MATCH(RC[-9],'" & Typ.Text & "'!R2C2:R72C2,0),MATCH(RC[-2],'" & Typ.Text & "'!R2C2:R2C28,0)))"
Ohne entsprechende Daten kann ich es nicht testen. Von daher überlasse ich das gerne Dir

Gruß Dieter
Bitte warten ..
Mitglied: Knibbli
03.08.2010 um 22:54 Uhr
Hallöööööööööööö

Nun versuche ich dir zum dritten Mal zu antworten. Irgendwie klicke ich ständig ne falsche Taste und alles ist wieder weg

Nun aber ......

Nach so was wie "& Typ.Text & " hatte ich schon gesucht, da mir die Formel viel zu undynamisch war.
Bin bei der Auswahlliste nicht hinter gekommen, dass ich es auch in der Formel verwenden kann *schäm*

Das war nun das einzige was noch gepflegt hätte werden müssen, nachdem du schon die Auswahl mit Typ- dynamisiert hattest .

Irgendwie ist eigentlich nun alles nicht mehr so wie es war ........ sozusagen komplett neu.
Ist nun richtig übersichtlich, so dass man da auch wesentlich besser durchsteigt.
Das du so viel geholfen hast . Ich freu mich so und habe viel dazu gelernt als Anfänger

Habe alles soweit eingebaut und nur meinen eigenen Fehler B2 auf B3 geändert.
Alles ausgetestet und geprüft.
Es klappt alles wunderbar und ich werde damit dann keine Arbeit mehr haben solange die Leute sich bei neuen Tabellenblättern, welche zusätzlich ausgewertet werden sollen, an " Typ-" halten !

Nun habe ich leider ein neues Problem mit meinem E-Mail -Versand den ich dort auch mit eingebaut habe. Dieser funktioniert eigentlich perfekt in Excel 2007 und in Excel 2010 (Beta).

Nur leider ........ bei Excel 2003 macht er es nicht.

Dafür werde ich aber lieber eine Neue Frage eröffnen und diesen Beitragsverlauf als überaus vollkommen Zufrieden gelöst markieren.

Ich drück Dich und ich kann gar nicht oft genug Danke sagen

LG

Knibbli, die heute Abend nicht solange macht

PS:
Zitat
Einige Leute sind der Meinung, dass Goto-Anweisungen von einem schlechten Programmierstil zeugen. Der Meinung schließe ich mich nicht an und finde die GoTo-Anweisung in diesem Fall als angebracht.
Zitat Ende
*Grins* ich als absoluter VBA Anfänger und
ohne Schulenglisch (übersetze mir alles beim rumtüfteln, was ich nicht kenne, mit Übersetzer)
habe noch gar keinen Programmierstil, daher kann ich auch noch keinen schlechten Programmierstil haben *
Bitte warten ..
Mitglied: 76109
04.08.2010 um 00:02 Uhr
Hallo Knibbli!

Also, für ne Anfängerin hast Du zum Thread-Begin aber schon einen sehr guten Code geschrieben. Syntaktisch gut und Stilformat wie ein Profi. Daran gibt es nix auszusetzen. Deine Formeln zeugen ebenfalls von entsprechendem Know How. Alles andere ist Routine und mit der Zeit wirst Du ein echter Profi, da bin ich mir sicher. Was mich auch beeindruckt hat, ist die Tatsache, dass Du alles was ich dazu beigetragen habe, auf Anhieb sehr gut verstanden und umgesetzt hast. Insofern weiter so

Zitat von Knibbli:

Ich drück Dich und ich kann gar nicht oft genug Danke sagen
Gern geschehen und Danke für's drücken, hat gut getan

Knibbli, die heute Abend nicht solange macht
Yepp, ich mach mich jetzt auch vom Acker

LG Dieter

PS.
Nun versuche ich dir zum dritten Mal zu antworten. Irgendwie klicke ich ständig ne falsche Taste und alles ist wieder weg
Das ist mir, wie den meisten auch schonmal passiert. Deshalb ist es ratsam, den Text erst in einem Text-Editor zu erstellen und dann in das Kommentarfeld zu kopieren.
Bitte warten ..
Mitglied: Knibbli
04.08.2010 um 21:14 Uhr
....und noch mal Hallö Dieter

Danke des Lobes Aber ich schreibe ja sowas als Anfänger natürlich nicht selbst.

Ich schaue was es so gibt im WWW und versuche es dann entsprechend passend umzuschreiben.

Einzelne Schritte, welche ich selbst nach langem tüfteln und nachlesen nicht hinbekomme, zeichne ich,wenn möglich, mit Macro auf und nehme mir genau das Teilstück raus,
was ich brauche und setze es in die Stelle des aktiven Code wo es hin soll.

So habe ich z.B. meine Excelformeln schnell in VBA umgeschrieben bekommen Wobei ich nun von Dir gelernt habe wie es besser geht !

Wenn all dies dann nichts weiter bringt, dann frage ich nach, ... so wie hier.

Nur habe ich bisher noch nie so schnell dazu gelernt, wie bei deinen ausführlichen Antworten und guten Anmerkungen

Meine ersten Erfahrungen mit EDV war Anfang der 90iger, Da hat man noch unter DOS viel gemacht.
Bisher habe ich in Access (seit ca.1998) und (Excel seit ca. 1996) meine Auswertungen ohne VBA gemacht.

Office 2007 hat mich dann ganz schön angenervt Anfangs, weil ich erst nix wieder gefunden habe. Der Mensch ist eben ein Gewohnheitstier

Ende der Neuziger und Anfang der 2000er habe ich mich viel mit HTML beschäftigt
und in dem Zusammenhang hier und da mal was mit Grafik, Java und Perl ausprobiert.
Dazu habe ich aber die letzten Jahre überhaupt keine Zeit mehr.

Ich denke, daher, dass ich gerne mal überall alles ausprobiere, weil ich wissen möchte wie es funktioniert was ich im Vordergrund benutze,
hat mich auch ohne "sprachliche" englischkenntnisse dazu gebracht
viele Zusammenhänge zwischen diesen Dingen oberflächlich zu erkennen und die EDV Sprache ein wenig besser für mich selbst zu verstehen.

grins* vorlesen darf ich die ganze englische EDV Sprache aber nicht *grins*


Nun zu was anderen,

Ich traue mich gar nicht zu fragen.

Aber..... wie würde der Code eigentlich aussehen wenn ich statt der zweiten Combobox (Variante) ein ListBox nehme, wo man dann mehr als ein Wert auswählen kann zum filtern ?

Würde das funktionieren ? Habe heute schon getüftelt aber ich bekomme die Werte da dann nicht rausgefiltert *schäm*


LIeb Grüß

Knibbli
Bitte warten ..
Mitglied: 76109
04.08.2010 um 23:34 Uhr
Hallo Knibbli!

Zitat von Knibbli:
Danke des Lobes Aber ich schreibe ja sowas als Anfänger natürlich nicht selbst.
Ich schaue was es so gibt im WWW und versuche es dann entsprechend passend umzuschreiben.
Das machst Du aber sehr geschickt
Einzelne Schritte, welche ich selbst nach langem tüfteln und nachlesen nicht hinbekomme, zeichne ich,wenn möglich, mit
Macro auf und nehme mir genau das Teilstück raus,
was ich brauche und setze es in die Stelle des aktiven Code wo es hin soll.
Das mach ich hin und wieder auch, wenn mir etwas gerade nicht einfällt (Alzheimer und so... ), oder bei Dingen, die ich auch noch nicht gemacht habe.
So habe ich z.B. meine Excelformeln schnell in VBA umgeschrieben bekommen Wobei ich nun von Dir gelernt habe wie es besser geht
Musst Du denn gleich alles veraten! Sollte doch ein Geheimnis bleiben

Wenn all dies dann nichts weiter bringt, dann frage ich nach, ... so wie hier.
Was für ein Glück, sonnst hätte ich ja Langeweile

Meine ersten Erfahrungen mit EDV war Anfang der 90iger, Da hat man noch unter DOS viel gemacht.
Bisher habe ich in Access (seit ca.1998) und (Excel seit ca. 1996) meine Auswertungen ohne VBA gemacht.
Na, dann besitzt Du doch schon ein gutes Basiswissen und musst es nur in VBA umsetzen.
Der Debugger im VBA-Editor ist ein sehr nützliches Werkzeug um Abläufe in Einzelschritten zu testen, Variablen einzusehen, Ausgaben in das DirektFenster zu schreiben z.B. zusammengesetzte Strings mit "Debug.Print "Text" & "Text".... Oder mal im Lokal-Fenster ein Range-Object ansehen z.B. "Set x = Range("A1")" und Klick auf die Variable x, dann siehst Du die ganze Datenstruktur, die so ein Range-Object beinhaltet. Ebenfalls eine gute Hilfe bietet ein Klick auf den Object-Katalog, in dem alle Funktionen und Konstanten aufgelistet werden und per Suchbegriff-Beispiele der einzelnen Funktionen angezeigt werden...
Office 2007 hat mich dann ganz schön angenervt Anfangs, weil ich erst nix wieder gefunden habe. Der Mensch ist eben ein Gewohnheitstier
Ich habe immer noch Office 2002, werde aber demnächst auf Excel 2010 umsteigen
Ende der Neuziger und Anfang der 2000er habe ich mich viel mit HTML beschäftigt
und in dem Zusammenhang hier und da mal was mit Grafik, Java und Perl ausprobiert.
Dazu habe ich aber die letzten Jahre überhaupt keine Zeit mehr.
Siehste, von HTML habe ich ganz ganz wenig Ahnung, von HTA ein bisschen, von Java und Perl gar keine Ahnung.
Ich denke, daher, dass ich gerne mal überall alles ausprobiere, weil ich wissen möchte wie es funktioniert was ich im
Vordergrund benutze,
Ich habe damals zu DOS-Zeiten (vergessen wann das war, Alzheimer...) mit Borland 'C' angefangen und bin dann aber, weil ich die Runtime-Bibliothek Schei.e fand, auf Assembler umgestiegen und habe meine eigene Runtime-Bibliothek geschrieben. Dadurch habe ich sehr viel über den Ablauf im Hintergrund an der Quelle erfahren. Das ganze allerdings nur für den privaten Hausgebrauch. Funktionen faszinieren mich, von daher passt Excel und VBA ganz gut ins Schema. Mit VBA habe ich mehr oder weniger nur angefangen, weil ich ein gutes Programm für meine Depot-Verwaltung gesucht habe, aber keines der kommerziellen Programme meine persönliche Anforderungen zufriedenstellte. Anfangs hatte ich mir einen abgebrochen und stand als kurz vor einem Nervenzusammenbruch, aber dann - ab einem gewissen Zeitpunkt - liefs auf einmal und ich konnte all meine Ideen zu meiner vollsten Zufriedenheit umsetzen.
hat mich auch ohne "sprachliche" englischkenntnisse dazu gebracht
viele Zusammenhänge zwischen diesen Dingen oberflächlich zu erkennen und die EDV Sprache ein wenig besser für mich
selbst zu verstehen.
Das hat etwas mit Intelligenz zu tun, entweder man hat sie oder man hat sie nicht. Das kann man jedenfalls nicht lernen...
grins* vorlesen darf ich die ganze englische EDV Sprache aber nicht *grins*
Hast Du es schonmal versucht, vielleicht hilft es ja beim Einschlafen

Nun zu was anderen,

Ich traue mich gar nicht zu fragen.
Achgottele

Aber..... wie würde der Code eigentlich aussehen wenn ich statt der zweiten Combobox (Variante) ein ListBox nehme, wo man
dann mehr als ein Wert auswählen kann zum filtern ?

Würde das funktionieren ? Habe heute schon getüftelt aber ich bekomme die Werte da dann nicht rausgefiltert
*schäm*
Das habe ich jetzt nicht ganz verstanden. Eine ListBox macht schon Sinn. Da kannst Du zwar mehrere Spalten anzeigen lassen, aber auswählen kannst Du da ebenfalls nur eine Zeile bzw. Eintrag oder ist mir da irgendwas entgangen?.
Also bitte etwas genauer erklären, so als wäre ich gerade mal 6 Jahre alt, vielleicht verstehe ich es dann?

Gruß Dieter
Bitte warten ..
Mitglied: Knibbli
05.08.2010 um 12:32 Uhr
Hallo Dieter

Ich antworte heute Abend ausführlicher.

Bei einer Listbox kann man mehr als 1 Eintrag auswählen wenn man in den Eigenschaften von Single auf Multi einstellt.


Wenn ich ihm im Standart der Listbox Single lasse liest er es auch aus, wenn ich 2 Werte aber auswähle dann funktioniert das ausfiltern aber nicht mehr.

If a Like Variante.Text Then

Die Filterfunktion müsste also alle angeklickten Werte zum Fitern benutzen. Jetzt geht es nur mit der Übergabe von einem Wert.

Ich steh da aufen Schlauch ....

LG

Knibbli
Bitte warten ..
Mitglied: 76109
05.08.2010 um 13:14 Uhr
Hallo Knibbli!

Aja stimmt. Das schiebe ich dann mal wieder auf Alzheimer

Habe ich auch noch nicht gemacht und muß mir das selbst erstmal ansehen, was und wie die Auswahl ausgelesen wird....

Das kann aber etwas dauern, habe heute einiges zu Tun

Gruß Dieter
Bitte warten ..
Mitglied: 76109
05.08.2010 um 17:47 Uhr
Hallo Knibbli!

Also, ich habe mir die ListBox mit Mehrfachauswahl (MultiSelect) mal angesehen.

Du kannst zwar mehrere Einträge markieren/demarkieren, aber die Change-Routine wird für jedes markieren/demarkieren eines Eintrages einzeln aufgerufen. Dabei ist <ListBox.Value = Null> und <ListBox.Text = "">.

Dir bleibt daher nur die Möglichkeit, den ListIndex bei jedem Klick einzeln auszuwerten, wobei Du aber keine Möglichkeit hast, zu erkennen ob jetzt markiert/demarkiert wurde.

Den Auswahl-Text kannst Du nur per "List" und "ListIndex" auslesen z.B.:
01.
Private Sub ListBox1_Change() 
02.
    Dim Text As String 
03.
 
04.
    Text = ListBox1.List(ListIndex, 0)  'List(Zeile, Spalte) 
05.
End Sub
Inwiefern Dir das bei der Filterfunktion nützlich sein soll, ist mir noch völlig unklar

Gruß Dieter
Bitte warten ..
Mitglied: Knibbli
05.08.2010 um 19:44 Uhr
Hallo Dieter

mmm Schade.

Die Listbox kann ich übrigens so einstellen, dass ich sehen kann was ich ausgewählt habe.

Der Sinn ist der, dass vom ausgewählten Typ zur gleichen Zeit verschiedene Variantenwerte ausgewertet werden sollen, aber nicht alle.

Daher die erste Auswahl als ein Wert auswählbar und die zweite Auswahl als Multiauswahl.

Oder hast du eine andere Idee, wie man das hinbekommen kann ?


Lieb Grüß

Knibbli
Bitte warten ..
Mitglied: 76109
05.08.2010 um 21:23 Uhr
Zitat von Knibbli:
Die Listbox kann ich übrigens so einstellen, dass ich sehen kann was ich ausgewählt habe.
Sehen kann ich es auch, aber das ändert leider nix an der Tatsache, dass ich pro Klick nur einen Index bekomme.

Der Sinn ist der, dass vom ausgewählten Typ zur gleichen Zeit verschiedene Variantenwerte ausgewertet werden sollen, aber
nicht alle.

Daher die erste Auswahl als ein Wert auswählbar und die zweite Auswahl als Multiauswahl.

Oder hast du eine andere Idee, wie man das hinbekommen kann ?
Yepp, genauso, wie Du das gerne hättest, wobei ich dann aber in der Variante-ListBox die <ListStyle = fmListStyleOption> mit <MultiSelect = fmMultiSelectMulti> - Variante wählen würde. CheckBoxen mit/ohne Häkchen machen sich irgendwie besser, finde ich zumindest

Damit das funktioniert, habe ich mir einen Trick ausgedacht Aber in jedem Fall brauchst Du noch einen extra Button, um die Auswahl zu bestätigen und die Filter-Funktion zu starten.


Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Microsoft Office
gelöst Verschieben von Zellinformation in andere Spalte (per VBA) excel 2010 (5)

Frage von thomas1972 zum Thema Microsoft Office ...

VB for Applications
Bilder vom LDAP in VBA - Excel (3)

Frage von Roadrunner777 zum Thema VB for Applications ...

VB for Applications
gelöst VBA Excel Recordset - Abfrage auf SQL-Server (4)

Frage von Aximand zum Thema VB for Applications ...

VB for Applications
gelöst Excel VBA Eine oder mehrere Zellen Verschieben (2)

Frage von batchnewbie zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...