Excel. Convertir a texto al detectar cambios

Necesito convertir a mayúsculas el texto contenido en las celdas de una tabla. Sólo las de aquellas que contengan texto, no las que contienen fecha/hora por lo que utilizo el código Sub Worksheet_Change(ByVal Target As Range) correspondiente. Sin embargo no funciona. No puedo retirar "target.now" para que no afecte a las celdas con datos fechas/hora. ¿Alguna solución?

https://1drv.ms/x/s!AvlGcQy32A6_gQUgyVJUGher6htA?e=4vJajs 

Respuesta
1

Visita:

Cursos de Excel y Macros

Por Dante Amor

------ --

Solamente si la celda contiene letras y espacios se convertirán a mayúsculas:

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim c As Range
  Dim bln As Boolean
  Dim i As Long
  For Each c In Target
    bln = True
    For i = 1 To Len(c.Text)
      If Not (Mid(c.Text, i, 1) Like "[A-Za-z]" Or Mid(c.Text, i, 1) = " ") Then
        bln = False
        Exit For
      End If
    Next
    If bln = True Then
      c.Value = UCase(c.Value)
    End If
  Next
End Sub

----- --

Curso 

cargar combobox - YouTube

Sal u dos Dante Amor

Gracias

Lógicamente, el archivo enlazado es una pequeña muestra. La  hoja excel original contiene más de mil filas así como bastantes columnas más (NIE, telf. y otras de tipo texto), algunas ocultas.

Por algún motivo su código bloquea excel hasta el punto de tener que reiniciar la aplicación.

Perdona, me faltaron un par de instrucciones.

Prueba nuevamente con este código:

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim c As Range
  Dim bln As Boolean
  Dim i As Long
  For Each c In Target
    bln = True
    For i = 1 To Len(c.Text)
      If Not (Mid(c.Text, i, 1) Like "[A-Za-z]" Or Mid(c.Text, i, 1) = " ") Then
        bln = False
        Exit For
      End If
    Next
    If bln = True Then
      Application.EnableEvents = False
      c.Value = UCase(c.Value)
      Application.EnableEvents = True
    End If
  Next
End Sub

----- --

Recomendaciones:

Curso de excel. Consejos y trucos de excel para mejorar la presentación de tus datos. - YouTube

Curso de macros. Consejos para empezar a programar. - YouTube

Sal u dos Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas