Option Explicit
Sub Excel_KleinBuchstabenInGrossbuchstaben()
->Wandelt auf allen Blättern einer Arbeitsmappe
->Kleinbuchstaben zu Großbuchstaben
->in Zellen, die Standard oder Text formatiert sind
->
->Einschränkungen:
->a) es werden nur Zelle-Inhalte von Zellen geändert,
-> die Standard oder Text formatiert sind
->b) Zellen mit Formel werden nicht behandelt
->c) Zellen mit Schutz werden nicht behandelt
-> Es erfolgt eine entsprechende Meldung
->d) Es werden nur Arbeitsblätter behandelt
Dim Zelle As Range, ws As Worksheet, wb As Workbook
Dim s_BlattMitGesperrtenZellen As String
Dim b_BlattMitGesperrtenZellen As Boolean
On Error Resume Next
s_BlattMitGesperrtenZellen =
Set wb = ActiveWorkbook
For Each ws In wb.Worksheets
b_BlattMitGesperrtenZellen = False
->Blatt = Arbeitsblatt ?
If ws.Type = xlWorksheet Then
->Für alle Zellen des benutzten Bereich
->auf dem aktiven Blatt
For Each Zelle In ws.UsedRange
With Zelle
->Zelle nicht leer ?
If .Value <> Then
->Zellformat Text oder Standard ?
If .NumberFormat = @ Or .NumberFormat = General Then
->Formel ?
If Left(.Formula, 1) <> = Then
->Kleinbuchstaben -> Grossbuchstaben
.Value = UCase(.Value)
->Zelle gesperrt ?
If Err <> 0 Then
Err.Clear
b_BlattMitGesperrtenZellen = True
End If
End If
End If
End If
End With
Next
End If
->Waren auf dem Blatt Zellen, die nicht modifiziert werden konnten ?
If b_BlattMitGesperrtenZellen Then
->Blattnamen für Meldung merken
If s_BlattMitGesperrtenZellen <> Then
s_BlattMitGesperrtenZellen = s_BlattMitGesperrtenZellen & vbLf
End If
s_BlattMitGesperrtenZellen = s_BlattMitGesperrtenZellen & ws.Name
End If
Next
->Wenn Zellen nicht modifiziert werden konnten, entsprechenden Blattnamen ausgeben
If s_BlattMitGesperrtenZellen <> Then
MsgBox ( _
Auf den folgenden Blättern konnten geschützte Zellen nicht modifiziert werden: _
& vbLf & vbLf & s_BlattMitGesperrtenZellen)
End If
->Object-Variablen aufräumen
Set Zelle = Nothing: Set ws = Nothing: Set wb = Nothing
End Sub