Auf meiner Suche nach Erleuchtung im Bereich Excel führt kein Weg an euch vorbei, deshalb:
Vorgeschichte:
Während meines Studiums habe ich (zum Spaß) ein kleines Menüplanungstool geschrieben, siehe hier:
https://www.herber.de/bbs/user/104428.xlsm
Mit geschrieben meine ich viel Recherche, viel Trial and Error, viel Support hier von herber, etc.
Das Programm lässt einen Rezepturen anlegen, macht die einzelnen Artikel nach einmaliger Eingabe per Dropdown verfügbar, und sammelt die Rezepte für später kumulierte Bestellungen.
Man kann einzelne Rezepte als "Unterrezepte" bzw Beilagen/Side order definieren, die dann später, mit "*" markiert, direkt als ein Artikel verfügbar sind.
Aus allen verfügbaren Gerichten kann man im Tab "Ordering collection" später Mengen eintragen und eine nach Artikeln kumulierte Bestellliste erstellen.
Problem:
Die Preise und Mengen für die Listen holt sich das Programm immer direkt aus den Rezepten (damit die auch mal ändern kann). Ich will aber Preise in "pricelist" nur einmal ändern müssen und diese Änderung dann für alle Rezepte übertragen lassen.
Ich bräuchte also einen Button in "pricelist", der nach Ändern einzelner Preise folgendes macht:
-Nimm den Preis des ersten Artikels ARTIKEL1 und dazu gehörigen Preis PREIS1
-Gehe in jedes vorhandene Rezepturblatt, suche ARTIKEL1, wenn gefunden, füge PREIS1 ein
usw.
-am Schluss speichern
Folgendes scheint irgendwie nicht zu funktionieren (ohne Fehlermeldung):
Sub Schaltfläche1_Klicken()
Application.ScreenUpdating = False
Dim anzahlArtikel, AnzahlListe, PreisNeu, rezepte, RezeptZeile As Integer
Dim ArtikelName As String
anzahlArtikel = WorksheetFunction.CountA(Sheets(3).Range("A2:A300")) + 1
For AnzahlListe = 2 To anzahlArtikel
ArtikelName = ThisWorkbook.Sheets(3).Cells(anzahlArtikel, 1).Value
PreisNeu = ThisWorkbook.Sheets(3).Cells(anzahlArtikel, 3).Value
For rezepte = 7 To ThisWorkbook.Sheets.Count
For RezeptZeile = 3 To 20
If ThisWorkbook.Sheets(rezepte).Cells(RezeptZeile, 1) = ArtikelName Then
ThisWorkbook.Sheets(rezepte).Cells(RezeptZeile, 4) = PreisNeu
End If
Next RezeptZeile
Next rezepte
Next AnzahlListe
End Sub
Ich hoffe wie gesagt auf Erleuchtung und darauf, dass ich nur irgendeinen doofen Denkfehler gemacht habe. Nachdem ich "Selbstlerner" bin, kann es durchaus sein, dass mir rudimentäre Programmierkenntnisse abgehen.Vielen Dank schon mal im Voraus!
Michael