| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Listbox mit Filter (2812 / mal gelesen)
|
Volker E Mitglied Konstrukteur
Beiträge: 164 Registriert: 20.08.2012 Win 7 64 bit, Inventor 2015 Sp2 64 bit Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM Nvidia Quadro 4000 Space Explorer
|
erstellt am: 13. Sep. 2016 11:52 <-- editieren / zitieren --> Unities abgeben:
Hallo IV Gemeinde Hab da mal eine Frage zur Listbox, kann man in einer Listbox einen Auto-Filter einbauen so wie in Excel. Ich lese Daten aus Excel in eine Listbox auf meinen Formular ein das funktioniert soweit gut. Da es aber so viele Datensätze sind möchte ich diese filtern. Als Filter möchte ich den Inhalt der ersten 3 Spalten der Listbox nutzen. Mein Ansatz was bis jetzt funktioniert Code: Dim oxls As Object Dim oxlsdoc As Excel.Workbook Set oxls = CreateObject("Excel.Application") Set oxlsdoc = oxls.Workbooks.Open("D:\Makro\ERP Nachschlagewerk_Version_49.xls") With LisArtiklelnummern .ColumnCount = 8 .ColumnWidths = "3.0cm;1.0cm;2.8cm;2.0cm;3.0cm;3.2cm;3.5cm;15.0cm" .ColumnHeads = False .List = oxlsdoc.Sheets("Zusammenfassung").Range("B4:I262").value '.RowSource = oxlsdoc.Sheets("Zusammenfassung").Range("B2:H262") End With oxlsdoc.Close oxls.Quit Kann mir einer einen Tipp geben? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernoAn Mitglied
Beiträge: 164 Registriert: 16.01.2014
|
erstellt am: 15. Sep. 2016 13:04 <-- editieren / zitieren --> Unities abgeben: Nur für Volker E
Hallo Du meinst bestimmt Zeile 1-3? Mach doch Listbox Zeile1 anklicken liest Bereich "a:b" aus Excel aus Listbox Zeile2 anklicken liest Bereich "b:c" aus Excel aus Listbox Zeile3 anklicken liest Bereich "d:e" aus Excel aus jeweils eine verschiedene Subroutine Gruß Berno
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Volker E Mitglied Konstrukteur
Beiträge: 164 Registriert: 20.08.2012 Win 7 64 bit, Inventor 2015 Sp2 64 bit Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM Nvidia Quadro 4000 Space Explorer
|
erstellt am: 15. Sep. 2016 16:14 <-- editieren / zitieren --> Unities abgeben:
ich habe noch mal zu besseren Verständnis ein Bild angehängt. Ich möchte je eine Combobox über den drei ersten Spalten platzieren und mit deren Auswahl Ergebnis dann die Listeneinträge filtern. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernoAn Mitglied
Beiträge: 164 Registriert: 16.01.2014
|
erstellt am: 16. Sep. 2016 10:49 <-- editieren / zitieren --> Unities abgeben: Nur für Volker E
Hallo Das geht, den Autofilter von Excel benutzen, der Autofilter in Excel muß im Blatt gesetzt sein und dann von Inventor aus ansprechen mit
Code: .Range("A2:B36").AutoFilter Field:=1, Criteria1:="Blech"
und die Zellen dann mit
Code: oxlsdoc.Sheets("Zusammenfassung").Range("B4:I262").SpecialCells(xlCellTypeVisible)
einlesen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Volker E Mitglied Konstrukteur
Beiträge: 164 Registriert: 20.08.2012 Win 7 64 bit, Inventor 2015 Sp2 64 bit Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM Nvidia Quadro 4000 Space Explorer
|
erstellt am: 16. Sep. 2016 18:04 <-- editieren / zitieren --> Unities abgeben:
Hallo BernoAn es funktioniert so wie Du vorgeschlagen hast. Problem ist aber da die Excelliste auf dem Server liegt und dort mehrere aus der Av ständigt Einträge vornehmen möcht ich doch die List nur einlesen und dann die Einträge in der Listbox filtern damit wäre ich unabhänig von der Liste auf dem Server. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RolandD Mitglied
Beiträge: 533 Registriert: 07.01.2005 i7-9700k 32GB DDR4-RAM Nvidia RTX 2060 SSD 970 m.2 Win10-64 (21H2) AIP 2020.3 Dell U3417W
|
erstellt am: 16. Sep. 2016 18:43 <-- editieren / zitieren --> Unities abgeben: Nur für Volker E
|
Volker E Mitglied Konstrukteur
Beiträge: 164 Registriert: 20.08.2012 Win 7 64 bit, Inventor 2015 Sp2 64 bit Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM Nvidia Quadro 4000 Space Explorer
|
erstellt am: 17. Sep. 2016 11:57 <-- editieren / zitieren --> Unities abgeben:
|
BernoAn Mitglied
Beiträge: 164 Registriert: 16.01.2014
|
erstellt am: 19. Sep. 2016 08:11 <-- editieren / zitieren --> Unities abgeben: Nur für Volker E
|
Volker E Mitglied Konstrukteur
Beiträge: 164 Registriert: 20.08.2012 Win 7 64 bit, Inventor 2015 Sp2 64 bit Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM Nvidia Quadro 4000 Space Explorer
|
erstellt am: 20. Sep. 2016 12:46 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen Habe es mal so probiert aber kein Erfolg Formular und Exceldatei sind angehängt vielleicht hat ja einer eine Idee Private Sub TextBox4_Change() Dim strSuchbegriff As String strSuche = Me!TextBox4.text Me!ListBox1.RowSource = "SELECT [2], [Material]" _ &" FROM ListBox1" _ "WHERE ListBox1" & strSuche & "*'" End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernoAn Mitglied
Beiträge: 164 Registriert: 16.01.2014
|
erstellt am: 20. Sep. 2016 12:57 <-- editieren / zitieren --> Unities abgeben: Nur für Volker E
|
Volker E Mitglied Konstrukteur
Beiträge: 164 Registriert: 20.08.2012 Win 7 64 bit, Inventor 2015 Sp2 64 bit Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM Nvidia Quadro 4000 Space Explorer
|
erstellt am: 20. Sep. 2016 13:47 <-- editieren / zitieren --> Unities abgeben:
|
Volker E Mitglied Konstrukteur
Beiträge: 164 Registriert: 20.08.2012 Win 7 64 bit, Inventor 2015 Sp2 64 bit Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM Nvidia Quadro 4000 Space Explorer
|
erstellt am: 23. Sep. 2016 14:27 <-- editieren / zitieren --> Unities abgeben:
Hallo IV Gemeinde habe es jetzt soweit hinbekommen dass ich über die Textbox1 das Listenfeld anspringen kann leider kann ich nur die ersten 4 Einträge selektieren und ich muss in der Textbox die fortlaufende Zählernummer des Listenfeld angeben damit die entsprechende Zeile selektiert wird. Wie muss ich den Code umschreiben damit ich im Textfeld einen Wortanfang bzw ein Wort eingeben kann und dann die Zeilen selektiert wird. Vielleicht weiß einer von euch wie das geht. hier mein bisheriger Code: Private Sub TextBox1_Change() Dim i As Long Dim n As Long Dim Str As String Str = Me.TextBox1.text n = Me.LisBenennungen.ColumnCount For i = 0 To n - 1 If Left(Me.LisBenennungen.List(i), Len(Str)) = Str Then Me.LisBenennungen.ListIndex = i Exit Sub End If Next i End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Volker E Mitglied Konstrukteur
Beiträge: 164 Registriert: 20.08.2012 Win 7 64 bit, Inventor 2015 Sp2 64 bit Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM Nvidia Quadro 4000 Space Explorer
|
erstellt am: 23. Sep. 2016 14:28 <-- editieren / zitieren --> Unities abgeben:
|
surfeu36 Mitglied
Beiträge: 5 Registriert: 08.02.2007
|
erstellt am: 06. Nov. 2016 13:56 <-- editieren / zitieren --> Unities abgeben: Nur für Volker E
|