Même code qui fonctionne sur appuyer bouton mais pas en quittant Userform

Bonjour,

Je suis novice en Vba et je bug sur un point.

J'ai fait un code qui fonctionne lorsque je l'ai affecté à un bouton de la feuille. Donc lorsque j'appuie sur le bouton ça marche.

Ensuite j'ai voulu que ce code s'exécute lorsque je quitte/ferme un userform, au lieu d'aller appuyer sur le bouton de la feuille. Et là ça ne va plus ... ! :

Il s'agit d'un code qui supprime les lignes vides dans ma feuille "For" :

Code affecté au Bouton :

Sub SupprimerLignesVide()

'Étape 1: Déclaration des variables
Dim MaPlage As Range
Dim iCompteur As Long
'Étape 2: Définir la plage de cellules
Set MaPlage = ActiveSheet.UsedRange
'Étape 3: Commencez la boucle avec le compte à rebours
For iCompteur = MaPlage.Rows.Count To 1 Step -1
'Étape 4: si la ligne entière est vide, supprimez-la
If Application.CountA(Rows(iCompteur).EntireRow) = 0 Then
Rows(iCompteur).Delete
End If
'Étape 5: Réduisez la valeur du compteur
Next iCompteur

End Sub

Lorsque je l'ai affecté à la fermeture du UserForm j'ai écrit comme suit :

Private Sub Userform_Terminate()

'Étape 1: Déclaration des variables
Dim MaPlage As Range
Dim iCompteur As Long
'Étape 2: Définir la plage de cellules
Set MaPlage = Sheets("For").UsedRange
'Étape 3: Commencez la boucle avec le compte à rebours
For iCompteur = MaPlage.Rows.Count To 1 Step -1
'Étape 4: si la ligne entière est vide, supprimez-la
If Application.CountA(Rows(iCompteur).EntireRow) = 0 Then
Rows(iCompteur).Delete
End If
'Étape 5: Réduisez la valeur du compteur
Next iCompteur

End Sub

S'il vous plait dépannez moi, et merci d'avance :)

Bonjour Cameleon, bonjour le forum,

J'aurais codé comme ça :

Private Sub UserForm_Terminate()
Dim O As Worksheet
Dim MaPlage As Range
Dim iCompteur As Long

Set O = Worksheets("For")
Set MaPlage = O.UsedRange
For iCompteur = MaPlage.Rows.Count To 1 Step -1
    If Application.CountA(O.Rows(iCompteur).EntireRow) = 0 Then
        O.Rows(iCompteur).Delete
    End If
Next iCompteur
End Sub

Bah merci beaucoup, là ça fonctionne ... même si je n'ai pas compris la différence entre les deux codes ... Il faudra que je prenne du temps pour les relire un à un et distinguer la différence. Mais encore merci :)

Re,

L'onglet O est spécifié systématiquement à chaque ligne...

Rechercher des sujets similaires à "meme code qui fonctionne appuyer bouton pas quittant userform"