ich bin dabei, habe ein Makro entworfen, habe aber noch Rückfagen zum Rezepte auswerten. Ich gehe davon aus das zuerst nach der Artikel Nr. gesucht werden muss, und dann nach dem Rezept. Ich denke das jede Artkel Nr. nur einmal vorkommt. Und das dann zu diesem Artikel das Rezept geprüft werden muss. Ist das so richtig??
Bei der Artikel Nr vergleiche ich die ganze Zahl. Wie ist das beim Rezept? Gebt ihr das Rezept komplett ein, oder manchmal nur einen Teilbegriff??
Ich kann beides programmieren. Aber wie wollt ihr es haben?? Das muss ich im Find Code festlegen!
22.02.2017, 06:37 (Dieser Beitrag wurde zuletzt bearbeitet: 22.02.2017, 06:37 von tw3aker.)
Guten Morgen,
Vielen, vielen Dank schon mal vorab.
Die RezeptNr. kommt mehrfach vor. Genau richtig, erst soll das Rezept gesucht werden, wenn gefunden, soll geprüft werden, ob eine der ArtikelNr. Dabei ist, die im Suchfeld eingetragen ist. Wenn nicht, sollte es mir die Werte ausgeben.
Die ArtikelNr. wird komplett eingetragen.
RezeptNr. kann ., oder ähnliches enthalten. RezeptNr kann buchstaben enthalten.
Vielen, vielen Dank!!! Das würde mir sehr viel erleichtern!!
anbei die überarbeitete Datei mit Suchlauf für Produkt 5 zurück. Ich hoffe das ich es gut entwickelt habe.
Es gibt zwei getrennte Makros für Suchlauf 1+2. Der zweite wird an die fertige Tabelle angehangen. Beim 1. Suchlauf lasse ich keine Leerzeilen, d.h., die Zeile von Rezept und das Ergbnis stimmen nicht überein. Finde ich kein Rezept notiere ich in Spalte I den Vermekr "No Find", lasse diese Zeile aber nicht frei! Finde ich im 1. Scuhlauf ein Teil-Rezept notiere ich das Original Rezept, so wie es in der Auswertung steht. Die dazugehörige Artikel Nr. wird ebenfalls notiert.
Für den 2. .Suchlauf benutze ich die zusazetlichen Spalten M+N, weil ich im zweiten Makro den Text bei "," oder "." in zwei Teil Texte zerlege, und seperat nach jedem Teil Text suche. Das Ergebnis kann mit dem 1. Suchlauf übereinstimmen, das zweite Makro findet auf diese Art aber noch weitere Rezepte. Ich bin gespannt wie sich diese Idee in der Praxis bewaehrt?? Bitte noch PN lesen.
wow. Klasse. Bin nur etwas skeptisch. kann man das nicht so aufbauen, dass die Skript wirklich nur schaut, ob es das Rezept ist in der Auswertung und wenn es das ist, checkt, dass einer der Artikel nicht dabei ist. wenn er dabei ist, soll die Datei keinen wert ausgeben, wenn keiner der Artikel dabei ist, soll ein wert ausgegeben werden.
Zitat:ob es das Rezept ist in der Auswertung und wenn es das ist, checkt, dass einer der Artikel nicht dabei ist - ???
vielleicht habe ich die Aufgabenstellung ein wenig falsch verstanden, falls ja kein Thema, korrigieren wir es!
Wenn ich es jetzt richtig verstehe könnte das Rezept mehrfach vorkommen, bei verschiedenen Artikeln. Ist das korrekt?? Noch nicht ganz verstanden habe ich das Satzende: das einer der Artikel nicht dabei ist. Am einfachsten waere das an Hand einer kleinen Beispieldatei zu verstehen, wo ich in der Auswertung Rezepte habe, können Fantasienamen sein, Wacholder, Waldmeister, wo ich dann ersehen kann wann einer der Artikel nicht dabei ist??
Ich rate jetzt nur mal - einfach geraten. Durch die Rezepte laufen, mit den Artikel Nr. vergleichen, und schauen bei welchem Artikel kein Rezept vorliegt. Ist das so richtig?? Wenn nichts gefunden wird, welchen Text soll ich dann ausgeben, und in welcher Spalte??
kein Thema. Gehen wir mal davon aus, dass ich bei Rezept ca. 30 Rezepte eingeben will, die in Auswerten gesucht werden sollen. In auswerten stehen aktuell fast 2000 Zeilen, die durchsucht werden sollen, Tendenz steigend.
Von diesen 2000 Zeilen kommen die Rezepte ca. 500-mal vor.
Wenn das Makro jetzt eine dieser Rezept nummern findet, soll es Checken, ob eine der Artikelnummern übereinstimmt. Wenn keine Artikelnummer übereinstimmt, sollen die Werte in die Produkt 5 übergeben werden.
So kann ich quasi die Ergebnisse abfragen, die ich vorher durch Produkt 1 - 4 noch nicht abgefragt habe und zu viele wechselnde Artikelnummern haben.
dafür brauchen wir keine Beispieldatei, einfach ein neues Modul einfügen und das neue Makro ins Modul einfügen. Dem Button den neuen Makro Namen zuweisen, dann sollte es klappen. Würde mich sehr freuen. Die zu durchsuchende Zeilen spielen dabei keine Rolle, weil ich die ganze Spalte durchsuche.
mfg Gast 123
Code:
Option Explicit '21.2.2017 Gast 123 Clever Forum
'neu aufgenommen: Rezeptsuche Neu
Const ASW = "Auswertung" 'Auswertung
'A=gefüllt, D=Ltr, H=Artikel, J=datumgang
Dim rFind As Object, AJ As Object
'Extra Blatt - Produkt5 auflisten
'suche nach Rezepten + Artikel
Sub Produkt5_auflisten_Neu()
Dim x As Integer, z As Integer
Dim Adr1 As String, nAdr As String
Dim ATB As Worksheet, AC As Object
Set ATB = Worksheets(ASW)
z = 2 '1. Zeile in Produkt5
With Worksheets("Produkt 5")
'alte Liste ganz löschen
.Range("I2:I100") = Empty
.Range("K2:K100") = Empty
.Range("A2:F1000") = Empty
'Schleife: Rezeptspalte durchsuchen
For Each AC In .Range("J2:J100")
If AC.Value = Empty Then Exit For
'in Spalte H1 Artikel suchen
Set rFind = ATB.Columns("F").Find(What:=AC, After:=Range("F1"), _
LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlNext)
'Meldung wenn kein Rezept gefunden wurde
If rFind Is Nothing Then AC.Cells(1, 0) = "No Find": GoTo nxt
Adr1 = rFind.Address
x = rFind.Row: nAdr = Adr1
Do 'Do Schleife für alle Jahrgaenge
'Schleife für Artikel Nr. suchen
For Each AJ In .Range("L2:L100")
If AJ.Value = Empty Then Exit For
If ATB.Cells(x, "H") = AJ.Value Then
.Cells(z, 1) = CDate(ATB.Cells(x, 1)) 'Datum
.Cells(z, 2) = ATB.Cells(x, 4).Value 'Fl.Grösse
.Cells(z, 3) = ATB.Cells(x, 6).Value 'Rezept
.Cells(z, 4) = ATB.Cells(x, 7).Value 'Flaschen
.Cells(z, 5) = ATB.Cells(x, 8).Value 'Artikel
.Cells(z, 6) = ATB.Cells(x, 10).Value 'Jahrgang
AJ.Cells(1, 0) = " gefunden"
z = z + 1
End If
Next AJ
'next Jahrgang Zeile suchen bis Ende
Set rFind = ATB.Columns("F").FindNext(After:=Range(nAdr))
nAdr = rFind.Address: x = rFind.Row
Loop Until rFind.Address = Adr1