• Initiateur de la discussion Initiateur de la discussion micie1509
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

micie1509

XLDnaute Junior
Bonjour,

J’ai cette macro qui efface les lignes vides :

Sub efface_vide()
Dim l As Long
For l = Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
If Cells(l, "A").Value = "" Then Cells(l, 1).EntireRow.Delete
Next l
End Sub



Ensuite, je veux exécuter cette macro sur 30 feuilles qui elles, sont masquées. Le code que j’utilise pour exécuter la macro sur les feuilles choisies, fonctionnent très bien mais il prend environ une minute à s’exécuter. Est-ce que quelqu’un saurait ce que je pourrais faire afin d’accélérer l’exécution de cette macro ?

Merci d’avance au génie qui trouvera. 🙂

Voici le code que j’utilise :

Sub efface_vide2()

Sheets("Feuil00").Visible = True
Sheets("Feuil00").Select
Call efface_vide
Sheets("Feuil00").Visible = False


Sheets("Feuil1").Visible = True
Sheets("Feuil1").Select
Call efface_vide
Sheets("Feuil1").Visible = False

Sheets("Feuil2").Visible = True
Sheets("Feuil2").Select
Call efface_vide
Sheets("Feuil2").Visible = False


Sheets("Feuil3").Visible = True
Sheets("Feuil3").Select
Call efface_vide
Sheets("Feuil3").Visible = False

Sheets("Feuil4").Visible = True
Sheets("Feuil4").Select
Call efface_vide
Sheets("Feuil4").Visible = False


Sheets("Feuil5").Visible = True
Sheets("Feuil5").Select
Call efface_vide
Sheets("Feuil5").Visible = False


Sheets("Feuil6").Visible = True
Sheets("Feuil6").Select
Call efface_vide
Sheets("Feuil6").Visible = False

Sheets("Feuil7").Visible = True
Sheets("Feuil7").Select
Call efface_vide
Sheets("Feuil7").Visible = False


Sheets("Feuil8").Visible = True
Sheets("Feuil8").Select
Call efface_vide
Sheets("Feuil8").Visible = False

Sheets("Feuil9").Visible = True
Sheets("Feuil9").Select
Call efface_vide
Sheets("Feuil9").Visible = False


Sheets("Feuil10").Visible = True
Sheets("Feuil10").Select
Call efface_vide
Sheets("Feuil10").Visible = False

Sheets("Feuil11").Visible = True
Sheets("Feuil11").Select
Call efface_vide
Sheets("Feuil11").Visible = False


Sheets("Feuil12").Visible = True
Sheets("Feuil12").Select
Call efface_vide
Sheets("Feuil12").Visible = False


Sheets("Feuil13").Visible = True
Sheets("Feuil13").Select
Call efface_vide
Sheets("Feuil13").Visible = False

Sheets("Feuil14").Visible = True
Sheets("Feuil14").Select
Call efface_vide
Sheets("Feuil14").Visible = False


Sheets("Feuil15").Visible = True
Sheets("Feuil15").Select
Call efface_vide
Sheets("Feuil15").Visible = False


Sheets("Feuil16").Visible = True
Sheets("Feuil16").Select
Call efface_vide
Sheets("Feuil16").Visible = False

Sheets("Feuil17").Visible = True
Sheets("Feuil17").Select
Call efface_vide
Sheets("Feuil17").Visible = False


Sheets("Feuil18").Visible = True
Sheets("Feuil18").Select
Call efface_vide
Sheets("Feuil18").Visible = False

Sheets("Feuil19").Visible = True
Sheets("Feuil19").Select
Call efface_vide
Sheets("Feuil19").Visible = False


Sheets("Feuil20").Visible = True
Sheets("Feuil20").Select
Call efface_vide
Sheets("Feuil20").Visible = False


Sheets("Feuil21").Visible = True
Sheets("Feuil21").Select
Call efface_vide
Sheets("Feuil21").Visible = False

Sheets("Feuil22").Visible = True
Sheets("Feuil22").Select
Call efface_vide
Sheets("Feuil22").Visible = False


Sheets("Feuil23").Visible = True
Sheets("Feuil23").Select
Call efface_vide
Sheets("Feuil23").Visible = False

Sheets("Feuil24").Visible = True
Sheets("Feuil24").Select
Call efface_vide
Sheets("Feuil24").Visible = False


Sheets("Feuil25").Visible = True
Sheets("Feuil25").Select
Call efface_vide
Sheets("Feuil25").Visible = False


Sheets("Feuil26").Visible = True
Sheets("Feuil26").Select
Call efface_vide
Sheets("Feuil26").Visible = False

Sheets("Feuil27").Visible = True
Sheets("Feuil27").Select
Call efface_vide
Sheets("Feuil27").Visible = False


Sheets("Feuil28").Visible = True
Sheets("Feuil28").Select
Call efface_vide
Sheets("Feuil28").Visible = False

Sheets("Feuil29").Visible = True
Sheets("Feuil29").Select
Call efface_vide
Sheets("Feuil29").Visible = False


Sheets("Feuil30").Visible = True
Sheets("Feuil30").Select
Call efface_vide
Sheets("Feuil30").Visible = False


Sheets("Commandes").Select

End Sub
 

Pièces jointes

Re : macro lente

Bonjour à tous,

Un essai avec cette macro qui donne le même résultat, mais la macro "efface_vide" est interminable !:

Code:
Sub essai()
Dim i As Integer
Sheets("Feuil00").Visible = True
    Sheets("Feuil00").Select
    Call efface_vide
    Sheets("Feuil00").Visible = False
For i = 1 To 30
    Sheets("Feuil" & i).Visible = True
    Sheets("Feuil" & i).Select
    Call efface_vide
    Sheets("Feuil" & i).Visible = False
Next i
Sheets("Commandes").Select
End Sub

bonne journée
 
Dernière édition:
Re : macro lente

Bonjour,

Quelques dixièmes de secondes....

Code:
Sub Macro1()
Dim Sh As Worksheet
Application.ScreenUpdating = False
For Each Sh In Sheets
    With Sh
        If .Name Like "Feuil*" Then
            If Application.CountA(.Columns(1)) > Application.CountIf(.Columns(1), ">0") + 1 Then
                .Columns(1).SpecialCells(xlCellTypeFormulas, 22).EntireRow.Delete
            End If
        End If
    End With
Next Sh
End Sub

Bonne journée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
647
Réponses
21
Affichages
2 K
Compte Supprimé 979
C
Réponses
16
Affichages
2 K
S
  • Question Question
Réponses
4
Affichages
2 K
E
Retour