Clever-Excel-Forum

Normale Version: VBA Suchfunktion bei mehreren gleichen Einträgen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Guten Morgen zusammen,

ich muss für die Firma ein kleine Programm schreiben und bin neu im Thema VBA. Ich habe sicher was einfaches für euch was für mich unendlich schwer ist. Finde auch nicht das passende im Netz. Ich würde gerne folgendes machen.


Suche : (Textbox) nach einer Artikelnummer suchen.

Er sucht dann in der Liste nach der Artikelnummer und gibt diese in einer Textbox oder einem anderen Medium wieder aus. Auch die Zeilen neben der Nummer sollen ausgegeben werden. Ich schaffe das wenn ich einen Eintrag habe aber er soll mir auch doppelte Einträge anzeigen. Ich male das mal auf Smile

Artikelnummer       Menge        Lieferdatum

1007.0000            200 Stk       13.03.2019
1008.0000            100 Stk       14.06.2019
1007.0000            50 Stk         15.08.2019


Jetzt möchte ich eine Ausgabe in einem Textfeld (Bin da offen) haben wo dieses Ergebnis gezeigt wird.


1007.0000           200 Stk        13.03.2019
1007.0000           50 Stk          15.08.2019




Freue mich wenn ihr mir helfen könnt.
Hallo,

das geht ganz einfach mit dem Autofilter.

Im übrigen:

Zitat:ich muss für die Firma ein kleine Programm schreiben und bin neu im Thema VBA.

dann muss dir dein Chef eine entsprechende Ausbildung zukommen lassen.
Moin,

blöde Frage: muss es unbedingt VBA sein? Hier (m)eine Formellösung (Formel in H2 und nach rechts und nach unten ziehen):

Arbeitsblatt mit dem Namen 'Tabelle2'
ABCDEFGHIJ
1ArtikelnummerMengeLieferdatumSuche:10.070.000Ergebnis:
210.070.000200 Stk13.03.201910.070.000200 Stk13.03.2019
310.080.000100 Stk14.06.201910.070.00050 Stk15.08.2019
410.070.00050 Stk15.08.2019

ZelleFormel
H2=WENNFEHLER(INDEX(A:A;AGGREGAT(15;6;ZEILE($A$1:$A$4)/($A$1:$A$4=$F$1);ZEILE(A1)));"")
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Moin,

ja leider VBA. Grund ist das ich den Rest schon Programmiert habe. Es soll für die Kollegen eine einfache Benutzerfläche werden.
Hallo Deeage,

hier ein Beispiel mit Ausgabe in einer Listbox:
Private Sub CommandButton1_Click()
 Dim i As Long
 Dim varListe As Variant
 varListe = ActiveSheet.Range("A2").CurrentRegion.Value
 With ListBox1
   .Clear
   .ColumnCount = UBound(varListe, 2)
   .AddItem varListe(1, 1)
   .List(.ListCount - 1, 1) = varListe(1, 2)
   .List(.ListCount - 1, 2) = varListe(1, 3)
   If Len(TextBox1) Then
     For i = 2 To UBound(varListe, 1)
       If CStr(varListe(i, 1)) = TextBox1 Then
         .AddItem varListe(i, 1)
         .List(.ListCount - 1, 1) = varListe(i, 2)
         .List(.ListCount - 1, 2) = varListe(i, 3)
       End If
     Next i
   End If
 End With
End Sub
Gruß Uwe
Hey UWE,


super GEIL Smile  funktioniert SUPER..

Danke dir 

Gruß

Dennis
Hallo Uwe,

kannst du mir vielleicht nochmal helfen?

Ich würde gerne die gefundenen Listbox Einträge in ein anderes Arbeitsblatt kopieren. Klappt mir diesem Befehl

Worksheets("Container Einstand").Range("A2").Resize(Import.ListBox1.ListCount, Import.ListBox1.ColumnCount).Value = Import.ListBox1.List

Würde aber gerne weitere Artikel suchen und auch in das Worksheet (Container Einstand) kopieren aber halt unter die letzten Einträge. Dafür müsse er ja die letzte Zeile finden und ab dort erst reinkopieren.

Ich bekomme das nicht hin obwohl das sicher simpel ist.

Gruß

Dennis
Hallo Dennis,

probiere es mal so:
Code:
Worksheets("Container Einstand").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(Import.ListBox1.ListCount, Import.ListBox1.ColumnCount).Value = Import.ListBox1.List
Gruß Uwe
Funktioniert super ….DANKE

Besteht auch die Möglichkeit nur bestimmte Datensätze zu übertragen?

z.B


Artikelnummer / Bestand / Menge / Hersteller / Datum (Es soll nur bis Menge übertragen werden und nicht der Rest?)
Hallöchen,

Zitat:Besteht auch die Möglichkeit nur bestimmte Datensätze zu übertragen?

Du legst die Größe vom Ausgabebereich hiermit fest:
Resize(Import.ListBox1.ListCount, Import.ListBox1.ColumnCount)

schaue mal, was passiert, wenn Du bei der Anzahl Spalten welche abziehst Smile
Seiten: 1 2