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.

VBA - Zellen nach Datum von/bis Färben
#1
Hallo Liebe Excel-Freunde,

ich benötige mal wieder eure Hilfe mit VBA in Excel.

Dort habe ich einen Kalender erstellt. Das Formular, das man sich über den Button aufrufen kann erscheint später automatisch beim öffnen der Datei.

Jetzt kann der User das Formular ausfüllen und die Daten werden in die Excelliste übertragen.

Per VBA möchte ich nun erreichen, dass das Datum Von/bis jeweils in dem Kalender darüber grün eingefärbt wird.
Eine Lösung über eine Bedingte Formatierung bringt mir leider nichts, da die Farbe überschreibbar sein muss.

Hier ein Beispiel, wie das am Ende aussehen soll:
   

Anbei noch die Beispieldatei, damit Ihr testen könnt:

.xlsm   TestKalender.xlsm (Größe: 46,95 KB / Downloads: 4)

Schön wäre es ebenfalls, wenn alle Von/Bis Felder das Datumsformat TT.MM.JJJJ erhalten. Bei Access kann ich das in den Einstellungen einfach regeln (da braucht man nichtmal die Punkte zwischen den Zahlen eingebn),
bei Excel gibt es die Funktion ja leider nicht.

Vielen Dank für eure Hilfe.
Antworten Top
#2
Hola,

Eine Lösung über eine Bedingte Formatierung bringt mir leider nichts, da die Farbe überschreibbar sein muss.

was dürfen wir uns denn unter einer "überschreibbaren Farbe" vorstellen?

Gruß,
steve1da
Antworten Top
#3
Wenn ich eine Bedingte Formatierung anwende und sage das Ergebnis soll "Grün" sein, kann ich diese Farbe nicht durch eine andere Farbe (z.B. Rot)
manuell ersetzen, da die Bedingte Formatierung in Excel ja immer Vorrang hat.
Antworten Top
#4
Moin,

habe mir Deine Liste angeschaut. Finde nicht einmal Gehversuche die annähernd in die Richtung Deines Problems gehen. :)

Hast Du folgendes schon versucht:
a) Makrorekorder
b) Onlinehilfe
c) Suchfunktion des Forums


Hinweis:
Range
-Interior
--Color
---RGB

Beispiel:
Code:
Range("A1").Interior.Color = RGB (0,153,0)
gruß
Marco
Antworten Top
#5
Hallo Marco,

du findest noch keine "Gehversuche" in der Datei, weil ich mich erst seit kurzer Zeit mit VBA beschäftige und von daher
noch nicht weis, wie ich Anfangen soll. Und dem Makrorekorder kann ich nicht vermitteln, dass er das Datum, dass bei
Von/Bis steht in der Range B7:AF42 suchen soll und dann durchgehend markiert wird.

Habe Google schon seit Tagen auf den Kopf gestellt, um eine Lösung für das Problem zu finden, aber nichts passendes
gefunden. Deshalb wende ich mich an das Forum, denn mir konnte bisher immer sehr gut geholfen werden und ich
habe aus den erhaltenden Codes schon einiges gelernt.

Ich probiere gern mit deinem Codeschnipsel etwas rum und schaue, ob ich zu einem Ergebnis komme :28:
Antworten Top
#6
Zitat:Und dem Makrorekorder kann ich nicht vermitteln, dass er das Datum, dass bei

Von/Bis steht in der Range B7:AF42 suchen soll und dann durchgehend markiert wird.

Wird auch nicht funktionieren, da Du keine 365/366 Daten (also 01.01.2019, 02.01.2019 usw),
sondern x-Achse mit 1 -31 und y-achse mit Monatsnamen, hinterlegt hast.
Somit kannst gemäß Deinem Input von der UserForm weder nach Bereichen noch exakten Treffern suchen.

Du könntest Deinen (ohnehin) String aber zerlegen und dann die Achsen nach Treffern durchsuchen.
Da Ich Dich vorerst nicht von Deiner Logik abbringen möchte, empfehle Ich Dir folgende Vorgehensweise.

Getreu dem Motto: "Viele Wege führen nach Rom - aber langsam fahren, sonst verpasst Du die schöne Landschaft" ;)

Beispiel:
Code:
Dim sVonDatum as String
Dim sVonTag as String
Dim sVonMonat as String
Dim sVonJahr as string

sVonDatum = "01.01.2020"


sVonTag = Extrahiere den Tag mit der Funktion Mid() -> Onlinehilfe verwenden
sVonMonat = Extrahiere den Monat mit der Funktion Mid()
sVonJahr = Extrahiere das Jahr mit der Funktion Mid()

Verwende die Methode .Find() um an Informationen wie Row/Column zu kommen.
Sobald der Bereich identifiziert, weiter mit .Interior.Color.

by the way:
Im Falle der Korrektur, setzt dir folgendes Beispiel die Farbe wieder zurück:

Code:
Range("A1").Interior.Color = xlNone
'wobei Range auch eine Bereichsangabe wie bspw. Range("A1:A10") erlaubt

Viel Erfolg!
gruß
Marco
Antworten Top
#7
Super, habe es hinbekommen :05: 

Ich habe mir noch eine kleine Hilfstabelle unter den Kalender gebaut, die die Range für mich ermittelt
und VBA braucht dann nur noch die Range auslesen und einfärben.

Hier nochmal meine fertige Datei:

.xlsm   TestKalender.xlsm (Größe: 50,97 KB / Downloads: 5)

Danke für die Denkanstöße :70:
Antworten Top
#8
sehr gern.
gruß
Marco
Antworten Top


Gehe zu:


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