** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Código Convertir a Mayúscula
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoCódigo Convertir a Mayúscula

 Responder Responder
Autor
Mensaje
JuanAntonio_ Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 10/Febrero/2006
Localización: España
Estado: Sin conexión
Puntos: 371
Enlace directo a este mensaje Tema: Código Convertir a Mayúscula
    Enviado: 25/Julio/2019 a las 19:21
Hola: Tengo el siguiente código asignado a una forma. Con él, selecciono una serie de celdas y me convierte el texto en mayúsculas:

Sub CambiarMayuscula()
    Dim Rng As Range
    For Each Rng In Selection.Cells
    If Rng.HasFormula = False Then
        Rng.Value = UCase(Rng.Value)
    End If
   
    Next Rng
End Sub

Pero lo que yo quiero es que el código para convertir vaya directamente referido a las celdas D2:D15, de tal forma que no tenga que hacer ninguna selección ni tener un comando para ejecutar la macro. No se cómo modificarlo. 
Un saludo.

Juan Antonio
Desde Granada
Arriba
Emilio Ver desplegable
Administrador
Administrador

Santander

Unido: 08/Agosto/2004
Localización: España
Estado: Sin conexión
Puntos: 18836
Enlace directo a este mensaje Enviado: 25/Julio/2019 a las 19:31
Hola!

utiliza intersect para saber si la celda modificada está en el rango deseado

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("D2:D15")) Is Nothing Then
   Target = UCase(Target)
End If
End Sub
Saludos a todos desde Huelva

http://www.mvp-access.es/emilio/
Arriba
JuanAntonio_ Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 10/Febrero/2006
Localización: España
Estado: Sin conexión
Puntos: 371
Enlace directo a este mensaje Enviado: 25/Julio/2019 a las 19:55
Funciona bien, es decir, hace la conversión, pero después no me deja introducir datos y me cierra la hoja de cálculo
Un saludo.

Juan Antonio
Desde Granada
Arriba
Emilio Ver desplegable
Administrador
Administrador

Santander

Unido: 08/Agosto/2004
Localización: España
Estado: Sin conexión
Puntos: 18836
Enlace directo a este mensaje Enviado: 25/Julio/2019 a las 20:01
Pues desconozco porque falla, no debería.
Hay otra solución aún mas sencilla, utiliza en ese rango una de las fuentes que solo utiliza mayúsculas y no necesitarás ningún código,
Saludos a todos desde Huelva

http://www.mvp-access.es/emilio/
Arriba
JuanAntonio_ Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 10/Febrero/2006
Localización: España
Estado: Sin conexión
Puntos: 371
Enlace directo a este mensaje Enviado: 25/Julio/2019 a las 20:18
Yo es que no tengo ni idea de programación, me defiendo copiando y pegando lo que encuentro por ahí. Pero creo que no es muy difícil. Se trata sencillamente de que cuando escriba texto en una de las celdas cuyo rango ya está predefinido, al salir de ella, convierta el texto en mayúscula automáticamente. Lo de la fuente con texto en mayúscula es una idea pero estéticamente al cambiar la fuente en unas celdas concretas no queda bien. De todas formas gracias por tu aportación

Editado por JuanAntonio_ - 25/Julio/2019 a las 20:19
Un saludo.

Juan Antonio
Desde Granada
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3523
Enlace directo a este mensaje Enviado: 27/Julio/2019 a las 13:07
Hola.
A mí me salta error en pruebas hechas con el excel 2019. Da la sensación que entra en un bucle de llamadas a funciones.
Parece ser que con algunas añadidos al código se corrige el error.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Error_Worksheet_Change
Application.EnableEvents = False
If Not Application.Intersect(Target, Range("D2:D15")) Is Nothing Then
   Target = UCase(Target)
End If

Application.EnableEvents = True
Exit Sub

Error_Worksheet_Change:
Application.EnableEvents = True
MsgBox "Se produjo el error " & vbCrLf & "Error número: " & Err.Number & vbCrLf & "Descripción: " & Err.Description, vbCritical
End Sub

Espero que ayude a resolver la duda
Ya comentas
Un saludo a todos

Arriba
JuanAntonio_ Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 10/Febrero/2006
Localización: España
Estado: Sin conexión
Puntos: 371
Enlace directo a este mensaje Enviado: 27/Julio/2019 a las 17:54
PRGA, me alegro de volver a encontrarte. Cómo siempre, nunca fallas. Funciona perfectamente. MUCHAS GRACIAS Y UN ABRAZO.
Un saludo.

Juan Antonio
Desde Granada
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable