Optimisation de macro

Bonjour,

La macro ci-dessous me permet de supprimer toutes les colonnes dont les cellules lignes 8 sont égales à N/A. La macro fonctionne nickel sauf quelle est beaucoup trop lingue a s'exécuter (30min pour traiter chaque onglet ...). Auriez-vous une idée pour aller plus vite ?

Merci d'avance pour votre aide

Sub DeleteSpecificColumns()
Dim ws As Worksheet
Dim lastCol As Long, lCol As Long
    Application.ScreenUpdating = False
    For Each ws In ActiveWorkbook.Worksheets
        lastCol = ws.Cells(8, Columns.Count).End(xlToLeft).Column
        For lCol = lastCol To 1 Step -1
            If WorksheetFunction.IsNA(ws.Cells(8, lCol)) Then ws.Cells(lCol).EntireColumn.Delete
        Next lCol
    Next ws
End Sub

Bonjour,

Une solution plus rapide, oui, traiter les #N/A pour qu'ils n'apparaissent pas

A+

ou les zéros si vous préférez :

Sub DeleteSpecificColumns()
Dim ws As Worksheet
Dim lastCol As Long, lCol As Long
    Application.ScreenUpdating = False
    For Each ws In ActiveWorkbook.Worksheets
        lastCol = ws.Cells(8, Columns.Count).End(xlToLeft).Column
        For lCol = lastCol To 1 Step -1
            If WorksheetFunction.Is0(ws.Cells(8, lCol)) Then ws.Cells(lCol).EntireColumn.Delete
        Next lCol
    Next ws
End Sub

Re,

Je ne préfère rien c'est vous qui voulez une solution plus rapide, je propose.

Sinon , désactivez le calcul automatique et les évènements avant à remettre après

A+

Rechercher des sujets similaires à "optimisation macro"