Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1680to1684
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

In UserForm mit Autofilter nur gefilterte anzeigen

In UserForm mit Autofilter nur gefilterte anzeigen
08.03.2019 16:16:05
Heinz
Hallo Leute im Forum
In einer UserForm wird über eine Combobox Werte von Spalte A gefiltert.
das funktioniert auch.
Nur möchte ich das in einer anderen ComboBox ("ComboBoxArtikelnummer") nur gefilterte Werte angezeigt bekomme.
  • 
    Private Sub ComboBoxLinie_Change()' Mit dieser ComboBox wird nach Spalte A gefiltert
    Worksheets("Artikelliste").Range("A2:DH5000").AutoFilter Field:=1, Criteria1:=ComboBoxLinie. _
    Value
    End Sub
    


  • Könnte mir dazu bitte jemand weiterhelfen?
    Danke, Heinz

    14
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    Lösungdvroschlag
    08.03.2019 17:24:56
    Beverly
    Hi Heinz,
    versuche es mal nach diesem Prinzip:
        Dim rngZelle As Range
    For Each rngZelle In Range("A2:A5000").SpecialCells(xlCellTypeVisible)
    ComboBox2.AddItem rngZelle.Value
    Next rngZelle
    


    AW: Lösungdvroschlag
    08.03.2019 19:42:33
    Heinz
    Hallo Karin,
    Erstmals Danke für deine Hilfestellung.
    Leider bekomme ich jetzt den Fehler bei
  • ComboBoxArtikelnummer.AddItem rngZelle.Value

  • 
    Private Sub ComboBoxLinie_Change() ' Mit dieser ComboBox wird nach Spalte A gefiltert
    Dim rngZelle As Range
    For Each rngZelle In Range("A2:A5000").SpecialCells(xlCellTypeVisible)
    ComboBoxArtikelnummer.AddItem rngZelle.Value
    Next rngZelle
    'Worksheets("Artikelliste").Range("A2:DH5000").AutoFilter Field:=1, Criteria1:=ComboBoxLinie. _
    Value
    End Sub
    

  • Gruß, Heinz
    Anzeige
    Welchen Fehler? Beispielmappe hochladen - o.T.
    08.03.2019 21:08:23
    Beverly


    AW: Welchen Fehler? Beispielmappe hochladen - o.T.
    08.03.2019 21:51:03
    Heinz
    Hallo Karin,
    Anbei die Datei.
    Es werden in der "ComboBoxArtikelnummer" trotz Filter alle Werte angezeigt.
    https://www.herber.de/bbs/user/128240.xlsm
    Danke, Heinz
    So sollte es funktionieren
    08.03.2019 22:43:18
    Beverly
    Hi Heinz,
    du darfst keine RowSource für die ComboBoxArtikelnummer eintragen sondern musst die Liste mittels AddItem füllen. Ergänze dazu das UserForm_Activate Ereignis (nach dem Füllen der ComboCoxLinie!) mit diesem Code:
        Dim rngZelle As Range
    Dim lngLetzte As Long
    With Worksheets("Artikelliste")
    lngLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), _
    .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
    Me.ComboBoxArtikelnummer.Clear
    For Each rngZelle In .Range(.Cells(2, 2), _
    .Cells(lngLetzte, 2)).SpecialCells(xlCellTypeVisible)
    Me.ComboBoxArtikelnummer.AddItem rngZelle.Value
    Next rngZelle
    End With
    

    Ergänze außerdem die folgende Prozedur:
    Private Sub ComboBoxLinie_AfterUpdate()
    Dim rngZelle As Range
    Dim lngLetzte As Long
    With Worksheets("Artikelliste")
    lngLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), _
    .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
    Me.ComboBoxArtikelnummer.Clear
    For Each rngZelle In .Range(.Cells(2, 2), _
    .Cells(lngLetzte, 2)).SpecialCells(xlCellTypeVisible)
    Me.ComboBoxArtikelnummer.AddItem rngZelle.Value
    Next rngZelle
    End With
    End Sub
    


    Anzeige
    AW: So sollte es funktionieren
    09.03.2019 07:07:19
    Heinz
    Guten morgen Karin,
    So funktioniert es perfekt.
    Recht herzlichen Dank.
    Schönes Wochenende, Heinz
    AW: So sollte es funktionieren
    09.03.2019 08:59:45
    Heinz
    Hallo Karin,
    Bin jetzt draufgekommen, das die Zuordnung in TextBox 6 + 7 in Abhängigkeit von ComboBoxArtikelnummer nicht mehr stimmt.
    Also es werden andere Werte eingelesen.
    Wüsstest du was ich da jetzt ändern müsste?
    Danke, Heinz
    https://www.herber.de/bbs/user/128244.xlsm
    Der einfachste Weg...
    09.03.2019 10:54:26
    Beverly
    Hi Heinz,
    ...ist, wenn du in die 2. Spalte der ComboBoxArtikelnummer beim Einlesen mittels AddItem die laufende Zeilennummer einträgst - deine ComboBox ist ja bereits zweispaltig angelegt. Ergänze dazu in den beiden Prozeduren, in denen die ComboBox gefüllt wird diese Zeile:
            Me.ComboBoxArtikelnummer.List(Me.ComboBoxArtikelnummer.ListCount - 1, 1) = rngZelle.Row
    

    Dann kannst du die TextBoxen (und andere Steuerelemente) nach diesem Prinzip füllen:
    Dim lngZeile As Long
    lngZeile = ComboBoxArtikelnummer.List(ComboBoxArtikelnummer.ListIndex, 1)
    TextBox6 = Sheets("Artikelliste").Cells(lngZeile, 3)
    TextBox7 = Sheets("Artikelliste").Cells(lngZeile, 2)
    



    Anzeige
    AW: Der einfachste Weg...
    09.03.2019 11:54:20
    Heinz
    Hallo Karin,
    Egal wo ich deine Prozedur einfüge, bekomme ich immer einige Fehlermeldungen.
    Wärst du BITTE so nett und mir in der hochbeladenen Datei deine Prozeduren einzufügen.
    Danke, Heinz
    AW: Der einfachste Weg...
    09.03.2019 14:37:06
    Beverly
    Hi Heinz,
    ich würde fast annehmen, dass du nicht alle Hinweise aus meinem vorhergehenden Beitrag berücksichtigt hast.
    https://www.herber.de/bbs/user/128251.xlsm
    Übrigens: den Code für das Eintragen der Daten ins Tabellenblatt musst du nach demselben Schema anpassen.


    Anzeige
    AW: Der einfachste Weg...
    09.03.2019 16:51:49
    Heinz
    Hallo Karin,
    Du bist echt super !!!
    Recht herzlichen D A N K
    LG, Heinz
    AW: Der einfachste Weg...
    10.03.2019 11:19:15
    Heinz
    Hallo Karin,
    Teste jetzt schon seit gestern,deinen Code zum zurückschreiben.
    Entweder es wird mir falsch oder gar nicht eingetragen.
    Würde dich höfflichst ersuchen ob du mir auch hier dazu helfen könntest?
    Danke, Heinz
    'Werte in Tabelle Artikelliste zurückschreiben
    Private Sub CommandButtonEintragen_Click()
    Dim lngZeile As Long
    lngZeile = CLng(ComboBoxArtikelnummer.List(ComboBoxArtikelnummer.ListIndex, 1))
    TextBox6 = Sheets("Artikelliste").Cells(lngZeile, 3)
    TextBox7 = Sheets("Artikelliste").Cells(lngZeile, 2)
    Innenkaliber_KE_1 = Sheets("Artikelliste").Cells(lngZeile, 5)
    Box_6 = Sheets("Artikelliste").Cells(lngZeile, 6)
    End Sub
    

    Anzeige
    Mit deinem Code...
    10.03.2019 12:36:22
    Beverly
    Hi Heinz,
    ...trägst du doch die Daten aus den Zellen in die TextBoxen des UserForms ein. Du willst aber doch das Umgekehrte erreichen, musst also die beiden Seiten der Gleichung austauschen - so wird ein Schuh daraus:
    Sheets("Artikelliste").Cells(lngZeile, 3) = TextBox6
    

    usw. Das "Wohin" (Ziel) steht immer links und das "Woher" (Quelle) immer rechts vom Gleichheitszeichen - ist ein ganz einfaches mathematisches Prinzip. ;-)


    AW: Mit deinem Code...
    11.03.2019 08:41:51
    Heinz
    Hallo Karin,
    Erstmals recht herzlichen Dank für deine Engelsgeduld mit mir !!
    Jetzt wird mir so einiges klarer.Das werde ich mir dick hinter die Ohren schreiben.
    usw. Das "Wohin" (Ziel) steht immer links und das "Woher" (Quelle)
    immer rechts vom Gleichheitszeichen - ist ein ganz einfaches mathematisches Prinzip. ;-)
    
    Nochmals Danke, Karin
    Schöne grüsse, Heinz
    Anzeige

    303 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige