Supportnet / Forum / Tabellenkalkulation
Summierung durch Makro mit 2 Bedingungen
Frage
Hallo Leute,
ich erarbeite ein Makro, dass mir zeigt wieviel von welchen Material (Bedingung 1) in welcher Produktionsstufe (Bedingung 2) verwendet wird.
Die Bedingung 2 habe ich hinbekommen und sieht wie folgt aus:
'Schrauben
With Worksheets("Zusammenfassung")
For inSpalte = 2 To Columns.Count
For inZaehler = 2 To Worksheets.Count
On Error Resume Next
doSumme = doSumme + Application.WorksheetFunction.HLookup(.Cells(1, inSpalte), _
Worksheets(inZaehler).Range("a1:f6"), 14)
Next inZaehler
Cells(2, inSpalte) = doSumme
doSumme = 0
Next inSpalte
End With
Das funktioniert solange wie die Reihenfolge der Materialien gleich bleibt. Leider ist das aber nicht der Fall. Deshalb brauche ich noch Bedingung 1 (welches Material).
Bedingung 1 (mit dem Zeilenwert 14) bekomme ich aber leider nicht als Variable hin.
Deshalb wende ich mich an Euch.
Könnt Ihr mir bitte helfen.
Gruß
Peter Von Rode
Antwort 1 von Beverly
Hi Peter,
deine Matrix ist falsch deklariert
Der Bereich geht von Zeile1 bis Zeile6, du suchst aber in Zeile14.
Bis später,
Karin
deine Matrix ist falsch deklariert
Worksheets(inZaehler).Range("a1:f6"), 14)Der Bereich geht von Zeile1 bis Zeile6, du suchst aber in Zeile14.
Bis später,
Karin
Antwort 2 von Peter3011
Hallo Karin,
sorry erst mal, dass ich mich so spät melde. Ich war unterwegs.
Genau diese 14 soll variabel sein.
Erläuterung:
Das Makro summiert die Werte in einem Summenblatt. Die Werte hierfür kommen aus einzelnen Blättern, die alle verschiedene Produkte darstellen und folglicherweise alle auch unterschiedliche Materialien benötigen.
Demnach sind in dem Summenblatt alle Materialien aufgelistet, während in den Produktblättern nur die Materialien vorkommen, die auch für die Herstellung des Produktes gebraucht werden.
Daraus ergibt sich das Problem, dass z. B. die 9mm Schraube zwar im Summenblatt in Zeile 14 der Matrix vorkommt, aber dieser Wert nicht zwangsläufig für Produkt 1 gelten muss, da hier bspw. viel weniger Materialien benötigt werden.
Deshalb muss diese 14 als Variable im Summenblatt in der Zelle links neben ihr die Bezeichnung erkennen und diese dann in den einzelnen Produktblättern suchen.
Dieses Problem habe ich bisher über einen Index mit Spalten- und Zeilenvariablen gelöst, indem ich Vergleichsfunktionen für die Spalten und Zeilen eingesetzt habe.
Bei sich ändernder Blattzahl ist das allerdings nicht mehr möglich.
Ich habe zwar für diese 14 eine worksheetfunction (hlookup) eingesetzt, aber leider hat dass nicht funktioniert.
Kann man hier keine Datei anhängen, damit das Problem noch visuell erläutert wird?
Wenn Dir dazu ein Kniff einfällt, wäre das toll.
Gruß
Peter3011
sorry erst mal, dass ich mich so spät melde. Ich war unterwegs.
Genau diese 14 soll variabel sein.
Erläuterung:
Das Makro summiert die Werte in einem Summenblatt. Die Werte hierfür kommen aus einzelnen Blättern, die alle verschiedene Produkte darstellen und folglicherweise alle auch unterschiedliche Materialien benötigen.
Demnach sind in dem Summenblatt alle Materialien aufgelistet, während in den Produktblättern nur die Materialien vorkommen, die auch für die Herstellung des Produktes gebraucht werden.
Daraus ergibt sich das Problem, dass z. B. die 9mm Schraube zwar im Summenblatt in Zeile 14 der Matrix vorkommt, aber dieser Wert nicht zwangsläufig für Produkt 1 gelten muss, da hier bspw. viel weniger Materialien benötigt werden.
Deshalb muss diese 14 als Variable im Summenblatt in der Zelle links neben ihr die Bezeichnung erkennen und diese dann in den einzelnen Produktblättern suchen.
Dieses Problem habe ich bisher über einen Index mit Spalten- und Zeilenvariablen gelöst, indem ich Vergleichsfunktionen für die Spalten und Zeilen eingesetzt habe.
Bei sich ändernder Blattzahl ist das allerdings nicht mehr möglich.
Ich habe zwar für diese 14 eine worksheetfunction (hlookup) eingesetzt, aber leider hat dass nicht funktioniert.
Kann man hier keine Datei anhängen, damit das Problem noch visuell erläutert wird?
Wenn Dir dazu ein Kniff einfällt, wäre das toll.
Gruß
Peter3011
Antwort 3 von Beverly
Hi Peter,
unter dieser Adresse http://uploadagent.de/ kannst du eine Datei für 100 Tage kostenlos hochladen.
Bis später,
Karin
unter dieser Adresse http://uploadagent.de/ kannst du eine Datei für 100 Tage kostenlos hochladen.
Bis später,
Karin
Antwort 4 von Peter3011
Aha,
danke, wieder was gelernt.
Die Datei liegt unter dem folgenden Pfad:
http://www.uploadagent.de/files/1178642278/Test.xls
Ich glaube, dass das Problem nun besser zu verstehen.
Bin leider nicht der Weltmeister im erklären.
Danke für Dein Engagement für mich.
Gruß
Peter3011
danke, wieder was gelernt.
Die Datei liegt unter dem folgenden Pfad:
http://www.uploadagent.de/files/1178642278/Test.xls
Ich glaube, dass das Problem nun besser zu verstehen.
Bin leider nicht der Weltmeister im erklären.
Danke für Dein Engagement für mich.
Gruß
Peter3011
Antwort 5 von Beverly
Hi Peter,
ich hoffe, dass ich das Problem richtig verstanden habe. Versuche es einmal mit diesem Code
Bis später,
Karin
ich hoffe, dass ich das Problem richtig verstanden habe. Versuche es einmal mit diesem Code
Sub neu()
Dim wsTabelle As Worksheet
Dim raZelle As Range
Dim inZeile As Integer
Dim inSpalte As Integer
For inSpalte = 2 To 6
For inZeile = 2 To 6
For Each wsTabelle In ThisWorkbook.Worksheets
If wsTabelle.Name <> "Zusammenfassung" Then
Set raZelle = wsTabelle.Range("A1:F6").Find(Worksheets("Zusammenfassung").Cells(inZeile, 1), lookat:=xlPart)
If Not raZelle Is Nothing Then
doSumme = doSumme + wsTabelle.Cells(raZelle.Row, inSpalte)
End If
End If
Next wsTabelle
Worksheets("Zusammenfassung").Cells(inZeile, inSpalte) = doSumme
doSumme = 0
Set raZelle = Nothing
Next inZeile
Next inSpalte
End Sub
Bis später,
Karin
Antwort 6 von Beverly
Hi Peter,
mir ist gerade aufgefallen, dass sich da eine kleine Ungenauigkeit eingeschlichen hat, die zwar in deiner Arbeitsmappe keinen Einfluss hat, aber vielleicht bei einem User, der den Code für seine Belange anpassen möchte: ändere den Codeteil lookat:=xlPart in lookat:=xlWhole. Mit xlPart wird nur nach einer Teilübereinstimmung gesucht, mit xlWhole dagegen nach einer Komplettübereinstimmung.
Bis später,
Karin
mir ist gerade aufgefallen, dass sich da eine kleine Ungenauigkeit eingeschlichen hat, die zwar in deiner Arbeitsmappe keinen Einfluss hat, aber vielleicht bei einem User, der den Code für seine Belange anpassen möchte: ändere den Codeteil lookat:=xlPart in lookat:=xlWhole. Mit xlPart wird nur nach einer Teilübereinstimmung gesucht, mit xlWhole dagegen nach einer Komplettübereinstimmung.
Bis später,
Karin
Antwort 7 von Peter3011
Hallo Karin,
aahhh ssssooooorrrrryyy!!!!!!
Meine Beispieldatei hat eine Winzigkeit nicht betrachtet. Unsere Produktionsstufen beginnen nicht alle bei PS 1. Das liegt daran, dass wir die Produktionsstufen unserer Zulieferer mit berücksichtigen. Also wenn ein Zulieferei ein Produkt mit 8 Produktionsstufen fertigt, dann geht es bei und bei PS 9 weiter. Das machen wir deshalb, um unternehmensübergreifend ein Kostencontrolling zu gewährleisten und das Produkt effizienter optimieren zu können.
Diesen Umstand habe ich in der neuen Datei noch nachträglich dargestellt.
http://www.uploadagent.de/files/1178736541/Test 20070509.xls
Jedenfalls kann ich mit dem folgenden Makro die Produktionsstufe berücksichtigen:
With Worksheets("Zusammenfassung")
For inSpalte = 2 To Columns.Count
For inZaehler = 2 To Worksheets.Count
On Error Resume Next
doSumme = doSumme + Application.WorksheetFunction.HLookup(.Cells(1, inSpalte), _
Worksheets(inZaehler).Range("a1:f6"), 14)
Next inZaehler
Cells(2, inSpalte) = doSumme
doSumme = 0
Next inSpalte
End With
und mit Deinem Makro kann ich das entsprechende Material berücksichtigen. Dieses Makro steht auch für die fette 14.
Diese Makros müssen also zusammengeführt werden, damit in Abhängigkeit vom Material und der Produktionsstufe addiert wird.
Mein einfaches Gemüt hat sich deshalb folgende Lösung überlegt:
Sub neu()
Dim wsTabelle As Worksheet
Dim raZelle As Range
Dim inZeile As Integer
Dim inSpalte As Integer
For inSpalte = 2 To 6
For inZeile = 2 To 6
For Each wsTabelle In ThisWorkbook.Worksheets
If wsTabelle.Name <> "Zusammenfassung" Then
Set raZelle = wsTabelle.Range("A1:F6").Find(Worksheets("Zusammenfassung") _
.Cells(inZeile, 1), lookat:=xlWhole)
If Not raZelle Is Nothing Then
doSumme = doSumme + Application.WorksheetFunction.HLookup(.Cells(1, inSpalte), _
Worksheets(inZaehler).Range("a1:f6"), wsTabelle.Cells(raZelle.Row, inSpalte))
End If
End If
Next wsTabelle
Worksheets("Zusammenfassung").Cells(inZeile, inSpalte) = doSumme
doSumme = 0
Set raZelle = Nothing
Next inZeile
Next inSpalte
End Sub
Leider funktioniert das nicht, irgendetwas mit der Zelle HLookup nicht mehr stimmt. Keine Ahnung wieso.
Kannst Du mir bitte noch mal helfen.
Gruß
Peter3011
aahhh ssssooooorrrrryyy!!!!!!
Meine Beispieldatei hat eine Winzigkeit nicht betrachtet. Unsere Produktionsstufen beginnen nicht alle bei PS 1. Das liegt daran, dass wir die Produktionsstufen unserer Zulieferer mit berücksichtigen. Also wenn ein Zulieferei ein Produkt mit 8 Produktionsstufen fertigt, dann geht es bei und bei PS 9 weiter. Das machen wir deshalb, um unternehmensübergreifend ein Kostencontrolling zu gewährleisten und das Produkt effizienter optimieren zu können.
Diesen Umstand habe ich in der neuen Datei noch nachträglich dargestellt.
http://www.uploadagent.de/files/1178736541/Test 20070509.xls
Jedenfalls kann ich mit dem folgenden Makro die Produktionsstufe berücksichtigen:
With Worksheets("Zusammenfassung")
For inSpalte = 2 To Columns.Count
For inZaehler = 2 To Worksheets.Count
On Error Resume Next
doSumme = doSumme + Application.WorksheetFunction.HLookup(.Cells(1, inSpalte), _
Worksheets(inZaehler).Range("a1:f6"), 14)
Next inZaehler
Cells(2, inSpalte) = doSumme
doSumme = 0
Next inSpalte
End With
und mit Deinem Makro kann ich das entsprechende Material berücksichtigen. Dieses Makro steht auch für die fette 14.
Diese Makros müssen also zusammengeführt werden, damit in Abhängigkeit vom Material und der Produktionsstufe addiert wird.
Mein einfaches Gemüt hat sich deshalb folgende Lösung überlegt:
Sub neu()
Dim wsTabelle As Worksheet
Dim raZelle As Range
Dim inZeile As Integer
Dim inSpalte As Integer
For inSpalte = 2 To 6
For inZeile = 2 To 6
For Each wsTabelle In ThisWorkbook.Worksheets
If wsTabelle.Name <> "Zusammenfassung" Then
Set raZelle = wsTabelle.Range("A1:F6").Find(Worksheets("Zusammenfassung") _
.Cells(inZeile, 1), lookat:=xlWhole)
If Not raZelle Is Nothing Then
doSumme = doSumme + Application.WorksheetFunction.HLookup(.Cells(1, inSpalte), _
Worksheets(inZaehler).Range("a1:f6"), wsTabelle.Cells(raZelle.Row, inSpalte))
End If
End If
Next wsTabelle
Worksheets("Zusammenfassung").Cells(inZeile, inSpalte) = doSumme
doSumme = 0
Set raZelle = Nothing
Next inZeile
Next inSpalte
End Sub
Leider funktioniert das nicht, irgendetwas mit der Zelle HLookup nicht mehr stimmt. Keine Ahnung wieso.
Kannst Du mir bitte noch mal helfen.
Gruß
Peter3011
Antwort 8 von Beverly
Hi Peter,
ganz klar ist mir nicht, was du machen willst. Ich versuche mal, es so darzulegen, wie ich es verstanden habe:
1. die Anzahl in der Zusammenstellungsliste kann unterschiedlich sein, je nachdem was die maximale PS-Nummer (in allen Produktetabellen zusammen genommen) ist
2. die Anzahl der PS je Produkt ist immer gleich (also in jeder Produktetabelle 5), nur die SP-Nummern können sich unterscheiden
3. es soll die Summe für jede SP-Nummer gebildet werden, unabhängig davon, in welcher Spalte der Produktetabellen die SP-Nummer steht.
Ehe ich weiter mache, muss ich schon genau wissen, was das Ergebnis sein soll. Ich kenne mich ja mit eurem Prduktionsprozess nicht aus und das, was dir selbstverständlich erscheint, ist für mich ein "Buch mit 7 Siegeln" ;-).
Bis später,
Karin
ganz klar ist mir nicht, was du machen willst. Ich versuche mal, es so darzulegen, wie ich es verstanden habe:
1. die Anzahl in der Zusammenstellungsliste kann unterschiedlich sein, je nachdem was die maximale PS-Nummer (in allen Produktetabellen zusammen genommen) ist
2. die Anzahl der PS je Produkt ist immer gleich (also in jeder Produktetabelle 5), nur die SP-Nummern können sich unterscheiden
3. es soll die Summe für jede SP-Nummer gebildet werden, unabhängig davon, in welcher Spalte der Produktetabellen die SP-Nummer steht.
Ehe ich weiter mache, muss ich schon genau wissen, was das Ergebnis sein soll. Ich kenne mich ja mit eurem Prduktionsprozess nicht aus und das, was dir selbstverständlich erscheint, ist für mich ein "Buch mit 7 Siegeln" ;-).
Bis später,
Karin
Antwort 9 von Peter3011
Hallo Karin,
bitte, bitte nimm mir zunächst ab, dass ich Dich nicht überstrapazieren will.
Die Produktionsstufen müssen nicht bei PS 1 beginnen, sondern können auch bei PS>1 beginnen (das ist immer der Fall). Demnach muss im Blatt "Zusammenfassung" die kleinste Produktionsstufe ermittelt werden (Makro habe ich hierfür), die dann in Zelle B1 geschrieben wird (für das Maximum gehe ich eh über alle 255 verbleibenden Spalten, das mache ich mit ner Formel).
Die Produktionsstufen der Produkte sind alle unterschiedlich lang (Produkt 1 hat 13 Stufen und Produkt 7 136 Stufen).
Die Sortierung der Materialien im Blatt "Zusammenfassung" ist nicht die selbe, wie bei den Blättern der einzelnen Produkte (z. B. in Zusammenfassung Schrauben, Reifen, Lenkrad und in Produkt 1Schrauben, Blech, Reifen).
Für jede Stufe soll die Summe des Materialbedarfs über alle Produkte an Schrauben, Blech etc. ermittelt werden.
Das Makro, was Du mir geschickt hast, addiert richtigerweise nur Schrauben und nur Reifen usw..
Das ist absolut i. O.
Aber zusätzlich sollen nur Schrauben addiert werden, die in der selben Produktionsstufe benötigt werden. Z. B. Produkt 1 und 2 benötigen in der PS 4 insgesamt 119 Schrauben 76 in Produkt 1 und 43 in Produkt 2.
Ich glaube, dass es das ganz gut trifft.
Ich weiß nicht, wie ich Dir für Deine Geduld und Hilfsbereitschaft nur danken kann.
Woher hast Du eigentlich dieses ganze VBA Wissen (war auf Deiner Homepage, is ja Hammer)?
Gruß
Peter3011
bitte, bitte nimm mir zunächst ab, dass ich Dich nicht überstrapazieren will.
Die Produktionsstufen müssen nicht bei PS 1 beginnen, sondern können auch bei PS>1 beginnen (das ist immer der Fall). Demnach muss im Blatt "Zusammenfassung" die kleinste Produktionsstufe ermittelt werden (Makro habe ich hierfür), die dann in Zelle B1 geschrieben wird (für das Maximum gehe ich eh über alle 255 verbleibenden Spalten, das mache ich mit ner Formel).
Die Produktionsstufen der Produkte sind alle unterschiedlich lang (Produkt 1 hat 13 Stufen und Produkt 7 136 Stufen).
Die Sortierung der Materialien im Blatt "Zusammenfassung" ist nicht die selbe, wie bei den Blättern der einzelnen Produkte (z. B. in Zusammenfassung Schrauben, Reifen, Lenkrad und in Produkt 1Schrauben, Blech, Reifen).
Für jede Stufe soll die Summe des Materialbedarfs über alle Produkte an Schrauben, Blech etc. ermittelt werden.
Das Makro, was Du mir geschickt hast, addiert richtigerweise nur Schrauben und nur Reifen usw..
Das ist absolut i. O.
Aber zusätzlich sollen nur Schrauben addiert werden, die in der selben Produktionsstufe benötigt werden. Z. B. Produkt 1 und 2 benötigen in der PS 4 insgesamt 119 Schrauben 76 in Produkt 1 und 43 in Produkt 2.
Ich glaube, dass es das ganz gut trifft.
Ich weiß nicht, wie ich Dir für Deine Geduld und Hilfsbereitschaft nur danken kann.
Woher hast Du eigentlich dieses ganze VBA Wissen (war auf Deiner Homepage, is ja Hammer)?
Gruß
Peter3011
Antwort 10 von Beverly
Hi Peter,
Demnach sollen 2 Auswertungen gemacht werden? Oder sehe ich das falsch? Und wo soll das 2. Ergebnis eingetragen werden? Hier mal der Code für den Teil 2, wie ich es aus deiner Beschreibung interpretiert habe. Eingetragen wird in Tabelle "Zusammenfassung"
Programmieren ist mein Hobby und ich bin da auch vollkommener Autodidakt. Bevor ich vor knapp 2 Jahren so richtig intensiv mit Excel begonnen habe, hatte ich allerdings schon mehr als 20 Jahre Erfahrung mit dBASE (allerdings auch nur als Hobby). Aus heutiger Sicht muss ich sagen: schade, dass es damals die Foren noch nicht gab - ich hätte mir manchen Umweg und Fehler ersparen können. Deshalb helfe ich jetzt anderen, damit sie es besser haben. Das, was ich über Excel weiß, habe ich zum überwiegenden Teil aus den Foren. Wenn man andere User bei der Lösung ihrer Probleme unterstützt, lernt man selbst sehr viel, weil man sich mit Dingen auseinandersetzen muss, von denen man teilweise nicht einmal geahnt hat, dass sie existieren.
Bis später,
Karin
Zitat:
Aber zusätzlich sollen nur Schrauben addiert werden, die in der selben Produktionsstufe benötigt werden.
Aber zusätzlich sollen nur Schrauben addiert werden, die in der selben Produktionsstufe benötigt werden.
Demnach sollen 2 Auswertungen gemacht werden? Oder sehe ich das falsch? Und wo soll das 2. Ergebnis eingetragen werden? Hier mal der Code für den Teil 2, wie ich es aus deiner Beschreibung interpretiert habe. Eingetragen wird in Tabelle "Zusammenfassung"
Sub gesamt_je_ps()
Dim wsTabelle As Worksheet
Dim raZelle As Range
Dim raZelle2 As Range
Dim inZeile As Integer
Dim inSpalte As Integer
Application.ScreenUpdating = False
With Worksheets("Zusammenfassung")
For inSpalte = 2 To IIf(IsEmpty(.Cells(1, Columns.Count)), Cells(1, .Columns.Count).End(xlToLeft).Column, .Columns.Count)
For inZeile = 2 To 6
For Each wsTabelle In ThisWorkbook.Worksheets
If wsTabelle.Name <> "Zusammenfassung" Then
Set raZelle = wsTabelle.Range("A1:F6").Find(.Cells(inZeile, 1), lookat:=xlWhole)
If Not raZelle Is Nothing Then
Set raZelle2 = wsTabelle.Range("B1:F1").Find("PS " & Mid(.Cells(1, inSpalte), InStr(.Cells(1, inSpalte), " ") + 1), lookat:=xlWhole)
If Not raZelle2 Is Nothing Then
doSumme = doSumme + wsTabelle.Cells(raZelle.Row, raZelle2.Column)
End If
End If
End If
Next wsTabelle
.Cells(inZeile, inSpalte) = doSumme
doSumme = 0
Set raZelle = Nothing
Set raZelle2 = Nothing
Next inZeile
Next inSpalte
End With
Application.ScreenUpdating = True
End SubProgrammieren ist mein Hobby und ich bin da auch vollkommener Autodidakt. Bevor ich vor knapp 2 Jahren so richtig intensiv mit Excel begonnen habe, hatte ich allerdings schon mehr als 20 Jahre Erfahrung mit dBASE (allerdings auch nur als Hobby). Aus heutiger Sicht muss ich sagen: schade, dass es damals die Foren noch nicht gab - ich hätte mir manchen Umweg und Fehler ersparen können. Deshalb helfe ich jetzt anderen, damit sie es besser haben. Das, was ich über Excel weiß, habe ich zum überwiegenden Teil aus den Foren. Wenn man andere User bei der Lösung ihrer Probleme unterstützt, lernt man selbst sehr viel, weil man sich mit Dingen auseinandersetzen muss, von denen man teilweise nicht einmal geahnt hat, dass sie existieren.
Bis später,
Karin
Antwort 11 von Peter3011
Guten Abend Karin,
sorry mein fleißiges Bienchen.
War heute full house bei uns Betrieb. Deshalb melde ich mich auch erst jetzt.
Ich habe noch einmal eine Datei unter diesem Pfad hochgeladen.
http://www.uploadagent.de/files/1178911573/Test 20070511.xls
Da kannst Du in Zelle B4 sehen, wie ich bisher bisher mein Problem gelöst habe.
Es handelt sich hier um einen Index, dem ich in die Spalten und Zeilen Vergleichsfunktionen eingebaut haben (das siehst Du alles in der Bearbeitungsleiste).
Für jedes Blatt (Produkt 1 usw.) steht so ein Index, um die Summe in der Zusammenfassung bilden zu können.
Die Schwierigkeit besteht nun darin, dass die Anzahl der Produkte (und damit der Blätter) variiert, so dass das mit den Indexen nicht so das Wahre ist (zeigt dann NV# an).
Das Makro muss also irgendwie so arbeiten, dass das gleiche Ergebnis rauskommt, wie bei den Index aus Zelle B4 und dabei das Blatt Zusammenfassung ausfüllen.
Zelle B4 ist der Schlüssel denke ich.
Jetzt aber ab zu Kind und Kegel und mach nicht mehr so lang.
Schönes WE.
Gruß
Peter3011
sorry mein fleißiges Bienchen.
War heute full house bei uns Betrieb. Deshalb melde ich mich auch erst jetzt.
Ich habe noch einmal eine Datei unter diesem Pfad hochgeladen.
http://www.uploadagent.de/files/1178911573/Test 20070511.xls
Da kannst Du in Zelle B4 sehen, wie ich bisher bisher mein Problem gelöst habe.
Es handelt sich hier um einen Index, dem ich in die Spalten und Zeilen Vergleichsfunktionen eingebaut haben (das siehst Du alles in der Bearbeitungsleiste).
Für jedes Blatt (Produkt 1 usw.) steht so ein Index, um die Summe in der Zusammenfassung bilden zu können.
Die Schwierigkeit besteht nun darin, dass die Anzahl der Produkte (und damit der Blätter) variiert, so dass das mit den Indexen nicht so das Wahre ist (zeigt dann NV# an).
Das Makro muss also irgendwie so arbeiten, dass das gleiche Ergebnis rauskommt, wie bei den Index aus Zelle B4 und dabei das Blatt Zusammenfassung ausfüllen.
Zelle B4 ist der Schlüssel denke ich.
Jetzt aber ab zu Kind und Kegel und mach nicht mehr so lang.
Schönes WE.
Gruß
Peter3011
Antwort 12 von Beverly
Hi Peter,
ich habe meinen Code nicht in deiner Arbeitsmappe gefunden, deshalb muss ich annehmen, dass du ihn nicht getestet hast.
Gemessen an deiner Beschreibung in deiner hochgeladenen Arbeitsmappe macht mein Code genau das, was du mit der Formel in B4 erreichen willst (die übrigens #NV anzeigt, sodass ich nicht prüfen kann, welcher Wert drinstehen müsste). Ich habe zum besseren Verständnis für dich einige Kommentare in den Code geschreiben. Es wird folgendes berücksichtigt:
1. es wird das gesamze Blatt Zusammenfassung von Spalte B bis zur letzten Spalte und von Zeile 2 bis Zeile 6 ausgefüllt
2. es werden alle Tabellen der Arbeitsmappe durchlaufen, gleichgültig wie viele enthalten sind, die Anzahl der Produkte (Tabellen) kann also unterschiedlich sein
3. es wird summert für jedes Teil in A2:A6 der Tabelle "Zusammenfassung" (also für jede Zeile) für jede Produktstufe (also für jede Spalte)
Link zur Datei
Bis später,
Karin
ich habe meinen Code nicht in deiner Arbeitsmappe gefunden, deshalb muss ich annehmen, dass du ihn nicht getestet hast.
Gemessen an deiner Beschreibung in deiner hochgeladenen Arbeitsmappe macht mein Code genau das, was du mit der Formel in B4 erreichen willst (die übrigens #NV anzeigt, sodass ich nicht prüfen kann, welcher Wert drinstehen müsste). Ich habe zum besseren Verständnis für dich einige Kommentare in den Code geschreiben. Es wird folgendes berücksichtigt:
1. es wird das gesamze Blatt Zusammenfassung von Spalte B bis zur letzten Spalte und von Zeile 2 bis Zeile 6 ausgefüllt
2. es werden alle Tabellen der Arbeitsmappe durchlaufen, gleichgültig wie viele enthalten sind, die Anzahl der Produkte (Tabellen) kann also unterschiedlich sein
3. es wird summert für jedes Teil in A2:A6 der Tabelle "Zusammenfassung" (also für jede Zeile) für jede Produktstufe (also für jede Spalte)
Link zur Datei
Bis später,
Karin

