Poder suprimir en esta macro

De esta macro:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range(" A12:E60000")) Is Nothing Then Target.Value = UCase(Target.Value)
End Sub

Poder suprimir la linea :

"On Error Resume Next"

Y que no me error

1 Respuesta

Respuesta
1

Te anexo la macro con los cambios, con lo siguiente, si modificas varias celdas, se procesan todas. Y además con la instrucción EnableEvents, al momento de que cambia la palabra a mayúsculas, significa que estás modificando la celda otra vez, entonces con EnableEvents= false, le indicas que ya no se ejecute la macro, cuando termina de hacer el cambio, se activan los eventos: EnableEvents = True.

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range(" A12:E60000")) Is Nothing Then
        Application.EnableEvents = False
        For Each c In Target
            c.Value = UCase(c.Value)
        Next
        Application.EnableEvents = True
    End If
End Sub

Gracias Dante por contestar tan rápido.

Me da error en:

For Each c In Target

En c, 

Un saludo

¿Copiaste bien la macro?

¿Qué hiciste en la hoja?

¿Qué mensaje de error te aparece?

Hola

He puesto todo según me diste:

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
If Not Intersect(Target, Range(" A12:E60000")) Is Nothing Then
Application.EnableEvents = False
For Each c In Target
c.Value = UCase(c.Value)
Next
Application.EnableEvents = True
End If
End Sub

Me da error en:

For Each c In Target

En c,

Y dice:

Error de compilación
No se ha definido variable

Saludos

Si al principio de tu hoja tienes la instrucción option explicit, te recomiendo que quites esa instrucción, o bien, al principio de mi macro pon:

dim c as variant

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas