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.

Excel-VBA Routine
#1
Brick 
Hallo,

ich habe bisher programmiert, dass wenn ein Datum überschritten wird, ein bestimmter Spaltenbereich rot eingefärbt wird.

Nun die Frage: Wie kann ich diese Aktion auch jeweils für die Spalte darunter und darunder und darunter .... anwenden?
Es wäre ja müßig, immer das gleiche abzupinnen und die einzelnen Spaltenzahlen manuell zu ändern. Ich möchte schließlich 50 Spalten haben...

Dazu sei gesagt: Ich bin in totaler Anfänger, also bitte einfach bleiben.Anbei code und Datei (EXCEL 2016)

Gruß Andi


.xlsm   Aktionsliste.xlsm (Größe: 18,05 KB / Downloads: 3)

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("I11") > Range("I7") Then
  Range("A11:J11").Interior.Color = RGB(192, 0, 0)      'rot Einfärben
  Range("A11:J11").Font.ThemeColor = xlThemeColorDark1
 Else
  Range("A11:J11").Interior.Pattern = xlNone            'Entfärbe Färbe Zellenbereich
  Range("A11:J11").Font.ColorIndex = xlAutomatic
End If

End Sub
Antworten Top
#2
Verwende bedingte Formatierung.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#3
Die Gemeinde dankt für den korrekten Gebrauch des Wortes "Spalte"! Ungetestet - und Sinnhaftigkeit nicht geprüft:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Dein Ernst? Da kackt Dir doch der PC ab ...

For i = 11 to 60

lupo1 = "I" & i
lupo2 = "A" & i & ":J" & i

If Range(lupo1) > Range("I7") Then
 Range(lupo2).Interior.Color = RGB(192, 0, 0)      'rot Einfärben
 Range(lupo2).Font.ThemeColor = xlThemeColorDark1
Else
 Range(lupo2).Interior.Pattern = xlNone            'Entfärbe Färbe Zellenbereich
 Range(lupo2).Font.ColorIndex = xlAutomatic
End If

Next

End Sub
Antworten Top
#4
(08.06.2017, 16:18)Andi_Koer_1234 schrieb: Hallo,

ich habe bisher programmiert, dass wenn ein Datum überschritten wird, ein bestimmter Spaltenbereich rot eingefärbt wird.

Dann müstte der Vergleich aber eher andersrum sein, oder?
Nur aus neugier, warum per VBA und warum nicht mit Bedingter Formatierung.

Und wenn VBA, dann sollte nicht das gewählte Ereignis gebraucht werden.
Wenn VBA, dann würde ich das Workbook_Open Ereignis nutzen oder wenn nötig das Change Ereignis, welches auf die Datumseingabe reagiert.
Gruß Atilla
Antworten Top
#5
...Danke lupo1 für den code...


@atilla
Zitat:Nur aus neugier, warum per VBA und warum nicht mit Bedingter Formatierung.
Wie bereits gesagt, ich habe keine Lust eine bedingte Formatierung für jede Zeile einzeln zu machen. Bei 100 Stück ist das mir zu viel Arbeit. Bei mir hat das mit dem copy pasten nicht gereicht. Zeigt mir doch mal eine bedingte Formatierung mit meinen Anforderungen. Außerdem ist es so für mich interessanter und projektorientiert in die Zukunft gedacht.

Zitat:Dann müstte der Vergleich aber eher andersrum sein, oder?
Ja, dass musste ich was modifizieren. Man muss es anders herummachen und eine UND-Bedingung hinzufügen. Des Weiteren habe ich auch noch einen loop reingemacht, der bei einem Status von 100% die gesamte Zeile grün färbt. Ich finde aufgrund dieser Komplexität ist ein VBA schon gerechtfertigt. Zumal das ja relativ simpel ist, wenn man weiß wie das geht und gegen über dem Bedingt_Formatierungskram kann man einen besseren Überblick behalten.

Zitat:Wenn VBA, dann würde ich das Workbook_Open Ereignis nutzen oder wenn nötig das Change Ereignis, welches auf die Datumseingabe reagiert.
Fürs programmieren finde ich es mit dem selectionchange einfach leichter. Ich habe das Ding jetzt schon ganz schön weiterentwickelt. Aber sag mir doch bitte, wie man ein change Ereignis erzeugt? Wenn ich das WORKBOOK einfach auf change stelle, haut er mir erstmal Fehlermeldungen um die Ohren.


Gruß Andi
Antworten Top
#6
Hallo,


dann ist ja alles klar.

Ein Formelexperte hat dir anscheinend einen funktionierenden VBA Code eingestellt,
Ein VBA interesierter würde es eher ohne VBA machen und ein VBA Spezialist empfiehlt eine VBA freie Lösung, nämlich die Bedingte Formatierung.

Du enscheidest Dich für Deinen Weg.
Gruß Atilla
Antworten Top
#7
Für >1 Million Zellen braucht man nur eine ( d.h. 1) bedingte Formatierung Formel.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#8
Hi,

da reicht einmal das:

 ABCDEFGHIJ
10NrAktionVerantwortlichBemerkungenErgebnisangelegt amzu erledigen bisStatus
116    08.06.201710.06.2017 

Zellebedingte Formatierung...Format
I111: =($H11<>"")*($I11>$I$7)abc

den ganzen gewünschten Bereich markieren und eintragen!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top


Gehe zu:


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