Hallo zusammen, vielleicht könnt ihr mir helfen.
Ich habe eine Aufgabe erhalten, bei der Urlaubsplanung die Tage zu zählen, die der Mitarbeiter nicht da ist (Tage 1-31 sind in den Spalten B-AF vermerkt; Spalte A Name des MA). Die Tage an denen der Mitarbeiter nicht da ist sollen rot (manuell) markiert werden. Ich möchte jetzt hinter diesen Zellen (also Spalte AG) die Anzahl ausgegeben haben, wieviele dieser Tage rot markiert wurden. Klar kann man das immer zählen, aber wozu gibt es Excel:wink:.
Ich habe mich jetzt schon den ganzen Nachmittag damit auseinander gesetzt, auch in verschiedenen Foren gesucht und habe es nicht geschafft diese Aufgabe zu bewerkstelligen, selbst mit Profi Tipps:frowning:. Und langsam bin am verzweifeln.
Kann mir eventuell jemand sagen wie ich das hinbekommen kann?? Und wenn es nur mit VBa realisierbar ist eventuell auch ne kleine Anleitung, da ich mich mit VBa in keinster Weise auskenne.
Vielen Dank für eure Unterstützung und ich hoffe ihr könnt mir helfen
MfG
Hallo Straffa,
Ich habe eine Aufgabe erhalten, bei der Urlaubsplanung die
Tage zu zählen, die der Mitarbeiter nicht da ist (Tage 1-31
sind in den Spalten B-AF vermerkt; Spalte A Name des MA). Die
Tage an denen der Mitarbeiter nicht da ist sollen rot
(manuell) markiert werden.
du färbst die Zellen manuell? Geht es nicht effektiver wenn du
an den Urlaubstagen ein U,u in die Zellen einträgst? Das
Färben übernimmt dann die bed. Formatierung.
Das Urlaubstage zählen macht dann die Zählenwenn() Funktion.
Ich möchte jetzt hinter diesen
Zellen (also Spalte AG) die Anzahl ausgegeben haben, wieviele
dieser Tage rot markiert wurden. Klar kann man das immer
zählen, aber wozu gibt es Excel:wink:.
Schreibe in die betreffenden Zellen in AG diese Formel:
=Urlaub(zeile())
Vorher klicke mit rechts unten auf den Blattnamen, dann „Code
anzeigen“, jetzt biste im Editor. Wähle dort Einfügen—Modul.
In das Modul kopierst du nachfolgenden Code. Schließe dann den
Editor.
Gruß
Reinhard
Option Explicit
Function Urlaub(ByVal Zeile As Long) As Integer
Dim Spa As Long
For Spa = 2 To 32 'Spalte B-AF
If Cells(Zeile, Spa).Interior.ColorIndex = 3 Then Urlaub = Urlaub + 1
Next Spa
End Function
Hallo Reinhard,
erstmal vielen herzlichen Dank für Deine Hilfe. Ich bin schon sehr gut voran gekommen.
Habe jetzt aber doch noch ein paar Fragen.
Ich habe die bedingte Formatierung mit deinem Vorschlag so realisiert und das in Spalte AH zusammen zählen lassen. Das funktioniert und danke dafür.
Dann habe ich in Spalte AG den Vermerk =Urlaub(zeile()) geschrieben. Aber nach Eingabe des Codes und anschließender manueller Farbänderung (E4) steht in der Zelle AG4 eine 0. Selbst nach manueller Farbänderung anderer Zellen in der Zeile 4 und erneuter F9 Betätigung ändert sich diese Zahl nicht. Hatte ich dabei etwas vergessen einzutragen??
Ich habe auch ein Bild mit rangehangen, um meine Frage näher aufzuzeigen.
Vielen Dank nochmals für Deine Bemühungen,
viele Grüße
Raphael
Hallo Raphael,
Ich habe die bedingte Formatierung mit deinem Vorschlag so
realisiert und das in Spalte AH zusammen zählen lassen. Das
funktioniert und danke dafür.
dann nimm doch die bed. Formatierung und lass die Funktion
Urlaub() weg.
Dann habe ich in Spalte AG den Vermerk =Urlaub(zeile())
geschrieben. Aber nach Eingabe des Codes und anschließender
manueller Farbänderung (E4) steht in der Zelle AG4 eine 0.
Selbst nach manueller Farbänderung anderer Zellen in der Zeile
4 und erneuter F9 Betätigung ändert sich diese Zahl nicht.
Nimm den nachfolgenden Code und benutze in Excel diese Formel:
=urlaub(ZEILE())+JETZT()*0
Jetzt reagiert die Formel auf F9. Sie reagiert auch auf normale
Formeländerungen. Angenommen du hast irgendwo die Formel =A1
und änderst A1 manuell dann reagiert die Formel auch.
Function Urlaub(ByVal Zeile As Long) As Integer
Application.Volatile
Dim Spa As Long
For Spa = 2 To 32 'Spalte B-AF
If Cells(Zeile, Spa).Interior.ColorIndex = 3 Then Urlaub = Urlaub + 1
Next Spa
End Function
Gruß
Reinhard
Hallo Reinhard,
ich wollte mich nochmal ganz herzlich bedanken, es funtkioniert alles so wie gewünscht und alle sind happy:smile:. Jetzt habe ich auch erst verstanden, dass du mir eigentlich zwei Lösungswege gegeben hast:smile:. Aber jetzt funtkioniert ja alles. Eine angenehme Restwoche wünsche.
Viel Grüße Raphael