Problem mit bed. Format. über ein Makro!
31.07.2016 07:40:35
Kasimir
Ich grüble nun schon eine ganze Weile an einem Problem und finde keine Lösung. Ich habe eine Übersicht, in der Mitarbeiter und Lehrgänge aufgeführt werden. Hier werden in 6 Spalten Daten (ich bezeichne das mal als Block) für einen Lehrgang eingetragen. 3 Spalten davon werden über die Gliederungsfunktion ausgeblendet. In der 4. Spalte des Blocks wird unter anderem für den Mitarbeiter das Datum des letzten Lehrgangsbesuch eingetragen. In der nächsten Spalte wird dann das Datum über die Formel
=WENN(UND(E4>0;B$2>0);DATUM(JAHR(E4)+B$2;MONAT(E4);TAG(E4));"") /i>
(hier für Zeile 4) ausgerechnet, bis wann der Mitarbeiter diesen Lehrgang wiederholt haben muss. Nun möchte ich über ein VBA-Code in der Zeile, in der das Datum eingetragen wird, für den gesamten Block eine bedingte Formatierung eintragen lassen. Ich habe das über Worksheet_Change- Ereignis realisiert. Nachfolgend ein Bild über den Aufbau der Tabelle und der VBA-Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim intColumn As Integer
Dim intRowFormat As Integer
Dim strColumnEnde As String
On Error GoTo ERRORHANDLER
If Target.Row $" & strColumnEnde & "$" & _
intRowFormat & ""
With .FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 8420607
.TintAndShade = 0
End With
End With
.Protect
End With
Exit Sub
ERRORHANDLER:
MsgBox "Fehler"
End Sub
Wenn ich nun in der Datumsspalte ein Datum eintrage und danach das Worksheet_Change- Ereignis ausgelöst wird, erhalte ich den Laufzeitfehler 5, Ungültiger Prozeduraufruf oder ungültiges Argument und mir wird die Zeile.FormatConditions.Add Type:=xlExpression, Formula1:="=HEUTE()>$" & strColumnEnde & "$" & intRowFormat & ""
Gelb markiert. Es würde schon die Zeile für das Löschen der bedingten Formatierung angemeckert, wenn ich dies nicht mit On Error Resume Next ausgemerzt hätte.
Meine Frage nun, kann sich jemand erklären, warum der VBA-Code an der Stelle abbricht?
Jetzt wird sich der ein oder andere fragen, warum ich nicht die bedingte Formatierung händisch für alle Blöcke vorher eingebe. Der Grund liegt darin, dass diese Tabelle ständig weiterwächst. Es wird über versch. Makros Mitarbeiter oder Lehrgänge hinzugefügt. Daher kann ich das nicht vorher vorbereiten.
Ich hoffe, jemand hat eine Lösung für mich.
Für die Hilfe möchte ich schon mal vorab meinen Dank aussprechen.
Gruß,
Kasimir