Petit soucis de find et findnext

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

yadla

XLDnaute Occasionnel
Bonjour le forum,

Pas de panique, je sais bien que ce sujet est traité plein de fois... Mais là c'est juste que j'ai un code qui bug... mais je ne sais pas pourquoi 😕 Pourtant j'utilise le meme dans un autre fichier et tout fonctionne correctement. Alors bon, je fais encore un fois appel à vous.

En vous remerciant d'avance
 

Pièces jointes

Re : Petit soucis de find et findnext

Bonjour,

Pas de panique! C'est du au fait que ton find next perd le fil car tu lui a supprimé ses repères en supprimant la ligne précédente sur laquelle il s'était arrêté...

Tu dis que ta macro marchait sur d'autres fichiers ? Ce n'est pas possible en l'état. Sauf s'il n'y avait qu'une ligne à trouver et encore, je n'en suis pas sûr...

Le problème c'est que je ne comprend pas ce que tu veux faire exactement.
Tu sélectionne une famille et ensuite tu recherche par article : pas cohérent même si le résultat devrait être le même.

Ensuite tes noms d'onglet ont une majuscule alors que tes libéllés n'en ont pas (Et pourtant ça ne bug pas là... mais je n'ai pas reagrdé en détail.)

Ce sujet a déjà été résolu. Je me souviens d'un fil où nous avons apporté 2 solutions avec Pierrejean mais je ne sais plus lequel ni quand... Si je trouve je post parce que j'ai la flemme de refaire.😛 même si ce n'est pas très compliqué...🙄

Cordialement
 
Re : Petit soucis de find et findnext

Re,
Bon aller, je te donne une solution qui est plus simple encore que ce qu'on avait pondu, enfin... je crois 😀
Remplace :
Code:
       With Sheets(nom_onglet)
Set X = .Range("G1:G30000").Find(article_à_suppr, LookIn:=xlValues)
           adresse_à_suppr = X.Address
           ligne_x_debut = X.Row
            If Not X Is Nothing Then
                Do
                    Set X = Range("G1:G30000").FindNext(X)
                    ligne_x = X.Row
                    Rows(ligne_x).Delete
               Loop While ligne_x <> ligne_x_debut
            End If
        End With
par :
Code:
       With Sheets(nom_onglet)
            Do
                Set C = .Range("G1:G30000").Find(article_à_suppr, LookIn:=xlValues)
                If Not C Is Nothing Then
                    Cells(C.Row, "B").EntireRow.Delete
                End If
            Loop While Not C Is Nothing
        End With
et ça devrait marcher.

Cordialement
 
Re : Petit soucis de find et findnext

Bonjour spitnolan,

en fait, dans ma feuille liste fam, c'est un article que je selectionne, pas une famille. Ensuite, je vais dans l'onglet correspondondant à la famille de l'article que j'ai selectionné, pour supprimer toutes les données concernant cet article.

Je m'y prends surement mal... c'est pour ca que tu ne comprends pas pourquoi je fais ça comme ça 😱

EDIT : Merci, je change ça, je regarde
 
Dernière édition:
Re : Petit soucis de find et findnext

Re,
Si tu veux éviter une boucle infinie s'il n'y a rien dans ta feuille il vaut mieux mettre :
Code:
With Sheets(nom_onglet)
            Do
                Set C = .Range("G1:G" & Range("B" & Application.Rows.Count).End(xlUp).Row).Find(article_à_suppr, LookIn:=xlValues)
                If Not C Is Nothing Then
                    .Cells(C.Row, "B").EntireRow.Delete
                End If
            Loop While Not C Is Nothing
        End With
J'ai aussi rajouté un . avant Cells(C.row,"B").entirerow.delete Sinon ce n'était pas la bonne page qui était traitée

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

Discussions similaires

Réponses
2
Affichages
192
Réponses
2
Affichages
531
Retour