Forums Neueste Beiträge
 

Datumlinie aktueller Tag

04/01/2009 - 00:40 von Willy Steffen | Report spam
Guten Abend
Ich bin daran ein Projektplan mit Ganttgrafik zu realisieren. Wegen Mangel
an Kolonnen (256) habe ich Kalenderwochen gewàhlt. Für die Ermittelung der
KW-Woche habe ich im WEB eine VBA-Funktion gefunden. Das Balkendiagramm wird
in den Zellen mit Hilfe der "Bedingten Formatierung" erstellt. Für die
Datumlinie habe ich die Zellenformel "=WENN(kw(HEUTE())=R$2;"▒";"")" gewàhlt,
und es funktioniert. Nun ich wollte ich aber in die Zellen (Balkengrafik)
jeweils die Ressource eintragen und suche deshalb eine andere Lösung.
Ueber die bedingte Formatierung wollte ich es versuchen, in dem der lunke
Rand der Zelle rot und Fett ist. Leider wird hier keine Tabellenformel
akzeptiert.
Kann mir da jemand helfen eine Lösung in der bedingten Formatierung zu
finden oder über ein VBA-Makro?
Ich danke bereits vielmals für Anregungen und Ideen.
Willy
 

Lesen sie die antworten

#1 Andreas Killer
04/01/2009 - 10:42 | Warnen spam
Willy Steffen schrieb:

Ich bin daran ein Projektplan mit Ganttgrafik zu realisieren. Wegen Mangel
an Kolonnen (256) habe ich Kalenderwochen gewàhlt. Für die Ermittelung der


Also Du möchtest im Prinzip die Darstellung von Microsoft Project in
Excel nachbilden?

KW-Woche habe ich im WEB eine VBA-Funktion gefunden. Das Balkendiagramm wird
in den Zellen mit Hilfe der "Bedingten Formatierung" erstellt. Für die
Datumlinie habe ich die Zellenformel "=WENN(kw(HEUTE())=R$2;"▒";"")" gewàhlt,
und es funktioniert. Nun ich wollte ich aber in die Zellen (Balkengrafik)
jeweils die Ressource eintragen und suche deshalb eine andere Lösung.


Die Zellen mit ▒ auszufüllen ist keine gute Lösung, denn dann kannst Du
ja nichts mehr reinschreiben.

Ueber die bedingte Formatierung wollte ich es versuchen, in dem der lunke
Rand der Zelle rot und Fett ist. Leider wird hier keine Tabellenformel
akzeptiert.


Das wird sich nur mit VBA elegant lösen lassen.

Nun du müsstest die Zellen mit einer Farbe ausfüllen, also den
Zellhintergrund.

Dann bràuchstest Du eine function die Dir den gewünschten Bereich berechnet.

Und Du müsstest Dir überlegen wie Du die Ansteuerung des ganzen
auslegst, d.h. wann wird der Bereich eingefàrbt, wo werden in welcher
Form die "Von-Bis"-Daten und Bezeichnungen der Projekte ablegt etc.

Hier mal ein kleines Low-Level Grundgerüst:

SCHNIPP
Const MaxRange = 52 'Anzahl Spalten die ein Jahr darstellen

Function Date2Range(ByVal Datum As Date) As Integer
'Liefert die Spalte für Datum taggenau auf Basis 0: (1.1.Jahr = 0)
Date2Range = MaxRange / 365 * (Datum - CDate("1.1." & Year(Datum)))
End Function

Sub SetColor(ByVal Bereich As Range, ByVal Farbe As Integer)
With Bereich.Interior
.ColorIndex = Farbe
.Pattern = xlSolid
End With
End Sub

Sub Main()
Von = "15.2.09"
Bis = "23.3.09"
Zeile = 1
Farbe = 3 'Rot

'Gesamten Bereich entfàrben
SetColor Range(Cells(Zeile, 1), Cells(Zeile, MaxRange)), xlNone

'Bereich berechnen
X1 = Date2Range(Von) + 1
X2 = Date2Range(Bis)

'Bereich einfàrben
SetColor Range(Cells(Zeile, X1), Cells(Zeile, X2)), Farbe

'Bereich bezeichnen
Cells(Zeile, X1) = "Projektname"
End Sub
SCHNAPP

Ich denke ich würde die Projektdaten in einer seperaten Tabelle
spaltenweise ablegen und dann das ganze dort via

Private Sub Worksheet_Change(ByVal Target as Range)
'Gantt-Grafik aktualisieren
End Sub

verarbeiten.

Andreas.

Ähnliche fragen