Suppression double

Bonsoir,

Lorsque je procède à l'inscription de mes usagers, deux lignes à la fois s'ajoutent et c'est bien. Il est possible que lorsque je supprime, les deux lignes contenant le même nom, prénom se supprime également ?

Mon code afin de supprimer :

Sub SupprimerD()

With Sheets("Inscriptions")
.Unprotect Password:="CES"

    Dim Col, SupprimeLigne, i
    Set Col = [Tableau12].ListObject.ListColumns(4).DataBodyRange
    SupprimeLigne = InputBox("Veuillez entrer le nom, prénom à supprimer", "SUPPRESSION")
    For i = 1 To Col.Rows.Count
        If Col(i, 1) = SupprimeLigne Then [Tableau12].ListObject.ListRows(i).Delete: Exit For

    Next
.Protect Password:="CES"
End With
End Sub

J'ai le sentiment qu'il me manque une ligne de code for Nb Lig 1 to 2 alors que ça ne fonctionne pas lorsque je l'ajoute.

Merci pour votre aide et bonne soirée.

Bonsoir,

lorsque l'on exécute une boucle sur les lignes d'une feuille Excel pour effectuer des suppressions il faut partir d'en bas et remonter vers le haut de la feuille.
en effet si la ligne i=10 est supprimée, alors la ligne 11 avant suppression prend sa place en "10" et la ligne 12 remonte en 11, lorsque la boucle continue, i passe à 11 qui est en fait maintenant la ligne 12 avant suppression, la "vraie" ligne 11 avant suppression étant passée en 10, elle ne subit pas le test de la boucle.

Soit à la suppression d'une ligne vous décrémentez le compteur de boucle de 1 (mais en général on ne touche pas à ce compteur)
soit vous faites une boucle inversée et c'est beaucoup plus propre !

Essayez en remplaçant ceci : For i = 1 To Col.Rows.Count
par : For i = Col.Rows.Count To 1 Step -1

@ bientôt

LouReeD

Ayant le sommeil léger je fais quelques essais voici :

Sub SupprimerD()

With Sheets("Inscriptions")
.Unprotect Password:="CES"

    Dim Col, SupprimeLigne, i
    Set Col = [Tableau12].ListObject.ListColumns(4).DataBodyRange
    SupprimeLigne = InputBox("Veuillez entrer le nom, prénom à supprimer", "SUPPRESSION")
    For i = Col.Rows.Count To 1 Step -1 
        If Col(i, 1) = SupprimeLigne Then [Tableau12].ListObject.ListRows(i).Delete: Exit For

    Next
.Protect Password:="CES"
End With
End Sub

Je n'arrive qu'à supprimer un enregistrement à la fois. Il y a bien quelque chose qui manque xlDown mais je n'en suis pas moins certaine. Sans plus je ne trouve pas la solution.

Merci de votre aide.

Bonjour

Enlevez le "exit for" sinon à la première suppression la boucle s'arrête et la deuxième ligne du nom n'est pas effacée.

@ bientôt

LouReeD

Mais oui c'est bien cela.

Merci !

J'aurais du le voir plus tôt ! Mais cela n'enlève rien au fait de commencer par le bas du tableau !

Merci pour vos remerciements !

@ bientôt

LouReeD

Je suis reconnaissante de l'aide sur ce forum

Et les gens...

Rechercher des sujets similaires à "suppression double"