Problem im VBA-Makro mit Summenprodukt-Formel
Hallo Forum,
ich komme mit diesem Problem einfach nicht weiter, kann mir jemand helfen.
Sub versuch()
Worksheets("test").Select
ActiveSheet.Unprotect
For Zeile = 12 To 13
For Spalte = 3 To 20
Sheets("test").Cells(Zeile, Spalte).FormulaLocal = _
"=SUMMENPRODUKT(([t1nummer]=Cells(Zeile, 1))*([t1datum1]<=Cells(9, Spalte))*([t1datum2]>=Cells(9, Spalte)))"
Next Spalte
Next Zeile
End Sub
t1nummer, t1datum1 und t1datum2 sind
Namen für definierte Bereiche in einem anderen Tabellenblatt. Diese Bereiche möchte ich mit den jeweiligen Zellinhalten (indiziert durch die Schleifenzähler) im aktiven Tabellenblatt vergleichen. Bei Übereinstimmung sollte mir die Formel den Wert 1 zurückgeben. Klappt aber nicht! Ich bekomme 'Laufzeitfehler '1004' Anwendungs- oder objektorientierter Fehler' angezeigt.
Danke für jede Hilfe
Lothar
Antwort schreiben
Antwort 21 von lothar48 vom 18.10.2019, 12:47 Options
Hallo Rainer,
ich bin beeindruckt! Du scheinst wirklich tief in Excel drinzustecken.
So ganz klar ist mir noch nicht, was da passiert, zumal Begriffe wie ISNA oder VLOOKUP bisher nicht zu meinem EXCEL-Repertoire gehören.
Offensichtlich machst Du die Bedingung "Anzeige in grün" nur von der Nummer abhängig und nicht von Nummer und Zeitraum! Das führt zu einem Problem wenn, was ich vergaß zu erwähnen, Nummern mehrfach vorkommen.
Wenn in Tabelle1 eine Nummer mehrfach vorhanden ist, wobei das Merkmal nur bei der 1. identischen Nummer gesetzt ist, dann werden in Tabelle 3 alle Zeiträume dieser Nummer grün dargestellt.
Steht das Merkmal bei der 2. oder 3. identischen Nummer wird keiner der Zeiträum in grün dargestellt.
Wenn identische Nummern sowohl in Tabelle1 als auch in Tabelle2, vorkommen, wobei nur in einer Tabelle das Merkmal A oder E gesetzt ist, egal in welcher, dann werden in Tabelle 3 ebenfalls alle Zeiträume dieser Nummer in grün dargestellt. Allerdings nur, wenn das Merkmal bei der 1. identischen Nummer steht.
Meine Vorgabe ist, dass nur die Verbindung Nummer/ Zeitraum, die das Merkmal aufweist, in grün dargestellt werden soll!
Nochmals auf Deine Hilfe hoffend
Lothar
Antwort 23 von lothar48 vom 18.10.2019, 18:34 Options
Hallo Rainer,
ich bin beeindruckt! Du scheinst wirklich tief in Excel drinzustecken.
So ganz klar ist mir noch nicht, was da passiert, zumal Begriffe wie ISNA oder VLOOKUP bisher nicht zu meinem EXCEL-Repertoire gehören.
Offensichtlich machst Du die Bedingung "Anzeige in grün" nur von der Nummer abhängig und nicht von Nummer und Zeitraum! Das führt zu einem Problem wenn, was ich vergaß zu erwähnen, Nummern mehrfach vorkommen.
Wenn in Tabelle1 eine Nummer mehrfach vorhanden ist, wobei das Merkmal nur bei der 1. identischen Nummer gesetzt ist, dann werden in Tabelle 3 alle Zeiträume dieser Nummer grün dargestellt.
Steht das Merkmal bei der 2. oder 3. identischen Nummer wird keiner der Zeiträum in grün dargestellt.
Wenn identische Nummern sowohl in Tabelle1 als auch in Tabelle2, vorkommen, wobei nur in einer Tabelle das Merkmal gesetzt ist, egal in welcher, dann werden in Tabelle 3 ebenfalls alle Zeiträume dieser Nummer in grün dargestellt. Allerdings nur, wenn das Merkmal bei der 1. identischen Nummer steht.
Meine Vorgabe ist, dass nur die Verbindung Nummer/ Zeitraum, die das Merkmal aufweist, in grün dargestellt werden soll!
Nochmals auf Hilfe hoffend
Lothar
Antwort 24 von rainberg vom 18.10.2019, 19:27 Options
Hallo Lothar,
Du hast von mir nun schon mehrere Lösungsvorschläge erhalten, die aufgrund unzureichender Erläuterungen Deinerseits alle in die Hose gingen.
Kurze Rede - langer Sinn, ich werde versuchen Dir ein weiteres mal zu helfen, unter folgender Bedingung:
Lade noch mal eine Datei hoch mit mindestens 10 Einträgen je Grundtabelle.
Die Formeln in der Auswertungstabelle kannst Du außen vor lassen.
Anstatt der Bedingten Formatierung solltest Du alle Färbungen von Hand durchführen, achte aber darauf, dass sie auch perfekt den Vorgaben der Grundtabellen entsprechen.
Und habe etwas Geduld, meine Zeit ist im Moment sehr knapp.
Gruß
Rainer
Antwort 25 von Saarbauer vom 18.10.2019, 19:46 Options
Hallo,
habt ihr mal meine Tabelle angesehen, da habe ich nach meiner Ansicht das Problem von @lothar48 gelöst.
Link in AW 22
Gruß
Helmut
Antwort 26 von rainberg vom 18.10.2019, 20:38 Options
Hallo Helmut,
Lösung funktioniert nicht.
Drücke mal den Aktualisierungsbutton, dann siehst Du die Bescherung.
Wollte das Makro schon anpassen, aber Deine Formel ist zu lang.
Gruß
Rainer
Antwort 27 von Saarbauer vom 20.10.2019, 13:27 Options
Hallo,
du hast recht @ rainberg, aber wofür wird das Makro überhaut benötigt? Wennich die Daten in Tabelle 1 oder 2 Eintrage erfolgt automatisch eine Aktiualisierung, daher ist mir der Sinn dieser Funktion nicht klar.
Gruß
Helmut
Antwort 28 von rainberg vom 20.10.2019, 15:33 Options
Hallo Helmut,
Zitat:
...du hast recht @ rainberg, aber wofür wird das Makro überhaut benötigt?
...da müsstest Du den Thread mal von ganz oben studieren.
Leider ist mir auch nicht 100%-ig klar, was Lothar vor hat.
Vielleicht äußert er sich noch mal etwas verständlicher.
Gruß
Rainer
Antwort 29 von lothar48 vom 23.10.2019, 13:15 Options
@Rainer
Deine Kritik an der unzureichenden Problembeschreibung ist OK.
Ursprünglich hatte ich hier auch keine Komplettlösung erwartet, sondern Ansätze, wie man sowas lösen kann. In der Beziehung haben sich meine Erwartungen voll und ganz erfüllt. Gerade von Deinen Lösungsvorschlägen habe ich profitiert!
Jetzt konnte ich das Problem selber lösen! Vielleicht nicht auf die eleganteste Art, es funktioniert aber und erfüllt meine Vorgaben!
Da die Abfrage auf das Merkmal "E" bzw. "A" nicht in die erste Summenproduktformel einzubauen war, habe ich eine weitere definiert und das Ergebnis in eine zweite Tabelle geschrieben. So kann jetzt bei der Bedingten Formatierung, auf den Tag bezogen festgestellt werden, ob das Merkmal vorhanden ist und die Zelle dementsprechend grün hinterlegt werden. Die Spalten der zweiten Tabelle blende ich aus.
Meine Lösung!Der Aktualisierungs-Button ist natürlich überflüssig. Ich habe ihn nur definiert, um das in der Testphase häufig geänderte Makro aufrufen zu können (wäre auch mit PF5 möglich gewesen).
Interessieren würde mich schon, wie Du das Problem gelöst hättest?
Danke für Deine Hilfe und vielleicht bis zum nächsten Excel-Problem
Lothar
@Helmut
Auch bei Dir möchte ich mich für die aufgezeigten Lösungsmöglichkeiten bedanken!
Gruss Lothar
Antwort 30 von rainberg vom 23.10.2019, 18:35 Options
Hallo Lothar,
freut mich, dass Du Dir selbst helfen konntest.
Somit besteht auch keine Notwendigkeit, dass ich noch nach einer anderen Lösung suche.
Kann meine Zeit ganz gut für andere Aufgaben gebrauchen.
Gruß
Rainer