ich bin mit Hilfe vom Forum zu folgendem funktionierenden Quellcode gekommen.
' In Zellen automatisch Kleinbuchstaben in GROSSBUCHSTABEN umwandeln:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Bereich As Range
Dim Z As Range
Set Bereich = Range("B5:D504")
' Überprüfen ob mehr als eine Zelle markiert ist.
' Wenn mehrere Zellen markiert wurden, dass ist der Wert > 0:
If InStr(Target.Address, ":") = 0 Then
' Abbruch, wenn Aktion nicht im Zielbereich:
If Intersect(Target, Bereich) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target.Value = UCase(Target)
Application.EnableEvents = True
Else
' Wenn mehrere Zellen markiert wurden:
Application.EnableEvents = False
For Each Z In Selection
On Error Resume Next
' Überprüfen ob die Zelle im vorgegebenen Bereich liegt
If Intersect(Z, Bereich) Is Nothing Then
Else: Z.Value = UCase(Z)
End If
Next Z
Application.EnableEvents = True
End If
End Sub
In der Praxis hat sich aber leider ergeben dass Zellen trotz freier rechter Nachbarzelle nicht mehr im Vordergrund stehen (Text geht nicht mehr über den Rand hinaus) wenn z.B.: mehrere Textinhalte in Spalte B-C kopiert werden.
Geht nur mehr über Formatierung löschen...hab aber leider bedingte Formatierungen in Spalte B-C).
Hat jemand eine Idee, wie so eine Prüfung funktionieren könnte?
Eine Art von "wenn Zelle leer dann Zelle überspringen"
Oder ein Makro, dass alle leere Zellen wieder in den Vordergrund bringt.
Vielen Dank im Voraus!
LG, Dan