Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[Résolu] VBA Long dans la suppression

  • Initiateur de la discussion Initiateur de la discussion greg63
  • 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 !

G

greg63

Guest
Salut à tous,

Aprés des recherches, j'ai trouvé un code VBA pour masquer des lignes et je l'ai adapté à mon document.
Lorsque je clique sur la suppression des lignes ce dernier s'active (normal) mais il est vraiment long à s'exécuter, et me fait planter parfois le document.

Le code est le suivant

Code:
Sub MasquerLignesVide()

    
    For i = 250 To 7 Step -1
    
        If Application.WorksheetFunction.CountBlank(Range(Cells(i, 1), Cells(i, 5))) = 5 Then
           Rows(i).EntireRow.Hidden = True
        End If
        
    Next i

End Sub

Je vous laisse en copie le document si quelqu'un peut me dépatouiller car se serait le top d'accélérer l'éxécution de ce dernier
 

Pièces jointes

Re : VBA Long dans la suppression

Salut greg63, Le Forum

Tout est relatif 🙂moins d'une seconde me parait raisonnable

Essaye de placer un Application.SreenUpdating = False en début de Procédure
et le Remettre à True en Fin de Procédure

Code:
Sub MasquerLignesVide()
 With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
 End With
 For i = 250 To 7 Step -1
        If Application.WorksheetFunction.CountBlank(Range(Cells(i, 1), Cells(i, 5))) = 5 Then
           Rows(i).EntireRow.Hidden = True
        End If
    Next i
 With Application
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
 End With
End Sub

Bonne Journée
 
Re : VBA Long dans la suppression

Bonjour à tous_______________________________EDITION: Salut Efgé


Pour le fun, pour la diversité "solutionnelle", pour ne pas boucler et pour le plaisir de croiser Dull 😉
Code vba:
Sub MasqueDemasqueLignesVides()
'Macro deux en un :
'on la lance une première fois; les lignes sont masquées
'on la lance une seconde fois: les lignes sont réaffichées
Application.ScreenUpdating = False
With Range("F8:F250")
.ClearContents
.FormulaR1C1 = "=IF(COUNTBLANK(RC[-5]:RC[-1])=5,""$"","""")"
.Value = .Value
.SpecialCells(2, 2).Rows.Hidden = _
Not .SpecialCells(2, 2).Rows.Hidden
.Clear
End With
Application.ScreenUpdating = True
End Sub
 
Dernière édition:
Re : VBA Long dans la suppression

Bonjour greg63, Salut Dull 🙂 Salut Staple 🙂
[😀]
Pour la lessive :
VB:
Sub Lessive()
Dim Fringue As Variant, Lessive As Variant, Machine As Variant
Dim MAchineBlack As Variant, MAchineWhite As Variant, MAchineColor As Variant
For Each Fringue In BacALinge
    Select Case Fringue.Color
        Case Is = Black
            ReDim Preserve MAchineBlack(1 To UBound(MAchineBlack, 1) + 1)
            MAchineBlack(UBound(MAchineBlack)) = Fringue.Name
        Case Is = White
            ReDim Preserve MAchineWhite(1 To UBound(MAchineWhite, 1) + 1)
            MAchineWhite(UBound(MAchineWhite)) = Fringue.Name
        Case Else
            ReDim Preserve MAchineColor(1 To UBound(MAchineColor, 1) + 1)
            MAchineColor(UBound(MAchineColor)) = Fringue.Name
    End Select
    Lessive = Fringue.Color
Next Fringue

For Each Machine In Machines
    Do
        Machine
    Loop
Next Machine
End Sub


Cordialement [/😀]
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
911
Réponses
4
Affichages
733
Réponses
2
Affichages
771
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…