Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
924to928
924to928
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Bedingte Formatierung mit VBA Code
19.11.2007 15:48:49
Nadine
Hallo Ihr VBA-Profis,
Ich hoffe jemand kann mir mit meinem Problem helfen.
Ich habe eine Excel-Datei mit 5 Tabellenblättern („StartDatum“; „Planung“; „ListeBox“; „InputBox“; „BerechnungBox“)
In der Tabelle „StartDatum“ habe ich die Produktion StartDatum jedes Produkt.
In der Tabelle „ListeBox“ habe ich alle die Produkte aufgelistet mit dazugehörige Maschine (oder alternativ Maschine) für die Produktion.
In der Tabelle „InputBox“ gebe ich der benötigten Produktionsmenge jedes Produkt ein.
In der Tabelle „BerechnungBox“ berechne ich das EndeDatum der Produktion jedes Produkt. Und setze ich es gegenüber dem StartDaum, so bekomme ich die Produktionszeit (StartdDatum bis EndeDatum) jedes Produkt.
Nun möchte ich in der Tabelle „Planung“ diese Produktionszeit jedes Produkt als Farbe in Zeit-Skala in der Bereich E7:IV108 (also Excel Ende) anzeigen lassen.
Für das, habe ich in der Tabelle „Planung“
Spalte A: alle Maschinen aufgelistet
Spalte B: alle Produkte je nach Maschinensangehörigkeit aufgelistet (Achtung: Es kommt häufig vor, dass ein Produkt auf einer Maschine oder anderen alternativen Maschine produzieren kann. Aber eine Maschine kann gleichzeitig nur ein Produkt produzieren.)
In Bereich D2: IV5 (also bis Excel Ende) habe ich eine Zeitskala hintergelegt.
Ich habe mit Sverweis in der Bedingte Formatierung probiert:
=UND((G$4+G$5)>=SVERWEIS($B7;$A$121:$E$161;3);(G$4+G$5) und unterkopieren!
halbwegs klappt auch. Aber es gibt noch folgende weitere Bedingungen:
- wenn die Produktionszeite (StartDatum bis EndeDatum) eines Produktes auf einer Maschine angezeigt ist, darf nicht mehr dieselbe Produktionszeite auf anderer Maschine noch mal gezeigt werden.
- Auf dieselbe Maschine dürfen sich nicht die Produtionszeite von verschiedenen Produkten überschneiden. d.h. das StartDatum des zweiten Produktes kann nur gezeigt werden ab das EndeDatum des ersten Produkts u.s.w.
- Für die Produkte, die alternative Produktionsmaschine haben. Soll das StartDatum auf der nächste früher möglich Frei Maschine angezeigt werden, wenn die erste Maschine für diese StartDatum besetzt ist u.s.w.
Allein mit Bedingte Formatierung komme ich leider nicht mehr weiter. Wäre es super super wenn ihr mir mit einem VBA-Code da weiterhelfen könnt.
Danke im Voraus!
https://www.herber.de/bbs/user/47870.xls
Nadine

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedingte Formatierung mit VBA Code
19.11.2007 22:06:00
Christian
Hallo Nadine,
du hast zwar dein Problem ausführlich geschildert, aber ich fürchte, das schreit nach 'ner Datenbank-Anwendung. Richtig aufgebaut, kann man auch Excel als "Quasi-DB" verwenden (aber dies erfodert wie bei 'ner echten DB auch erheblichen Programmieraufwand).
Grundlegende Frage ist - was willst du damit erreichen?
- willst du mit Hilfe der Excel-Tabelle die verfügbaren Maschinen für den nächsten Start von Produkt X anzeigen lassen - also nur Kurzfristig, sprich die Daten werden nach der laufenden Produktion gelöscht?
- oder willst du einen längerfristigen Belegungs-Plan bei dem du die Maschinen sowohl für die nachste Produktion als auch für weitere Termine belegen kannst - dann müssten die Belegungs-Daten pro Maschine und Produkt irgendwo gespeichert werden.
Für beide Fälle gilt:
- was passiert, wenn eine Maschine ausfällt?
- was passiert, wenn eine Person ausfällt oder eine zusätzliche Person hinzugenommen wird, um die Produktion zu steigern?
- wie sollen Abweichungen zwischen berechneten und tatsächlichen Produktionszeiten gehandhabt werden?
- etc., etc.
Ich glaube nicht, dass dies alles mittels bedingter Formatierung oder ein paar Code-Zeilen zu "erschlagen" ist, sondern hört sich eher nach umfangreicher Programmierung an.
Vielleicht habe dich ja aber auch falsch verstanden; daher die Frage noch offen.
Grüße
Christian

Anzeige
AW: Bedingte Formatierung mit VBA Code
19.11.2007 23:10:02
Daniel
Hi
erstmal respekt zu der Tabelle, das ist schon sehr komplex.
so richtig steig ich da auf den ersten Blick nicht durch ;-) (bitte hier als Lob verstehen)
daher nur ne kleine Anmerkung von mir:
ich würde die Formel aus der Bedingten Formatierung in die Zellen übertragen (und zwar in alle) und noch mit 1 multiplizieren
dann haben alle belegten Maschinenzeiten den Wert 1 und alle freien Maschinenzeiten den Wert 0
das hat für dich folgene Vorteile:
- die Formel ist in der Zelle wesentlich einfacher editierbar als in der Bedingten Formatierung (falls noch Änderungen gemacht werden müssen)
- durch die Werte 1 und 0 kannst du dann auch recht einfach über Formeln (z.B. Summe oder SummeWenn) prüfen, wann eine Maschine belegt ist und ob sie zu irgendeinenm Zeitpunkt doppelt belegt ist
vielleicht hilft dir das, dein Projekt ohne VBA durchzuziehen.
die Bedingte Formatierung zum Färben der Zellen kannst du ja drinlassen, aber dann brauchst du nur auf 0 oder 1 zu prüfen.
Gruß, Daniel

Anzeige
Bedingte Formatierung mit VBA Code
20.11.2007 09:36:00
Nadine
Hallo Christian, Hallo Daniel, guten Morgen an alle,
erst mal Entschuldigung bitte, dass ich gestern nicht mehr reagiert habe. ich war irgendwann mal eingeschlafen, nach vielem Versuch mit Excel-Formeln ohne Erfolg (weil ich noch Anfänge in VBA-Code bin).
https://www.herber.de/bbs/user/47870.xls
Und vielen Dank an Christian und Daniel, ich war schon verzweifelt!
An dir Christian,
allein wenn ich deine Grundlegende Frage lese, glaube ich, dass du mir richtig schon verstanden hast.
Ich wollte nicht auf einer mal alle diese zusätzliche Info hinschreiben. Das wäre so viele Anforderungen auf eine mal. Sowieso klingt schon etwas einbißchen kompliziert an.
Jetzt zur die Anworte an deine Frage:
-Richtig!!! ich will mit Hilfe von Excel-Tabelle die verfügbarn Maschinen für den nächsten start von Produkt X anzeigen lassen. Nur kurzfristig.
Siehst du die Tabelle „StartDatum“ ist mit anderer Excel-Datei verknüpft, alle diese StartDatum jedes Produkt wird jedes mal automatisch aktualisiert (zB. Jede 2 Tage). Und will ich gar nicht die vorher berechneten Produktionszeiten-Daten speichern.
So ist der Ablauf: jedes mal wenn ich meine Excel-datei öffne, aktualiert sie sich alle „StartDatum“ alle Produkte automatisch (weil ich schon das mit andere Datei verknüpfe habe, es ist schon gemacht. Muss hier nicht mehr etwas getan werden).
Dann gebe ich manuel in der Tabelle „InputBox“ für jedes Produkt die Benötigte Menge ein, dadurch wird das EndDatum für jedes Produkt berechnet, diese steht in der Tabelle „BerechnungBox“. Hier will ich auch nicht diese Datei irgendwo speichern. Nur für die gerade „StartDatum“ das „EndeDatum“ anzeigen lassen in der Tabelle „BerechnungBox“ wie das ist.
Also es ist keine große DatenBank Sache. Die Daten werden nach der laufenden Produktion sagen wir „aktualiesert“.
Nun hast du auch andere Punkt getroffen.
-Was passiert, wenn eine Maschine ausfällt? Wenn eine Maschine ausfällt, heiß ist er nicht mehr im Rennen. Ich habe vor in der Tabelle „ListeBox“ alle Maschinen aufzulisten mit AnfangDatum-Ausfall und EndeDatum-Ausfall. Und dann wenn gegenüber eine Maschine die AnfangDatum-Ausfall und EndeDatum-Ausfall null sind wird dann die Maschine berücksichtigt, sonst existiert die Maschine für die Zeitraum nicht. Und diese AnfangDatum-Ausfall und EndeDatum-Ausfall gebe ich auch manuel jedes Mal ein, wenn eine Maschine ausfällt.
-Abweichungen zwischen berechneten und tatsächlichen Produktionszeiten? Weil die Produktionszeiten jedes Mal nicht irgendwo gespeichert sind. Wird diese Abweichungen gar nicht behandeln. Ich werde selbe das steuern, indem ich jedes mal die „Benötigte Menge“ in der Tabelle „InputBox“ neue (und manuel) eingebe (od. ändern), so werde die „EndDatum“ erneuet berechnet und die ganze verschiebt sich.
-Für die Person Ausfällt od. Produktionsteigerung, dass kriege ich auch hin. Mir geht erst mal darum die berechneten Produktionszeiten kurzfristig (wie du gesagt hast) in der Tabelle „Planung“ mit hilfe von VBA-Code anzeigen lassen.
Ich bedanke mich viel Mal für alle Unterstützungen .
Nadine Hahnel

Anzeige
Bedingte Formatierung mit VBA Code: Hilfe!
20.11.2007 10:53:00
Nadine
noch mal Hallo zusammen,
hier noch eine paar Eklärungen zur meinem Problem.
genau:
weiss ich nicht: wie ich die "doppelt belegt" eines Produkt "zu irgendeinem Zeitpunkt" auf mehr Maschinen vermeinden kann.
zB. in meine Datei: https://www.herber.de/bbs/user/47870.xls
das Produkt W170 LH und W170 RH ist:
auf Maschine 1: siehe Zeile 13 und 14 belegt
dann auf Maschine 2: siehe Zeile 32 und 33 belegt
und noch auf Maschine 3: siehe Zeile 55 und 56 belegt
es soll nur auf eine Maschine Belegt sein und zwar zwischen alle die 3 Maschine die erst nächsten verfügbar Maschine.
und auch weiss ich nicht: wie ich die "doppelt belegt" mehr Produkte "zu irgendeinem gleichem Zeitpunkt" auf einer Maschine vermeinden kann.
zB. in meine Datei: https://www.herber.de/bbs/user/47870.xls
auf die Maschine 1:
überschneiden sie sich das EndDatum des Produkt W170 LH und das StartDatum des Produkt W170 RH.
das darf nicht sein, diese zweite StartDatum soll nur angezeigt werden ab Ende des EndDatum das Produkt W170 RH. siehe V13 und V14.
hat jemand ein Tipp für mich?
Danke, Nadine

Anzeige
AW: Bedingte Formatierung mit VBA Code: Hilfe!
20.11.2007 22:15:00
Christian
Hallo Nadine,
ich habe mir noch ein paar Gedanken gemacht zu deinem Problem - komme aber weiterhin zu dem Schluss, dass die Aufgabe zu komplex ist, um sie hier im Forum zu lösen.
Meine Ansätze:
- führe die Daten in einer Tabelle zusammen (zwecks besserer Übersicht, etc.)
- zeige die Belegung der Machinen in dieser Tabelle mittels bedingter Formatierung an (zB. grün="Maschine frei"; gelb="Maschine in Produktion", rot="Maschine durch Produktion von anderem Produkt geblockt").
- Auswahl der Machinen für neue Belegung ist abhängig von Datum und Uhrzeit, ab wann diese wieder frei ist (über Gültigkeit).
- alle Informationen (Vorgaben, Eingaben und Berechnungen) würden in dieser zentralen Tabelle stehen.
- als Kür könnte man dann einen Belegungsplan, so wie du ihn dir vorstellst, erzeugen. Hier würde ich aber eher versuchen, diesen in Form eines Diagramms darzustellen und nicht über bedingte Formatierung einzelner Zellen in einer separaten Tabelle.
Ich weiß, dies ist nicht die Antwort auf deine Frage, aber vielleicht ein Anstoß über die Struktur nachzudenken.
Meine Ansatz könnte wie folgt aussehen:
Userbild
Rückmeldung wäre nett,
Christian

Anzeige
AW: Bedingte Formatierung mit VBA Code: Hilfe!
21.11.2007 07:35:00
Nadine
Hallo Christian,
ich danke dir viel mals für deine Mühe und Ansatz.
seit ich diese Projekt angefange habe, fülle ich mich unter hohe druck und Stress, bin ich krank geworden und bestimmt werde ich keine ruhe habe bevor ich die Lösung gefunden haben.
vielleicht hast du recht, muss ich vielleicht die Strukcture noch mal bedanken.
auf jede fall werde ich mich mit deine Ansatz befassen. und vielleicht kann ich so das Problem erst mal umgehen.
noch mal danke, Christian
Nadine.

AW: Bedingte Formatierung mit VBA Code: Hilfe!
21.11.2007 21:19:00
Christian
viel Erfolg und Grüße an Akim.
Christian

AW: Bedingte Formatierung mit VBA Code: Hilfe!
21.11.2007 23:35:00
Dirk
Hallo Nadine,
ich hätte da noch eine Lösung für dein Problem, einfach mal die Datei ansehen.
Das Macro ist aber noch nicht fertig hat noch einige Fehler.
https://www.herber.de/bbs/user/47937.xls
Ich hoffe das es dir weiterhilft.
Dirk
Anzeige

354 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige