Cambiar a Mayúsculas al abandonar celda

¿Qué tal, como están Expertos? Nuevamente acudo a ustedes a fin de que puedan solucionar un problema que tengo con una base de batos hecha en excel.
Ressulta ser que, como a esa base acceden varias personas, cada uno escribe las cosas a su manera.
Para evitar esto, empecé controlando y modificando antes de cerrar el archivo los ingresos hechos en letras minúsculas mediante esta macro:
------------------------------------------------------
Sub Uppercase()
For Each x In Range("A3:DC300")
' Cambiar el texto del rango a letras mayúsculas.
x.Value = UCase(x.Value)
Next
ActiveCell.FormulaR1C1 = ""
End Sub
-------------------------------------------------------
Resulta ser que no es para nada practica ya que controla todo ese rango y demora demasiado perdiendo tiempo en celdas que están vacías o que están bien escritas.
Me gustaría (si es que se puede) que modifique las celdas escritas en minúsculas, pasándolas a mayúsculas al abandonarla o bien antes de cerrar el archivo que solo aplique este reemplazo a las celdas que cambiaron.
Espero haber planteado bien mi problema y quedo a la espera de sus sugerecias.
Desde ya agradezco su tiempo y dedicación.-

1 respuesta

Respuesta
1
Una solución rápida puede ser algo así.
Private Sub Worksheet_Change(ByVal Target As Range)
    addr$ = Target.Address
    If Target <> "" Then
    ActiveCell.Offset(-1, 0).Select
    ActiveCell.Value = UCase(ActiveCell)
    End If
End Sub
Esto lo debes poner en la Hoja, no en un modulo. Ejemplo Worksheet1
No dudes en consultar
Suerte
Probé con el código que me enviaste, lo pegue en un Excel nuevo, para ver como funcionada y nada.
Lo pegue en ThisWorkbook, y nada.
¿Estaré haciendo algo mal o habrá que volver a revisar el código?
GRacias!
Debes pegarlo en la hoja1 o Hoja2 o Hoja3 depende de cual sea.
No en el Thisworkbook
Ahora si! Eso quería, muy bueno!
Lo que si; escribo y cuando le doy enter se va para arriba hasta una celda vacía, ¿cómo lo modifico? Me gustaría que vaya hacia la celda de la derecha sin importar si esta ocupada o no.
Es eso y no molesto más, gracias!
Cambia esta instrucción:
ActiveCell.Offset(-1, 0).Select
Por esta
ActiveCell.Offset(0, 1).Select
Suerte.
Cierra la pregunta
Ya la cambie, pero no solo que desplaza en diagonal hacia abajo a la derecha, sino que ya no reemplaza la minúscula por mayúscula.
Ok, cierro la pregunta ya que necesitaba cambiar a mayúsculas cuando abandono la celda, y voy a abrir otra para ver si puedo acomodar el cursor hacia la derecha.
¿No sabes como hacerlo no?
Solo manejate con la instrucción ActiveCell. Offset(0, 0). Select
Reemplaza los cero por las lineas y columnas que quieras avanzar.
O sea el primer o debes poner 1 o 2 o 3 etc y lo mismo en el segundo cero, cuantas columnas quieres desplazarte.
Suerte
OK, lo hago, me manejo con esta instrucción ActiveCell. Offset(0, 0). Select para mover el cursor donde yo quiera, el problema es que al modificar la que enviaste originalmente ActiveCell. Offset(-1, 0). Select (que anda barbaro) deja de reemplazar por mayusculas.
De todas formas muchas gracias por tu tiempo!
Un abrazo!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas