Mayusculas a Minusculas

14/04/2005 - 23:11 por Andres Ovalle Lopez | Informe spam
Normalmente utilizo una funcion para convertir mayusculas a minusculas (o
viceversa) determinada celda o columna, pero eso implica una serie de pasos
(hacer la funcion en la columna adyacente, copiar como valores el resultado
en una tercera columna y finalmente eliminar las dos primeras) los cuales me
gustaria evitar,

Sera que existe alguna formula para esto?

Mil gracias...

Preguntas similare

Leer las respuestas

#1 KL
14/04/2005 - 23:34 | Informe spam
Hola Andres,

Prueba depositar el siguiente codigo en el modulo VBA de la hoja en
cuestion.
Para ello:
- Activa la hoja con el rango a convertir (el codigo asume que es la columna
[A]).
- Haz clic derecho sobre el nombre de la hoja q aparece en una de las
pestañas en la parte inferior izquierda de la ventana de Excel.
- Del menu contextual q aparecera a continuacion selecciona "Ver codigo" y
se abrira el Editor VBA.
- En la ventana mas grande a la derecha pega el codigo que te pongo a
continuacion.
- pulsa Alt+F11 para volver a la hoja
- prueba eescribir en mayusculas en la columna [A]

Importante! para que el macro funcione se tienen que habilitar los macros al
abrir el fichero. Si cuando abres un libro que contiene macros, Excel no te
pregunta si quieres habilitar los macros, probablemente tienes el nivel de
seguridad "Alto". Para cambiarlo ve al menu Herramientas>Macro>Seguridad y
elige la opcion "Intermedio".

Saludos,
KL

'Inicio Codigo
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Me.Range("A:A")) Is Nothing _
Then Exit Sub
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
For i = 2 To Me.Cells(65536, "A").End(xlUp).Row
Me.Cells(i, "A").Value = _
LCase(Me.Cells(i, "A").Value)
Next i
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub
'Fin Codigo


"Andres Ovalle Lopez" wrote in message
news:%
Normalmente utilizo una funcion para convertir mayusculas a minusculas (o
viceversa) determinada celda o columna, pero eso implica una serie de
pasos
(hacer la funcion en la columna adyacente, copiar como valores el
resultado
en una tercera columna y finalmente eliminar las dos primeras) los cuales
me
gustaria evitar,

Sera que existe alguna formula para esto?

Mil gracias...


Respuesta Responder a este mensaje
#2 KL
15/04/2005 - 00:01 | Informe spam
Hola Andres,

En el codigo cambia la funcion LCase por UCase

Saludos,
KL


"Andres Ovalle Lopez" wrote in message
news:OJy$
Excelente...

Una pregunta adicional... Que deberia cambiar para hacer la operacion
inversa... minusculas a amyusculas???

Mil gracias...

"KL" escribió en el mensaje
news:#
Hola Andres,

Prueba depositar el siguiente codigo en el modulo VBA de la hoja en
cuestion.
Para ello:
- Activa la hoja con el rango a convertir (el codigo asume que es la


columna
[A]).
- Haz clic derecho sobre el nombre de la hoja q aparece en una de las
pestañas en la parte inferior izquierda de la ventana de Excel.
- Del menu contextual q aparecera a continuacion selecciona "Ver codigo"
y
se abrira el Editor VBA.
- En la ventana mas grande a la derecha pega el codigo que te pongo a
continuacion.
- pulsa Alt+F11 para volver a la hoja
- prueba eescribir en mayusculas en la columna [A]

Importante! para que el macro funcione se tienen que habilitar los macros


al
abrir el fichero. Si cuando abres un libro que contiene macros, Excel no


te
pregunta si quieres habilitar los macros, probablemente tienes el nivel
de
seguridad "Alto". Para cambiarlo ve al menu Herramientas>Macro>Seguridad
y
elige la opcion "Intermedio".

Saludos,
KL

'Inicio Codigo
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Me.Range("A:A")) Is Nothing _
Then Exit Sub
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
For i = 2 To Me.Cells(65536, "A").End(xlUp).Row
Me.Cells(i, "A").Value = _
LCase(Me.Cells(i, "A").Value)
Next i
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub
'Fin Codigo


"Andres Ovalle Lopez" wrote in message
news:%
> Normalmente utilizo una funcion para convertir mayusculas a minusculas


(o
> viceversa) determinada celda o columna, pero eso implica una serie de
> pasos
> (hacer la funcion en la columna adyacente, copiar como valores el
> resultado
> en una tercera columna y finalmente eliminar las dos primeras) los


cuales
> me
> gustaria evitar,
>
> Sera que existe alguna formula para esto?
>
> Mil gracias...
>
>






Respuesta Responder a este mensaje
#3 Andres Ovalle Lopez
15/04/2005 - 00:01 | Informe spam
Excelente...

Una pregunta adicional... Que deberia cambiar para hacer la operacion
inversa... minusculas a amyusculas???

Mil gracias...

"KL" escribió en el mensaje
news:#
Hola Andres,

Prueba depositar el siguiente codigo en el modulo VBA de la hoja en
cuestion.
Para ello:
- Activa la hoja con el rango a convertir (el codigo asume que es la


columna
[A]).
- Haz clic derecho sobre el nombre de la hoja q aparece en una de las
pestañas en la parte inferior izquierda de la ventana de Excel.
- Del menu contextual q aparecera a continuacion selecciona "Ver codigo" y
se abrira el Editor VBA.
- En la ventana mas grande a la derecha pega el codigo que te pongo a
continuacion.
- pulsa Alt+F11 para volver a la hoja
- prueba eescribir en mayusculas en la columna [A]

Importante! para que el macro funcione se tienen que habilitar los macros


al
abrir el fichero. Si cuando abres un libro que contiene macros, Excel no


te
pregunta si quieres habilitar los macros, probablemente tienes el nivel de
seguridad "Alto". Para cambiarlo ve al menu Herramientas>Macro>Seguridad y
elige la opcion "Intermedio".

Saludos,
KL

'Inicio Codigo
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Me.Range("A:A")) Is Nothing _
Then Exit Sub
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
For i = 2 To Me.Cells(65536, "A").End(xlUp).Row
Me.Cells(i, "A").Value = _
LCase(Me.Cells(i, "A").Value)
Next i
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub
'Fin Codigo


"Andres Ovalle Lopez" wrote in message
news:%
> Normalmente utilizo una funcion para convertir mayusculas a minusculas


(o
> viceversa) determinada celda o columna, pero eso implica una serie de
> pasos
> (hacer la funcion en la columna adyacente, copiar como valores el
> resultado
> en una tercera columna y finalmente eliminar las dos primeras) los


cuales
> me
> gustaria evitar,
>
> Sera que existe alguna formula para esto?
>
> Mil gracias...
>
>


Respuesta Responder a este mensaje
#4 Héctor Miguel
15/04/2005 - 10:12 | Informe spam
hola, chicos !

KL: es 'curioso' como aparece tu respuesta con la misma fecha y hora que la pregunta... seras 'adivino' :))
[bueno]... solo por aportar alternativas y variantes para diferentes 'necesidades...
espero que lo siguiente [que es copia de una respuesta de abril 2004] sea... 'de utilidad' ;)

saludos,
hector.
sigue 'transcripcion' ==hola, Esteban !

... que opcion hay en excel para cuando yo marco varias columnas que me cambie todo a mayuscula..!!



si el texto ya esta 'entrado'... solo queda usar macros para 'convertir' entre mayusculas y/o minusculas :((
aunque excel no tiene un 'atajo' para ello [como {Mayus}+{F3} en word], se puede 'truquear' el 'efecto'
te expongo algunos ejemplos [puedes combinarlos, adaptarlos, etc. segun tus necesidades]
_______
1.- para 'obligar' a que TODA entrada en 'ciertas' celdas [p.e. $A$1:$C$5 y $E$2:$H$2] 'quede' en:
a) mayusculas... usa la funcion UCase(texto)
b) minusculas... usa la funcion LCase(texto)
=> si introduces una formula con la funcion =Texto(... el 'resultado final'... QUEDARA 'convertido' <= OJO
para evitarlo... cambia la instruccion =>Target = UCase(Target)<= por =>Target.Formula = UCase(Target.Formula)< en el modulo de codigo de 'la hoja' ==Private Sub Worksheet_Change(ByVal Target As Excel.Range)
' elimina la siguiente linea si deseas que se afecte CUALQUIER celda de 'esta hoja' '
If Intersect(Target, Range("a1:c5,e2:h2") Is Nothing Then Exit Sub
Application.EnableEvents = False
Target = UCase(Target)
Application.EnableEvents = True
End Sub
¨¨¨¨¨¨¨¨¨¨¨¨
2.- para 'convertir' las celdas 'constantes' con valores de texto de un rango =>seleccionado< en un modulo de codigo 'normal' =Sub Cambiar_Mayúsculas()
Dim Celda As Range
Application.ScreenUpdating = False
For Each Celda In Selection.SpecialCells(xlCellTypeConstants, xlTextValues)
Celda = UCase(Celda)
Next
End Sub
¨¨¨¨¨¨¨¨¨¨¨¨
3.- otra forma para 'switchear a voluntad' entre mayusculas y minusculas un rango =>seleccionado< a) en la celda A1 'pones' un valor para el 'tipo de conversion' que deseas hacer [p.e.]
1 = minusculas
2 = 'nombre propio' [mayuscula la primer letra de cada palabra y el resto en minusculas]
0, 3, o 'cualquier otra cosa'... = mayusculas
en un modulo de codigo 'normal' ==Sub CambioDeLetras()
Dim Cambio As Variant, Celda As Range
Application.ScreenUpdating = False
Select Case Range("a1")
Case 1: Cambio = vbLowerCase
Case 2: Cambio = vbProperCase
Case Else: Cambio = vbUpperCase
End Select
For Each Celda In Selection.SpecialCells(xlCellTypeConstants, xlTextValues)
Celda = StrConv(Celda, Cambio)
Next
End Sub
Respuesta Responder a este mensaje
#5 KL
15/04/2005 - 13:33 | Informe spam
Hola HM,

"Héctor Miguel" wrote in message
KL: es 'curioso' como aparece tu respuesta con la misma fecha y hora que
la pregunta... seras 'adivino' :))



Alguno de nosotros tendra mal el reloj del PC, digo yo, por que estoy seguro
de haber adivinado la pregunta mucho mas antes de que apareciera en el foro
;-)

Saludos,
KL
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida