Imprimir página | Cerrar ventana

Código Convertir a Mayúscula

Impreso de: Foro de Access y VBA
Categoría: Otros de Microsoft: Windows y Office
Nombre del foro: Excel
Descripción del foro: Foro de Excel y VBA de Excel
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84617
Fecha de impresión: 20/Abril/2024 a las 09:21


Tema: Código Convertir a Mayúscula
Publicado por: JuanAntonio_
Asunto: Código Convertir a Mayúscula
Fecha de publicación: 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



Respuestas:
Publicado por: Emilio
Fecha de publicación: 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/" rel="nofollow - http://www.mvp-access.es/emilio/


Publicado por: JuanAntonio_
Fecha de publicación: 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


Publicado por: Emilio
Fecha de publicación: 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/" rel="nofollow - http://www.mvp-access.es/emilio/


Publicado por: JuanAntonio_
Fecha de publicación: 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

-------------
Un saludo.

Juan Antonio
Desde Granada


Publicado por: prga
Fecha de publicación: 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



Publicado por: JuanAntonio_
Fecha de publicación: 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



Imprimir página | Cerrar ventana