oceangirl
Goto Top

VBA nicht ausgefuellte Felder einfaerben

Hallo zusammen,

Leider habe ich mit VBA nur noch wenig zu tun, so dass mein Wissen darueber nicht mehr existent ist. Ich hoffe ihr könnt mir helfen.

Fuer eine Protokolldatei auf Excelbasis mit VBA und hier moechte ich eine Erweiterung vornehmen. Ich habe Excel 2010; das Protokoll soll aber mehreren Nutzern mit unterschiedlichen Excelversionen zuganglich gemacht werden.
Die Datei habe ich geerbt und sie wurde ursprünglich mit Makros geschrieben und an Stellen ueberarbeitet.

Aussehen der Datei:
Die Datei hat mehrere Spalten:
A-Zeilenindex-Nr
B-Kuerzel (T=Aufgabe, E=Entscheidung, ...)
C-Infotext
D-Verantwortlicher
E-Datum von
F-Datum bis
Jede Zeile ist ein Eintrag in dem die relevanten Felder manuell ausgefüllt werden sollen. Zur Unterstützung habe ich Buttons, die die Formate in die einzelne Zeile kopiere. Das heisst ich klicke auf eine Zeile dann auf einen der Buttons (zB der mit T) und es erscheint der Zeilenindex in A und das gedückte Kürzel in B und zusäetzlich das Datum.

Das klappt alles soweit.

Nun moechte ich die Spalte D (Verantwortlicher) in rot setzen wenn diese Zelle durch einen der Buttons aktiviert wird und kein Zeichen in der Spalte D eingetragen ist. Das hab ich soweit fuer einen Button erstellt. Problem ist jetzt, dass sobalt die Spalte ausgefuellt wird nichts passiert. Die Zelle ist weiterhin rot. Wie kann ich das andern?

Sub NeuerBeschluß()

Dim zelle As Range

If ActiveSheet.AutoFilterMode Then
Selection.AutoFilter
End If
If Range("B4").Value = "" Then
Range("B4").Select
Else
Range("B3").End(xlDown).Offset(1, 0).Range("A1").Select
End If
Application.ScreenUpdating = False
'
ActiveCell.FormulaR1C1 = "D"
Application.Run "SetNewNumber"
Application.Run "CopyFormat"

ActiveCell.Offset(0, 2).Range("A1").Select
ActiveCell.FormulaR1C1 = "all"

ActiveCell.Offset(0, 2).Range("A1").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
ActiveCell.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.Offset(0, -3).Range("A1").Select
Application.ScreenUpdating = True


For Each zelle In Worksheets("Close").Range("A4:F33")
If zelle = "" Then
zelle.Interior.ColorIndex = 3
Else
zelle.Interior.ColorIndex = xlNone
End If
Next
End Sub


Des weiteren kopiert das VBA die daruberstehende Zeile, wenn ich den Button aktiviere. Es soll aber nur in manchen Fällen die gesamte Zeile farblich markieren. In anderen Fällen soll es einfach das Format einer bestimmten Zelle übernehmen bzw. die Zeile weiss einfarben. Könnt ihr mir dazu einen Tipp geben?

Sub CopyFormat()
'

Dim isect As Range

Range("A4:J4").Copy
Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 10)).PasteSpecial Paste:=xlFormats
Cells(ActiveCell.Row, 2).Validation.InCellDropdown = False
ActiveCell.Offset(0, 1).Select
Application.CutCopyMode = False


Bei Fragen immer gerne nachfragen

Content-ID: 230532

Url: https://administrator.de/forum/vba-nicht-ausgefuellte-felder-einfaerben-230532.html

Ausgedruckt am: 23.12.2024 um 20:12 Uhr