Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1708to1712
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Formel in VBA umwandeln
30.08.2019 11:48:07
Jen
Hallo zusammen,
ich würde mich freuen wenn mir jemanden eine Formel in VBA umwandeln könnte, da ich in meinem Urlaubsplaner/Dienstplaner mit sehr vielen Formeln und bedingten Formatierungen arbeite und Excel dadurch extrem langsam wird.
Ausgangssituation:
In einem Arbeitsblatt ("Urlaub") befinden sich in
Spalte "C15:C101" die Nachnamen der Mitarbeiter. In
Zeile "L12:NM12" das Datum. Im
Bereich "L15:NM101" gebe ich U für Urlaub, UH für halber Tag Urlaub und K für Krankheit ein. Hier färben sich die Zellen mit der jeweiligen Farbe. (bedingte Formatierung)
Im Arbeitsblatt "Dienstplaner" habe ich eine ähnliche Tabelle erstellt.
"J12:NK12" = Datum
"J15:NK65" = Kann ich nun in den einzelnen Zellen per Dropdown die Mitarbeiter auswählen.
Nun würde ich gern, sobald ich im "Deinstplaner" einen Name an einem bestimmten Tag auswähle, dass dieser sich rot färbt sobald im Urlaubsplaner "Urlaub oder Krankheit" eingetragen ist, so dass der Anwender weiß, diesen Mitarbeiter kanner nicht einplanen.
Die Lösung per Formel lautet wie folgt:
Eingabe in bedingter Formatierung:
=SUMMENPRODUKT((Urlaub!$C$15:$C$101=J15)*(Urlaub!$L$12:$NL$12=J$12)*((Urlaub!$L$15:$NK$101="u") +(Urlaub!$L$15:$NK$101="k")))
Über Hilfe würde ich mich freuen, in der Hoffnung mein Problem mit der langen Rechenzeit von Excel löst sich.
Beste Grüße Jen

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel in VBA umwandeln
30.08.2019 11:49:00
SF
Hola,
verlinkst du bitte deine Fragen in den verschiedenen Foren gegenseitig?
Danke.
Gruß,
steve1da
AW: Formel in VBA umwandeln
30.08.2019 18:26:52
onur
"in der Hoffnung mein Problem mit der langen Rechenzeit von Excel löst sich" - Das kann natürlich auch an deiner Formel liegen.
Statt nur den Code solltest du besser mal die ganze Datei posten - ich spiele doch nicht Blindschach und programmiere Code, ohne überhaupt die Datei zu sehen oder den Code testen zu können.
Anzeige
AW: Formel in VBA umwandeln
01.09.2019 20:12:21
Jen
Hallo onur,
vielen Dank für deine Nachricht. Ich habe dir den Link zur Datei unten eingefügt, würde mich freuen wenn du mal schauen könntest.
Es geht um die Eintragungen im Arbeitsblatt "Dienstplaner".
Hier gebe ich die Namen per Dropdown ein. Im Arbeitsblatt "Urlaub" wird dann geprüft ob die Person Urlaub/Krankheit eingetragen bekommen hat, wenn ja wird der Name rot, damit der Anwender weiß er kann die Person nicht verplanen. Funktioniert gut, nur leider arbeitet Excel extrem lang. :(
https://www.herber.de/bbs/user/131769.xlsm
Anzeige
Vielleicht nutzt dir dieser Einsatzplan etwas, ...
30.08.2019 19:53:10
Luc:-?
…(Frau) Jen;
der ist zwar komplett und für Baustellen (2 Schichten bzw halbe Tage möglich), aber evtl hilft dir das ebenfalls, falls du ihn leicht für deine Zwecke anpassen kannst. Ist aber nicht gerade für VBA-Anfänger…
Einsatzplan (3 Threads):
• https://www.herber.de/forum/archiv/1540to1544/1543467_Hintergrundfarbe_vergleichen.html (gg Schluss ansehen!)
• https://www.herber.de/forum/archiv/1544to1548/1546213_Luc.html#1546213 (weniger interessant)
• https://www.herber.de/forum/archiv/1548to1552/1551248_Luc_die_3.html (gg Schluss ansehen!)
• (dazu EndDatei) https://www.herber.de/bbs/user/114632.xlsb (Berechnung auf Automatik stellen!)
Gruß, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

Anzeige
AW: Vielleicht nutzt dir dieser Einsatzplan etwas, ...
01.09.2019 20:14:30
Jen
Hallo Luc,
vielen Dank für die tollen Hinweise.
Da ich diese Woche zwei Tage auf Dienstreise bin, werde ich leider erst Mittwoch dazu kommen mir diese genauer anzuschauen. Ich gebe auf alle Fälle noch mal Rückmeldung. :)
AW: Vielleicht nutzt dir dieser Einsatzplan etwas, ...
05.09.2019 11:04:19
Jen
Hallo Luc,
ich habe mir die Tabelle mal angeschaut und den Verlauf durchgelesen.
Vermutlich ist dies nicht der Lösungsansatz den ich suche und wie du schon erwähnt hast für VBA-Anfänger doch recht komplex.
Ich bräuchte einen Code der vom Tabellenblatt "Dienstplaner" auf den das Tabellenblatt "Urlaubsplaner" verweist. Im Urlaubsplaner prüft ob an einen bestimmten Tag, der im "Dienstplaner" ausgewählte Name, Urlaub hat oder krank ist und dies farblich anzeigt.
Wie gesagt funktioniert die nachstehende Formel in der bedingten Formatierung sehr gut, bis auf die lange Bearbeitungszeit:
=SUMMENPRODUKT((Urlaub!$C$15:$C$101=J15)*(Urlaub!$L$12:$NL$12=J$12)*((Urlaub!$L$15:$NK$101="u") +(Urlaub!$L$15:$NK$101="k")))
Hier noch mal die Datei zum besseren Verständnis:
https://www.herber.de/bbs/user/131857.xlsm
Ich würde mich über Lösungsansätze freuen.
Beste Grüße
Anzeige
Mag sein, aber etwas war hoffentlich sichtbar, ...
06.09.2019 14:50:50
Luc:-?
…Jen,
ich hatte ganz auf die vom damaligen Nachfrager angedachte BedingtFormatierung, die auch bei dir wohl alles kompliziert und lange Laufzeiten verursacht, verzichtet und durch DirektFärbung per EreignisProzeduren ersetzt.
Aber da ja nun Piet eine eigene Lösung anbietet, muss ich mich dabei hoffentlich nicht mehr engagieren, denn die scheint nach seinen Ausführungen ja ebenfalls DirektFärbung zu nutzen… ;-)
Viel Erfolg! Gruß, Luc :-?
AW: Mag sein, aber etwas war hoffentlich sichtbar, ...
06.09.2019 15:14:06
Jen
Hallo Luc,
vielen Dank für dein bisheriges Engagement. Ja der Lösungsansatz von Piet ist wirklich gut, ich hoffe es besteht die Möglichkeit den Code dahingehend noch anzupassen :)
Verzeih mir bitte wenn ich nicht ganz verstanden habe was du meintest, VBA ist für mich noch Neuland - aber ich bin dran und gelobe Besserung. :)
Ich wünsche Dir ein schönes Wochenende und schreie sollte ich weiterhin Hilfe benötigen ;-P
Beste Grüße Jen
Anzeige
AW: Formel in VBA umwandeln
05.09.2019 20:04:13
Piet
Hallo
ich bin mal meinen eigenen Weg gegangen und biete diese Lösung an.
Per Button werden alle Daten, Namen von Urlaub und Krank-heitstagen in den Dienstplan übertragen und farblich markiert. Man sieht am Namen wer Urlaub hat oder Krank ist. Steht dort bereits ein Mitarbeiter Name der eingeteilt ist wird diese Zelle übersprungen. Wird in die Zelle ein neuer Name eingegeben löscht das Target Makro die Innnenfarbe.
Hinweis: - in Tabelle Urlaub sind die Spalten vertauscht. Bei Spalte C steht oben Vorname, es steht aber der Familien Name drin!
Wenn das falsch ist muss man das Makro korrigieren. Würde mich freuen wenn die Idee brauchbar ist.
https://www.herber.de/bbs/user/131870.xlsm
mfg Piet
Anzeige
AW: Formel in VBA umwandeln
06.09.2019 08:51:54
Jen
Hallo Piet,
ich glaub die zweite Nachricht war nicht auf mich bezogen :)
Zu deiner ersten Nachricht - ich bin begeisterst. Dein Lösungsansatz ist wesentlich besser als meiner. So hat der Anwender vorab schon die Übersicht welcher MA Krank ist oder Urlaub hat und braucht nicht "Glücksrad" spielen. :)
Jetzt besteht leider noch das Problem dass die Namen chronologisch nach dem Urlaubsplan im Dienstplaner eingefügt werden.
Da ich im Dienstplaner Reviere vergebe (bzw. in "Stammdaten Personal"), kann dies von der Reihenfolge abweichen.
Es ist nur Zufall dass die Namen im Urlaubsplaner und Dienstplaner analog angeordnet sind.
Kann man eventuell den Bezugspunkt "Stammkraft" verwenden? Also im Dienstplaner wird geschaut welche Stammkraft (Spalte C) eingeplant ist und dieser Name wird im Urlaubsplaner gesucht sowie die Urlaub und Krankheitstage übertragen.
Dann hätte ich noch zwei Punkte:
1. Kann man die bedingte Formatierung (Feiertage, Wochenenden) mit der Signalfarbe (Urlaub, Krankheit) überschreiben? Da wird aktuell die bestehende Hintergrundfarbe angezeigt.
2. Wie könnte man vermeiden dass bei "Doppelnamen", sprich ich habe zwei Mayer oder Müllers der falsche gewählt wird? Notfalls muss ich die Anwender dahingehend schulen dass bei Doppelnamen der Anfangsbuchstabe vom Vornamen mit eingetragen wird.
Ich würde mich über deine Hilfe freuen, da ich deinen Ansatz wesentlich besser finde als meiner.
Ich habe die Datei noch mal angehangen, damit du siehst was ich meine. Im Dienstplaner sind die Reviere namentlich vergeben, nach Anwendung des Codes stehen in der jeweiligen Zeile die Namen in der Reihenfolge aus dem Urlaubsplaner.
https://www.herber.de/bbs/user/131874.xlsm
Vielen dank vorab.
Beste Grüße Jen
Anzeige
Piet hat den Weitermachen-Link nicht genutzt, ...
07.09.2019 18:34:17
Luc:-?
…Jen,
stattdessen neu angefangen: https://www.herber.de/forum/messages/1711742.html
Übrigens habe ich im Netz nur Damen unter deinem NickName (als Vorname) gefunden. Piet macht daraus (trotz Hinweises) stets Jens
Luc :-?
Anzeige
AW: Formel in VBA umwandeln
06.09.2019 15:39:25
Daniel
Hi
ich gehe mal davon aus, dass die Datumsbereiche in beiden Tabellen die selben sind, nur um ein paar Spalten versetzt.
wenn das der Fall ist, dann ist es nicht notwendig, den kompeletten Kalender nach dem einem Datum zu durchsuchen, sondern du kannst gleich auf jeweilige Spalte zugreifen, ohne zu suchen.
auch beim Namen kannst du dir die Zeilennummer besser mit VERGLEICH ermitteln lassen.
das sieht dann in etwa so aus, wenn nur bei den Texten "u" und "k" in der Zelle gefärbt werden soll:
Formel für die Bedingte Formatierung im Zellbereich Dienstplan!J15:NK65
=IstZahl(Finden(Index(Urlaub!L$15:L$101;Vergleich(J15;Urlaub!$C$15:$C$101;0));"uk"))
etwas einfacher, wenn der Text eigentlich egal ist:
=Index(Urlaub!L$15:L$101;Vergleich(J15;Urlaub!$C$15:$C$101;0))""
aber wie gesagt, funktioniert so nur, wenn die Kalender in beiden Tabellen im Gleichklang laufen und nur um ein paar Spalten versetzt sind.
Gruß Daniel
Anzeige
AW: Formel in VBA umwandeln
12.09.2019 14:50:55
Jen
Hallo Daniel,
auch dir wollte ich noch ein Feedback geben. Deine Formel funktioniert auch einwandfrei.
Vielen Dank für den Tipp und deine Hilfe.
Beste Grüße Jen.

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige