Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Gantt;Zellen einfärben mit Makro
#1
Schönen guten Morgen zusammen,

ich bin an folgendem Problemam am verzweifeln.


ich möchte eine Art Gantt-Diagramm erstellen. Aber die Timeline nicht über die bedingte Formatierung einfärben, da ich danach mit den farbigen Balken weiter arbeiten will.

Der Import der Dateien (Maschinen und die eine Datumsspalte) sind alle schon vorhanden, siehe unten.
Ich suche nur ein Makro, dass wie beim Gantt die Zellen für den Datumksbereich einfärbt.
Leider scheitere ich kläglich daran, da ich mich erst seit kurzem mit VBA auseinander setzte.

Für jede Hilfe wäre ich auserordentlich Dankbar!
Vorab vielen Dank für eure Hilfe!

Gruß Jonas


[ Bild bitte als Datei hochladen! ]
Antwortento top
#2
Hallo Jonas,

grundsätzlich kein Problem, aber zeige doch mal, wie das nachher aussehen soll. Außerdem verstehe ich deine Tabelle (Spaltenüberschriften) nicht:

1. Zeile: 14, 15, 16, 17, 18, 19
2. Zeile: April, April, April, April, April, Mai
3. Zeile: 1. April, 8. April, 15. April, 29. April, 6. Mai.

Worauf beziehen sich diese Werte/Datumsangaben?

Eine Beispieldatei wäre auch nicht schlecht.
Herzliche Grüße aus dem Rheinland
Lucky Joe

[Windows 10, Office 2016]
[-] Folgende(r) 1 Benutzer sagt Danke an LuckyJoe für diesen Beitrag:
  • J.L.
Antwortento top
#3
Hallo Lucky Joe,

das hört sich schonmal positiv anSmile

ich habe dir die Datei nochmal deutlicher zusammengestellt. Die oberen Werte beziehen sich auf den Montag der drüber stehenden Kalenderwoche.
Über die bedingte Formatierung bekomme ich das hin. So ist es auch in der Datei gemacht( Beispiel_Gantt). Das Problem ist, dass ich durch die Formatierung nicht mehr mit einem VBA Code die Farbigen zellen ansprechen kann. Das hat den Hintergrund dass in die eingefärbten Balken die Seriennummer und noch andere Daten reingeschrieben werden soll.

Ich hab in einem anderen Forum gesehen dass es anscheinend geht. Die Datei lade ich auch noch hoch(Gantt_aus_forum). Das Problem ist bei der anderen Datei, dass da noch der komplette Import und vieles anderes drinne Steckt, dass ich nicht brauche. Vorallem verstehe ich es überhaupt nicht und bekomme es durch meine totale unerfahrenheit leider nicht selbst hinBig Grin.
Ich will nur wie mit der Formatierung die Bereiche durch ein Makro färben.

Ich hoffe du kannst mir weiterhelfen und vielen Dank für deine Hilfe!
Liebe Grüße Jonas


Angehängte Dateien
.xlsx   Beispiel_Gantt.xlsx (Größe: 9,44 KB / Downloads: 1)
.xlsm   Gannt_aus_Forum.xlsm (Größe: 47,13 KB / Downloads: 4)
Antwortento top
#4
Hi Jonas,

nur zum Verständnis, weil du es "einfach" haben möchtest. Meinst du es z.B. so:
Code:
Sub GantFaerben()

   Dim Spalte As Integer
   Dim Zelle As Range
   
   For Each Zelle In Range("c6:c9")
       For Spalte = 4 To 11
           If Zelle = Cells(5, Spalte) Then
               Cells(Zelle.Row, Spalte).Interior.ColorIndex = 4
           End If
       Next
   Next

End Sub

Ich habe das bewusst ganz einfach gehalten mit absoluten Bereichsangaben, daran kann man ja noch feilen. Es geht nur um den grundsätzlichen Lösungsweg.

Hinweis: Vergiss nicht, vorher die bedingte Formatierung zu löschen, sonst siehst du keine Veränderung!  Wink
Herzliche Grüße aus dem Rheinland
Lucky Joe

[Windows 10, Office 2016]
[-] Folgende(r) 1 Benutzer sagt Danke an LuckyJoe für diesen Beitrag:
  • J.L.
Antwortento top
#5
Hey LuckyJoe,

funktioniert, is ja geil! Das is en toller Ansatz!
Jetzt bin ich schonmal ein rießen Stück weiter.
Das einzige was mir quasi noch fehlt wäre ein Befehl das er mir die Färbung, auch durchführt wenn das Datum nicht auf den Montag fällt, sondern inerhalb der KW liegt.
Dann könnt ich en Makro finden das mir den Bereich von der Farbe reinigt, wenn sich das Datum ändert und neu drüber laufen lassen.
Dann bin ich voll am Ziel angekommenBig Grin

super ganz großes Dankeschon an Dich!
Gruß Jonas
Antwortento top
#6
Hallo Jonas,

füge folgenden Code mal im VBA-Projekt (Projekt Explorer) unter "Microsoft Excel Objekte" in "Tabelle1 (Tabelle1)" ein (Doppelklick auf "Tabelle1 (Tabelle1)")
(also NICHT unter "Module" - "Modul1"!):

Code:
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

   If Target.Address = "$C$4" Then
       Cancel = True
       Range("D6:K9").Interior.ColorIndex = xlColorIndexNone
   End If

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

   Dim Spalte As Integer
   
   If Target.Column = 3 Then
       For Spalte = 4 To 11
           Cells(Target.Row, Spalte).Interior.ColorIndex = xlColorIndexNone
           If Target + 1 - Weekday(Target, 2) = Cells(5, Spalte) Then
               Cells(Target.Row, Spalte).Interior.ColorIndex = 4
           End If
       Next
   End If

End Sub

Damit wird auf zwei Ereignisse reagiert:

1. Ein Doppelklick auf "C4" löscht alle Farbmarkierungen.

2. Eine Veränderung innerhalb von Spalte 3 (Lieferdatum) färbt die Zellen, wie du es willst.

Ich habe wieder bewusst direkte Zellbereiche gewählt, um es etwas anschaulicher zu machen. Das kann man "schöner" machen.
"Target" ist übrigens die Zelle, die verändert wird oder auf die ein Doppelklick erfolgt.
Herzliche Grüße aus dem Rheinland
Lucky Joe

[Windows 10, Office 2016]
[-] Folgende(r) 1 Benutzer sagt Danke an LuckyJoe für diesen Beitrag:
  • J.L.
Antwortento top
#7
Klasse, Danke dir für deine Tolle UnterstützungSmile!

Probiere das am Donnerstag im geschäft aus, wenn das alles so klappt wie es soll, erstell ich ne kleine Datei mit allem, falls jemand nochmal vor dem gleichen Problem steht.Smile

Danke nochmal
Gruß Jonas!
Antwortento top
#8
Guten Mittag zusammen,

nur kleines Feedback für die Leute die nochmal das gleiche Problem haben.

Die Codes aus dem Chatverlauf funktionieren einwandfrei. Man muss nur eines beachten. Wenn ihr eine große Tabelle habt und die Vergleichsfunktion anwendet für die Einfärbung der Zellen müsst ihr darauf Achten, dass alle Zellen der angesprochenen Spalte ein Datum oder die KW, leere Zellen sind auch in Ordnung stehen. Wenn z.B.. ein Wert wie 'WERT! steht unterbricht er das Makro mit Laufzeilenfehler. Die müsst ihr vorher löschen!.
sonst funktioniert das alles Top!!

Wünsche euch ein schönes Wochenende
Gruß Jonas
Antwortento top
#9
Zitat:Wenn z.B.. ein Wert wie 'WERT! steht unterbricht er das Makro mit Laufzeilenfehler. Die müsst ihr vorher löschen!.

... oder per VBA auf Fehlermöglichkeiten reagieren Wink
Herzliche Grüße aus dem Rheinland
Lucky Joe

[Windows 10, Office 2016]
Antwortento top
#10
oder das, aber so fit bin ich noch nicht Big Grin. wollte es nur kurz ansprechenSmile

danke dir nochmal du hast mir sehr geholfenSmile
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste