myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   excel formel problem (https://mygully.com/showthread.php?t=2356229)

FwGEx0dus 04.07.11 15:09

excel formel problem
 
hi, benötige für die arbeit ne urlaubsplanung

jez benötige ich in meiner urlaubsplanung die jeweiligen wochenenden... wenn ich z.b. 2011 eingebe in einer zelle, dass dann die wochenenden für 2011 drin stehen und wenn ich 2012 eingebe, dass die wochenenden dementsprechend für 2012 in der tabelle stehen..... wochenenden können mit "X" gekennzeichnet sein...
wie soll das gehen, wie kann ich das umsetzten?

Your_Conscience 04.07.11 17:05

Naja, ob es so eine Formel gibt weis ich nicht (ich denke mal nicht, dass es so ist), aber wenn du die Wochenenden in einer Liste haben willst, kannst du sie dir auch manuell erstellen.
Für 2011 gibst du in der ersten Zelle z.B. 01.01.2011 und in der 2. Zelle 02.01.2011.
Dies ist das erste Wochenende im Jahr 2011 (Sa, So). Willst du das 2. Wochenende haben, gibst du in der 3. Zelle einfach "=Zelle1 + 7" und in der 4. Zelle "=Zelle2 + 7" ein.
Für alle anderen Wochenenden aus 2011 kannst du den Inhalt aus den Zellen 3 und 4 einfach nach unten Kopieren, den Rest sollte Excel dann selbst machen.

Ich weis, das ist nicht die Lösung die du wolltest, aber besser als garnichts. :)
Vielleicht antwortet ja noch jemand, der Ahnung von Excel hat.

sivro 04.07.11 18:57

Versuchs mal damit

Code:

Sub Jahreskalender()
Dim ws As Worksheet
Dim varYear As Variant
Dim bytMonth As Byte
Dim bytDay As Byte
Dim bytWeekday As Byte
Dim strWeekday As String
Dim bytWeekNo As Byte
Dim bytDummy As Byte
' Das Jahr des Kalenders, der ausgegeben werden soll
varYear = Range("B2")
' Falls bereits ein Blatt mit dem Namen "Jahr xxxx"
' existiert, soll dieses gelöscht werden
For Each ws In Worksheets
If ws.Name = "Jahr " & varYear Then
ws.Delete
End If
Next ws
' Ein neues Tabellenblatt mit dem Namen "Jahr xxxx"' einfügen
Worksheets.Add
ActiveSheet.Name = "Jahr " & varYear
' Monatsüberschriften einfügen und formatieren
For bytMonth = 1 To 12
With Cells(1, bytMonth)
.Value = Format(DateSerial(varYear, bytMonth, 1), _
"mmmm")
.Interior.ColorIndex = 36
.Font.Bold = True
End With
' Tage aufbereiten
For bytDay = 1 To Day(DateSerial _
(varYear, bytMonth + 1, 0))
With Cells(bytDay + 1, bytMonth)
bytWeekday = Weekday(DateSerial _
(varYear, bytMonth, bytDay))
' Wochentage in Textformat aufbereiten
Select Case bytWeekday
Case 1
strWeekday = "So"
Case 2
strWeekday = "Mo"
Case 3
strWeekday = "Di"
Case 4
strWeekday = "Mi"
Case 5
strWeekday = "Do"
Case 6
strWeekday = "Fr"
Case 7
strWeekday = "Sa"
End Select
' Wochentage und Tage eintragen
.Value = strWeekday & ", " & bytDay
' Samstage hellgrau hervorheben
If bytWeekday = 7 Then
.Interior.ColorIndex = 15
End If
' Sonntage dunkelgrau hervorheben
If bytWeekday = 1 Then
.Interior.ColorIndex = 48
End If
' Kalenderwoche eintragen
bytWeekNo = _
Format(DateSerial(varYear, bytMonth, bytDay), _
"ww")
If bytDummy < bytWeekNo And strWeekday <> "So" Then
bytDummy = bytWeekNo
.Value = .Value & " (" & bytDummy & ")"
' Formatierung Kalenderwoche
With .Characters _
(Start:=InStr(1, .Value, "("), _
Length:=4).Font
.Size = 8
.Color = vbRed
End With
End If
End With
Next bytDay
Next bytMonth
End Sub



Einfach in ein Modul einfügen und mit F5 ausführen. Vielleicht lässt sich der Code ja deinen Wünschen anpassen.


Quelle:
Microsoft Office Excel 2007-Programmierung
Das Handbuch

taeubchen1 04.07.11 19:11

Gib einfach 1.1.11 in eine Zelle ein.
rechte Maustaste / Zelle formatieren
in der Kategorie gehst du auf Datum
Typ auf *Mittwoch, 14.März 2001* (z.B) und ok
dann klickst du in die rechte untere Ecke der Zelle und ziehst so weit runter wie du willst
und schon hast du alle Tage mit Bezeichnung
3 Sekunden Sache

Und wenn du noch auffälliger das Wochenende haben willst, ziehst du so das du eine Woche von Mo.-So. hast, markierst den Sa.+So farbig. Markierst genau die Woche und ziehst runter. So hast du alle Wochenende z.B. gleich farbig markiert.

FwGEx0dus 04.07.11 21:23

ich zeig mal auf wie ich meinen kalender bisher gestaltet habe....

http://imageshack.us/f/820/excelwe.jpg/


is bisher relativ simpel und bisher nur fiktive urlaubstage usw.. eingetragen. mir ist jedoch wichtig, dass ich im Feld AH 1 beispielsweise jahr 2011 od. 2012 eintragen kann und dann z.b. grau hinterlegte kästchen in den zellen erscheinen für samstage und sonntage.... also die kästchen müssten automatisch wandern dem jeweiligen jahr entsprechend.... wenn ihr wisst was ich meine... hehe

is alles sehr schlecht beschrieben bin nicht so der fachmann für excel.... aber hoffe mir kann jemand weiterhelfen

wmosebach 05.07.11 12:38

Soweit ich weiß kannst du mit Formeln keinerlei Formatierung einer Zelle vornehmen, dazu musst du Makros einsetzen, bzw auf Programmierung im Hintergrund setzen.
Diese könntest du beispielsweise auslösen durch drücken eines Buttons.

Bevor du dir aber den Aufwand machst, mach es lieber per hand, da ist um einiges weniger Aufwand als das ganz komplex zu programmieren...

Alternativ halt dich an das was sivro geschrieben hat.

sivro 05.07.11 18:24

Du könntest auch einfach Microsoft Outlook verwenden, das wäre geradezu
prädestiniert für Terminplanung und Kalenderfunktionen.

FwGEx0dus 05.07.11 19:56

hab mir grad ma outlook angeschaut.. das geht leider nicht... da ich wie gesagt, wenn urlaub eingetragen wird im kalender automatisch 1 tag vom vorhanden urlaub abgezogen und der restlichte zu verplante urlaub noch angezeigt wird...

benötige bei excel eine möglichkeit, dass jahr einzugeben. wo im kalender die wochenenden + feiertage erscheinen am besten grau hinterlegt eine zelle...
so hab ich für mich ne bessere übersicht bei der urlaubsplanung.. könnte auch jedes jahr die wochenenden manuell eintragen... aber wenn schon die möglichkeit besteht möchte ich dies auch nutzen...
bei diesen excel dokument besteht die möglichkeit wie gesagt das jahr anzugeben.. leider habe ich dort nur eine monatsansicht..
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Mr_Braun 05.07.11 21:09

Zitat:

Zitat von wmosebach (Beitrag 22468755)
Soweit ich weiß kannst du mit Formeln keinerlei Formatierung einer Zelle vornehmen, dazu musst du Makros einsetzen, bzw auf Programmierung im Hintergrund setzen.

Wie wäre es mit einer "Bedingten Formatierung"?
Damit kann innerhalb eines gegebenen Bereichs alles was den Zelleninhalt "SA" hat rot markiert werden etc.

Urlaubstage kann man aus "X"en und mit "ZÄHLEN WENN" zusammenzählen lassen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:57 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.