Ejecutar macro en todas las hojas visibles de un libro deExcel

He estado intentando hacer una macro que me funcione en todas las hojas de un libro, la intención de esta es borrar los datos añadidos en todas las hojas, en las celdas específicas, tengo esto...

For Each Worksheet In Worksheets
        Range("C11:Z11,AE11,AF11:AG11,AI11").Select
        Selection. ClearContents
        Range("F13:G24, J13:K24, O13:P24, T13:U24, Y13:Z24, AF13:AG24, AI13:AI24").Select
        Selection. ClearContents
        Range("D13:E24, I13:I24, M13:N24, R13:S24, W13:X24, AE13:AE24").Select
        Selection.Value = 0
        Range("AI11").Select
Next Worksheet

Cuando lo ejecuto no lo hace en todas las hojas sino únicamente en la primera, quisiera saber que esta mal o que debo hacer para que se ejecute en todas, y además quisiera que esta funcionara sólo en las hojas que estén visibles en el libro al momento de su ejecución...

2 Respuestas

Respuesta
1

Intenta con esto:

Sub Borrar_solo_visibles()
    For i = 1 To Sheets.Count
        If Sheets(i).Visible = True Then
            Sheets(i).Select
            Range("C11:Z11,AE11,AF11:AG11,AI11").Select
                    Selection.ClearContents
                    Range("F13:G24, J13:K24, O13:P24, T13:U24, Y13:Z24, AF13:AG24, AI13:AI24").Select
                    Selection.ClearContents
                    Range("D13:E24, I13:I24, M13:N24, R13:S24, W13:X24, AE13:AE24").Select
                    Selection.Value = 0
                    Range("AI11").Select
        End If
    Next
End Sub

Lo que hace es hacer la acción solo en las hojas que estén visibles, las hojas que están ocultas no las cuenta!

Saludos. Y espero sea de utiidad

Mi canal en Youtube

Respuesta
3

H o l a:

Te anexo la macro actualizada:

Sub BorrarCeldas()
'Act.Por.Dante Amor
    For Each h In Worksheets
        h.Range("C11:Z11,AE11,AF11:AG11,AI11").ClearContents
        h.Range("F13:G24, J13:K24, O13:P24, T13:U24, Y13:Z24, AF13:AG24, AI13:AI24").ClearContents
        h.Range("D13:E24, I13:I24, M13:N24, R13:S24, W13:X24, AE13:AE24").Value = 0
    Next
    MsgBox "Fin"
End Sub

':)
':)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas