Anzeige
Archiv - Navigation
1688to1692
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

VBA - Anhand von mehreren Suchkriterien Ergebnisse

VBA - Anhand von mehreren Suchkriterien Ergebnisse
24.04.2019 11:20:42
mehreren
Hallo liebe VBA Spezialisten,
ich bin VBA Anfänger und benötige eure Hilfe. Ich habe eine Exceltabelle mit 4 Reitern: Kundenliste, Lagerbestände, PLZ (Postleitzahlen) und AW_Standorte (Ausweichstandorte).
Die Aufgabenstellung ist die gewünschten Ergebnisse aus den Listen in PLZ, Lagerbestand und AW_Standorte in die Kundenliste zu übertragen.
1. Suchkriterium aus der Kundenliste ist der Kundenstandort aus Spalte D. Hier soll in der Liste PLZ anhand des Standortes der dazugehörigen Standort des Lagerbestandes aus Spalte E ermitteltet werden. Das Ergebnis soll dann in der Kundenliste Spalte E übertragen werden.
2. Suchkriterium aus der Kundenliste ist der wiederum der Kundenstandort aus Spalte D. Hier soll in der Liste AW_Standort der Ausweichstandort ermittelt und in der Kundenliste in Spalte F übertragen werden.
3. Suchkriterium aus der Kundenliste ist die Artikelnummer aus Spalte A und der bereits ermittelte Standort des Lagerbestandes aus Spalte E. Hier soll der in der Liste Lagerbestand anhand von beiden Suchbegriffen der Lagerbestand ermittelt werden und in Spalte K (Kundenliste) übertragen werden. Sollte kein Lagerbestand vorhanden sein, dann soll dort eine 0 eingetragen und die Zelle rot markiert werden. Als nächstes soll dann der Lagerbestand für den Ausweichstandort ermittelt werden der sich in der Kundenliste in Spalte F befindet. Suchkriterium sind wiederum die Artikelnummer aus Spalte A und Ausweichstandort aus Spalte F. Und zu allerletzt soll dann anhand von selben Kriterien der Lagerbestand aus allen anderen Standorten in Spalte I übertragen werden.
Ich hoffe ich habe mich verständlich ausgedrückt. Ich habe die Liste sehr klein gehalten. In der Regel müssen über 1.000 Artikelnummern, Standorte, etc. überprüft und zugewiesen werden - deshalb soll das Ganze über VBA gelöst werden.
Vorab schon mal ein Dankeschön an diejenigen die mir helfen möchten.
Beste Grüße
GG

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Anhand von mehreren Suchkriterien Ergebnisse
24.04.2019 11:30:49
mehreren
Hi - die Beispielmappe fehlt leider!
Gruß
Daniel
AW: VBA - Anhand von mehreren Suchkriterien Ergebnisse
24.04.2019 13:08:32
mehreren
Die meisten Punkte (wahrscheinlich alle) lassen sich deutlich einfacher mit Formellösungen und bedingten Formatierungen herstellen. Lediglich beim Auflisten der Bestände in den restlichen Standorten bin ich mit einer Formellösung überfragt, obwohl das bestimmt auch geht. Dafür habe ich dann VBA bemüht.
Ich nehme an, dass deine Daten stark gekürzt sind, da etliche Artikel und Standorte nicht in den Datenlisten vorkommen. Das sollte dann aber in deiner Version kein Problem sein.
https://www.herber.de/bbs/user/129357.xlsm
Gruß
Daniel
Anzeige
AW: VBA - Anhand von mehreren Suchkriterien Ergebnisse
24.04.2019 13:20:53
mehreren
Super Daniel! Da ist das was ich benötige. Kann man die ersten beiden Suchkriterien ebenfalls über VBA einbauen, so dass man per Button die kompletten Abfragen startet?
AW: VBA - Anhand von mehreren Suchkriterien Ergebnisse
24.04.2019 13:39:24
mehreren
Für die ganz Bequemen:
Sub andere_Standorte()
Dim Standort As String, Fundzelle As String, Ergebnis As String
Dim Zelle As Range, Finden As Range
'Standort, Ausweichstandort etc. befüllen
With Sheets("Kundenliste")
.Cells(2, 5).Formula = "=IFERROR(INDEX(PLZ!E:E,MATCH(D2,PLZ!B:B,0)),""N/A"")"
.Range("E2:E" & Cells(Rows.Count, 1).End(xlUp).Row).FillDown
.Cells(2, 6).Formula = "=IFERROR(INDEX(AW_Standorte!C:C,MATCH(E2,AW_Standorte!B:B,0)),""N/A"" _
)"
.Range("F2:F" & Cells(Rows.Count, 1).End(xlUp).Row).FillDown
.Cells(2, 7).Formula = "=SUMIFS(Lagerbestände!$G:$G,Lagerbestände!$B:$B,$A2,Lagerbestände!$A: _
$A,$E2)"
.Range("G2:G" & Cells(Rows.Count, 1).End(xlUp).Row).FillDown
.Cells(2, 8).Formula = "=SUMIFS(Lagerbestände!$G:$G,Lagerbestände!$B:$B,$A2,Lagerbestände!$A: _
$A,$F2)"
.Range("H2:H" & Cells(Rows.Count, 1).End(xlUp).Row).FillDown
End With
'Andere Standorte mit Lagerbeständen ermitteln
For Each Zelle In Sheets("Kundenliste").UsedRange.Columns(1).Cells
Ergebnis = ""
If Zelle.Row = 1 Then
'nix
Else
Set Finden = Sheets("Lagerbestände").UsedRange.Columns("B").Find(Zelle.Value, LookIn:= _
xlValues, lookat:=xlWhole)
If Not Finden Is Nothing Then
Fundzelle = Finden.Address
Do
If Finden.Offset(0, -1).Value  Zelle.Offset(0, 4).Value And Finden.Offset(0, -1). _
Value  Zelle.Offset(0, 5).Value Then
Ergebnis = Ergebnis & Finden.Offset(0, -1).Value & "[" & Finden.Offset(0, 5). _
Value & "]" & " / "
End If
Set Finden = Sheets("Lagerbestände").UsedRange.Columns("B").FindNext(Finden)
Loop While Not Finden Is Nothing And Finden.Address  Fundzelle
Ergebnis = Left(Ergebnis, Len(Ergebnis) - 3)
Zelle.Offset(0, 8).Value = Ergebnis
End If
End If
Next Zelle
End Sub

;-)
Anzeige
AW: VBA - Anhand von mehreren Suchkriterien Ergebnisse
24.04.2019 14:31:46
mehreren
Hallo Daniel,
erst einmal viele Dank für dein Engagement und die Mühe.
Ich haben den Code reinkopiert und bekomme hier eine Syntax Fehlermeldung:
.Cells(2, 6).Formula = "=IFERROR(INDEX(AW_Standorte!C:C,MATCH(E2,AW_Standorte!B:B,0)),""N/A"" _
)"
.Range("F2:F" & Cells(Rows.Count, 1).End(xlUp).Row).FillDown
.Cells(2, 7).Formula = "=SUMIFS(Lagerbestände!$G:$G,Lagerbestände!$B:$B,$A2,Lagerbestände!$A: _
$A,$E2)"
.Range("G2:G" & Cells(Rows.Count, 1).End(xlUp).Row).FillDown
.Cells(2, 8).Formula = "=SUMIFS(Lagerbestände!$G:$G,Lagerbestände!$B:$B,$A2,Lagerbestände!$A: _
$A,$F2)"
Woran liegt das?
Beste Grüße
GG
Anzeige
AW: VBA - Anhand von mehreren Suchkriterien Ergebnisse
24.04.2019 14:36:59
mehreren
Ich habe die Umbruch Zeilen entfernt und alles zusammengerückt. Es geht allerdings bleibt es bei
"Ergebnis = Left(Ergebnis, Len(Ergebnis) - 3)" stehen.
AW: VBA - Anhand von mehreren Suchkriterien Ergebnisse
24.04.2019 14:40:13
mehreren
Als Fehler wird Laufzeitfehler "5" angezeigt. Ungültiger Prozeduraufruf oder ungültiges Argument
AW: VBA - Anhand von mehreren Suchkriterien Ergebnisse
24.04.2019 14:46:10
mehreren
Das tritt wohl auf, wenn im Ergebnis ein String mit 3 oder weniger Zeichen steht und deshalb die Left Funtkion eine negative Zeichenanzahl erhalten würde. Kommt bei deinen Testdaten nicht vor, aber offensichtlich in deinen Echtdaten.
Ergänze die Anweisung mal so
If Len(Ergebnis) >= 3 Then Ergebnis = Left(Ergebnis, Len(Ergebnis) - 3)

Anzeige
AW: VBA - Anhand von mehreren Suchkriterien Ergebnisse
24.04.2019 14:50:31
mehreren
Super Daniel, jetzt geht es. Kannst du bitte da wo keine Bestand vorhanden ist als Ergebnis eine 0 einbauen und die Zelle rot markieren lassen?
AW: VBA - Anhand von mehreren Suchkriterien Ergebnisse
24.04.2019 15:00:49
mehreren
Den Teil so anpassen:
For Each Zelle In Sheets("Kundenliste").UsedRange.Columns(1).Cells
Ergebnis = ""
If Zelle.Row = 1 Then
'nix
Else
Set Finden = Sheets("Lagerbest?nde").UsedRange.Columns("B").Find(Zelle.Value, LookIn:= _
xlValues, lookat:=xlWhole)
If Not Finden Is Nothing Then
Fundzelle = Finden.Address
Do
If Finden.Offset(0, -1).Value  Zelle.Offset(0, 4).Value And Finden.Offset(0, -1). _
Value  Zelle.Offset(0, 5).Value Then
Ergebnis = Ergebnis & Finden.Offset(0, -1).Value & "[" & Finden.Offset(0, 5). _
Value & "]" & " / "
End If
Set Finden = Sheets("Lagerbest?nde").UsedRange.Columns("B").FindNext(Finden)
Loop While Not Finden Is Nothing And Finden.Address  Fundzelle
If Len(Ergebnis) >= 3 Then Ergebnis = Left(Ergebnis, Len(Ergebnis) - 3)
End If
If Ergebnis = "" Then Ergebnis = 0
Zelle.Offset(0, 8).Value = Ergebnis
End If
Next Zelle
Dann den Bereich für die bedingte Formatierung um Spalte I erweitern, damit die Nullwerte rot eingefärbt werden.
Anzeige
AW: VBA - Anhand von mehreren Suchkriterien Ergebnisse
24.04.2019 15:08:30
mehreren
Funktioniert. Daniel vielen, vielen lieben Dank!
Gerne!
24.04.2019 15:16:23
Daniel
AW: VBA - Anhand von mehreren Suchkriterien Ergebnisse
24.04.2019 14:41:22
mehreren
Kann ich nicht nachvollziehen, bei mir gibt es keine Probleme. Was sagt denn die Fehlermeldung?
AW: VBA - Anhand von mehreren Suchkriterien Ergebnisse
24.04.2019 14:44:04
mehreren
Als Fehler wird Laufzeitfehler "5" angezeigt. Ungültiger Prozeduraufruf oder ungültiges Argument
AW: VBA - Anhand von mehreren Suchkriterien Ergebnisse
24.04.2019 14:38:11
mehreren
Nimm mal die Unterstriche raus und fülle alle Anweisungen jeweils in eine Zeile. Die Umbrüche wurden vom Forum automatisch gesetzt, um den Code ans Fenster anzupassen. Das gibt Probleme mit den "".

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige