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

Boucle FindNext

Calvus

XLDnaute Barbatruc
Bonjour à tous,

J'ai un problème de sortie de boucle avec FindNext.

Un classeur (nommé ici FindNext) va ouvrir le classeur Caisse 2016 et inscrire le numéro de facture (G5) correspondant au client (B12), après avoir vérifié que le numéro n'est pas déjà inscrit (colonne Y du classeur Caisse)

Voici la partie du code qui pose problème :

VB:
 'BOUCLE
    Sheets("Semestre 1").Activate
    If cl.Offset(, 4) = "" Then
    cl.Offset(, 4) = val3
    Else
    Do
    Set cl = Columns(21).FindNext(cl)
    cl.Offset(, 4) = val3
    'If cl.Offset(, 4) = "" Then Exit Sub
    Loop While Not cl.Offset(, 4) Is Nothing
    End If
    
   'FIN DE BOUCLE

D'une part la boucle ne finit pas, d'autre part ça repart à zéro et modifie le Dudu 1 en Dudu 2.
Cela peut être changé si je modifie cl en cl2 après le DO dans mon code, mais le problème se pose à nouveau s'il y a d'autres occurrences.

Comment faire ?

Pensez à changer les répertoires de destination pour les essais.

Merci
 

Pièces jointes

  • FindNext.xlsm
    90.5 KB · Affichages: 26
  • Caisse 2016.xlsx
    14 KB · Affichages: 34
  • FindNext.xlsm
    90.5 KB · Affichages: 20

Modeste geedee

XLDnaute Barbatruc
Re : Boucle FindNext

Bonsour®
il faut mémoriser la 1ere adresse trouvée par l'instruction Find
et arreter la boucle findNext lorsque l'on repasse sur cette adresse...!!!

voir l'aide F1
concernant l'instruction FindNext et
l'exemple fourni sont particulièrement explicites à ce sujet
 

Discussions similaires

Réponses
12
Affichages
731
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…