Boucle qui ne se termine pas...

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

blord

XLDnaute Impliqué
Bonjour à tous...

J'aimerais utiliser le code suivant pour supprimer toutes les lignes qui contiennent une valeur donnée :

Sub Delete()

Dim Var As String
Dim MotTrouvé
Var = "toto"

Set MotTrouvé = Range("A:A").Find(What:=Var)
MotTrouvé.Select

Do While Not MotTrouvé Is Nothing

ActiveCell.EntireRow.Select
Selection.Delete Shift:=xlUp
Loop

End Sub

J'aimerais utiliser ce code car il trouve directement et rapidement "toto" dans la colonne A et supprime la ligne. Ça évite de vérifier la valeur de chacune des cellules et ainsi avoir une macro qui est très longue lorsqu'elle boucle sur 30 000 cellules pour vérifier si la valeur de chaque cellule est "toto" et si oui, supprimer la ligne.

Le problème avec mon code, c'est qu'il ne s'arrête pas une fois toutes les lignes avec "toto" sont supprimées.

Merci à tous pour vos bons conseils !

Blord
 
Re : Boucle qui ne se termine pas...

Salut Blord,

Le problème avec mon code, c'est qu'il ne s'arrête pas une fois toutes les lignes avec "toto" sont supprimées.
Je suis même étonné que seul les lignes avec "toto" soient supprimées !?
Pour moi, vu ton premier code, c'est la première avec "toto" et toutes les suivantes !

Une fois la ligne trouvée et supprimée, il faut effectuer une nouvelle recherche ...

Voici le code 😉
Code:
Sub Delete()
Dim Var As String, MotTrouvé
Var = "toto"
On Error Resume Next
' Trouver la première occurence, si existe
Set MotTrouvé = Range("A:A").Find(What:=Var)
MotTrouvé.Select
' Supprimer la ligne si mot trouvé
Do While Not MotTrouvé Is Nothing
  ActiveCell.EntireRow.Select
  Selection.Delete Shift:=xlUp
  'Cherche la prochaine occurence
  Set MotTrouvé = Range("A:A").Find(What:=Var)
  MotTrouvé.Select
Loop
On Error GoTo 0
End Sub

A+
 
- 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
6
Affichages
337
Réponses
3
Affichages
455
Réponses
7
Affichages
800
Réponses
3
Affichages
590
Réponses
12
Affichages
1 K
Réponses
7
Affichages
975
Réponses
22
Affichages
3 K
Retour