Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Suchfunktion bei mehreren gleichen Einträgen
#1
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.
Antwortento top
#2
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.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antwortento top
#3
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
Gruß Günter
Jeder Fehler erscheint unglaublich dumm,
wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antwortento top
#4
Moin,

ja leider VBA. Grund ist das ich den Rest schon Programmiert habe. Es soll für die Kollegen eine einfache Benutzerfläche werden.
Antwortento top
#5
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
Antwortento top
#6
Hey UWE,


super GEIL Smile  funktioniert SUPER..

Danke dir 

Gruß

Dennis
Antwortento top
#7
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
Antwortento top
#8
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
Antwortento top
#9
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?)
Antwortento top
#10
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
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste