Hojas en mayúsculas

15/05/2005 - 20:24 por Malaquias | Informe spam
Un saludo al grupo.



Tengo un pequeño problema con una hoja de calculo, esta tiene que enviarse a
diversos empleados que tienen que rellenar unas celdas determinas, mi jefe
quiere que las letras siempre sean en mayúsculas (ignoro el porque), pues
bien aunque tengo introducido una macro con un MSGBOX pidiendo que sea una
mayúsculas hay gente que lo ignora, y es a mi a quien toca repasar todas las
hojas, habría alguna solución por macro. Gracias.
 

Leer las respuestas

#1 KL
15/05/2005 - 22:51 | Informe spam
Hola Malaquias,

Prueba alguno de los los siguientes codigos.

*********************************************
I. Si solo quieres aplicar la capitalizacion a todas las celdas
modificadas en una hoja concreta, copia el siguiente codigo
en el modulo VBA de esa hoja. Para ello:
*********************************************

1) Haz clic-derecho sobre el nombre de tu hoja en una de las pestañas de la
parte de abajo de la ventana de Excel.
2) Elige la opcion Ver Codigo para abrir el editor VBA.
3) En la ventana mas grande a la derecha pega uno de los siguientes codigos:

a. Si las celdas a capitalizar pueden estar en cualquier parte de la hoja:

Private Sub Worksheet_Change(ByVal Target As Range)
With Application
.ScreenUpdating = False
.EnableEvents = False
For Each celda In Target
celda.Value = UCase(celda.Value)
Next celda
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub

b. Si las celdas a capitalizar estan en un rango determinado (cambia el
rango asignado a la variable "rng" segun tus necesidades):

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Set rng=Intersect(Target, Me.Range("A1:D100"))
On Error GoTo 0
If rng Is Nothing Then Exit Sub
With Application
.ScreenUpdating = False
.EnableEvents = False
For Each celda In rng
celda.Value = UCase(celda.Value)
Next celda
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub

4) Ahora pulsa Alt+F11 para volver a la hoja.
5) Prueba introducir texto en celdas

*********************************************
II. Si quieres que se aplique a todas las celdas modificadas
en todas las hojas del libro, copia el siguiente codigo en el
modulo VBA de esa hoja. Para ello:
*********************************************

1) Haz clic-derecho sobre el pequeño icono de Excel a la izquierda del menu
Archivo.
2) Elige la opcion Ver Codigo para abrir el editor VBA.
3) En la ventana mas grande a la derecha pega uno de los siguientes codigos:

a. Si las celdas a capitalizar pueden estar en cualquier parte de la hoja:

Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Target As Range)
With Application
.ScreenUpdating = False
.EnableEvents = False
For Each celda In Target
celda.Value = UCase(celda.Value)
Next celda
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub

b. Si las celdas a capitalizar estan en un rango determinado (cambia el
rango asignado a la variable "rng" segun tus necesidades):

Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Target As Range)
On Error Resume Next
Set rng = Intersect(Target, Sh.Range("A1:D100"))
On Error GoTo 0
If rng Is Nothing Then Exit Sub
With Application
.ScreenUpdating = False
.EnableEvents = False
For Each celda In rng
celda.Value = UCase(celda.Value)
Next celda
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub


4) Ahora pulsa Alt+F11 para volver a la hoja.
5) Prueba introducir texto en celdas

Saludos,
KL

Preguntas similares