Zellen in den Vordergrund bringen

Bild

Betrifft: Zellen in den Vordergrund bringen
von: Dan
Geschrieben am: 07.09.2015 15:34:39

Hallo,
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

Bild

Betrifft: AW: Zellen in den Vordergrund bringen
von: Michael
Geschrieben am: 07.09.2015 15:56:07
Hi Dan,
das eigentliche Problem mag ich ohne Beispieldatei nicht testen, aber ich habe Deine Sub mal etwas einfacher gestaltet:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
   Dim Bereich As Range
   Dim Z As Range
   Set Bereich = Range("B5:D504")
   
   If Not Intersect(Target, Bereich) Is Nothing Then
'      For Each Z In Intersect(Target, Bereich)
'        Z.Value = UCase(Z.Value)
'      Next
      ' Oder, da zu einer Zeit nur in *einer* Zelle
      ' ein Wert geändert werden kann:
      Set Z = Intersect(Target, Bereich)(1)  ' Zelle im Bereich links oben
      Z.Value = UCase(Z.Value)
   End If
End Sub
Schöne Grüße,
Michael

Bild

Betrifft: AW: Zellen in den Vordergrund bringen
von: Dan Filip
Geschrieben am: 08.09.2015 09:05:49
Hallo Michael,
danke für deine rasche Antwort!
Leider funktioniert die geänderte Sub nicht.
Bis dato wurden beim Befüllen einer Zelle (in B5:D504) Kleinbuchstaben in GROSSBUCHSTABEN umgewandelt.
Danke u. Gruß,
Dan

Bild

Betrifft: AW: Zellen in den Vordergrund bringen
von: Michael
Geschrieben am: 08.09.2015 16:49:31
Hi Dan,
also, bei mir tut sie.
Lad halt doch mal ne Datei hoch.
Schöne Grüße,
Michael

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zellen in den Vordergrund bringen"