Bonjour à tous.
Microsoft donne l'exemple suivant pour la méthode Find :
***
With Worksheets(1).Range("a1:a500")
Set c = .Find(2, lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = 5
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
***
L'erreur est sur la ligne Loop...
Si c "is nothing", c.Address renvoie une erreur, d'où plantage.
Dites-moi si je me trompe.
Merci d'avance.
Daniel
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pounet95
Bonjour,
Pour l'avoir vécu, nombre des exemples donnés ne son, à mon avis, t que des extraits de procédures et donc il y manque les déclarations de variables, les instructions de branchements en cas d'erreur, etc,etc A prendre avec des pincettes, donc !!
Bonne journée pounet95
"Daniel.C" a écrit dans le message de groupe de discussion :
Bonjour à tous. Microsoft donne l'exemple suivant pour la méthode Find : *** With Worksheets(1).Range("a1:a500") Set c = .Find(2, lookin:=xlValues) If Not c Is Nothing Then firstAddress = c.Address Do c.Value = 5 Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress End If End With *** L'erreur est sur la ligne Loop... Si c "is nothing", c.Address renvoie une erreur, d'où plantage. Dites-moi si je me trompe. Merci d'avance. Daniel
Bonjour,
Pour l'avoir vécu, nombre des exemples donnés ne son, à mon avis, t que des
extraits de procédures et donc il y manque les déclarations de variables,
les instructions de branchements en cas d'erreur, etc,etc
A prendre avec des pincettes, donc !!
Bonne journée
pounet95
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de groupe de
discussion : OJkbWAE7KHA.5112@TK2MSFTNGP02.phx.gbl...
Bonjour à tous.
Microsoft donne l'exemple suivant pour la méthode Find :
***
With Worksheets(1).Range("a1:a500")
Set c = .Find(2, lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = 5
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
***
L'erreur est sur la ligne Loop...
Si c "is nothing", c.Address renvoie une erreur, d'où plantage.
Dites-moi si je me trompe.
Merci d'avance.
Daniel
Pour l'avoir vécu, nombre des exemples donnés ne son, à mon avis, t que des extraits de procédures et donc il y manque les déclarations de variables, les instructions de branchements en cas d'erreur, etc,etc A prendre avec des pincettes, donc !!
Bonne journée pounet95
"Daniel.C" a écrit dans le message de groupe de discussion :
Bonjour à tous. Microsoft donne l'exemple suivant pour la méthode Find : *** With Worksheets(1).Range("a1:a500") Set c = .Find(2, lookin:=xlValues) If Not c Is Nothing Then firstAddress = c.Address Do c.Value = 5 Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress End If End With *** L'erreur est sur la ligne Loop... Si c "is nothing", c.Address renvoie une erreur, d'où plantage. Dites-moi si je me trompe. Merci d'avance. Daniel
michdenis
Bonjour Daniel,
Tu recherches une cellule contenant "2" que tu remplaces par 5. Le problème a cette ligne de code : Loop While Not c Is Nothing And c.Address <> firstAddress
C'est l'usage de "And". Lorsque toutes les cellules contenant "2" auront été remplacées par 5, la procédure ne pourra revenir à l'adresse de la première cellule trouvée, car elle n'existe plus. La condition de la sortie de la boucle est impossible !
Cette condition devrait alors être suffisante : Loop While Not c Is Nothing
Bonjour Daniel,
Tu recherches une cellule contenant "2" que tu remplaces par 5.
Le problème a cette ligne de code :
Loop While Not c Is Nothing And c.Address <> firstAddress
C'est l'usage de "And". Lorsque toutes les cellules contenant "2"
auront été remplacées par 5, la procédure ne pourra revenir à
l'adresse de la première cellule trouvée, car elle n'existe plus.
La condition de la sortie de la boucle est impossible !
Cette condition devrait alors être suffisante : Loop While Not c Is Nothing
Tu recherches une cellule contenant "2" que tu remplaces par 5. Le problème a cette ligne de code : Loop While Not c Is Nothing And c.Address <> firstAddress
C'est l'usage de "And". Lorsque toutes les cellules contenant "2" auront été remplacées par 5, la procédure ne pourra revenir à l'adresse de la première cellule trouvée, car elle n'existe plus. La condition de la sortie de la boucle est impossible !
Cette condition devrait alors être suffisante : Loop While Not c Is Nothing
Daniel.C
Bonjour Denis. On est bien d'accord ! Cordialement. Daniel
Bonjour Daniel,
Tu recherches une cellule contenant "2" que tu remplaces par 5. Le problème a cette ligne de code : Loop While Not c Is Nothing And c.Address <> firstAddress
C'est l'usage de "And". Lorsque toutes les cellules contenant "2" auront été remplacées par 5, la procédure ne pourra revenir à l'adresse de la première cellule trouvée, car elle n'existe plus. La condition de la sortie de la boucle est impossible !
Cette condition devrait alors être suffisante : Loop While Not c Is Nothing
Bonjour Denis.
On est bien d'accord !
Cordialement.
Daniel
Bonjour Daniel,
Tu recherches une cellule contenant "2" que tu remplaces par 5.
Le problème a cette ligne de code :
Loop While Not c Is Nothing And c.Address <> firstAddress
C'est l'usage de "And". Lorsque toutes les cellules contenant "2"
auront été remplacées par 5, la procédure ne pourra revenir à
l'adresse de la première cellule trouvée, car elle n'existe plus.
La condition de la sortie de la boucle est impossible !
Cette condition devrait alors être suffisante : Loop While Not c Is Nothing
Bonjour Denis. On est bien d'accord ! Cordialement. Daniel
Bonjour Daniel,
Tu recherches une cellule contenant "2" que tu remplaces par 5. Le problème a cette ligne de code : Loop While Not c Is Nothing And c.Address <> firstAddress
C'est l'usage de "And". Lorsque toutes les cellules contenant "2" auront été remplacées par 5, la procédure ne pourra revenir à l'adresse de la première cellule trouvée, car elle n'existe plus. La condition de la sortie de la boucle est impossible !
Cette condition devrait alors être suffisante : Loop While Not c Is Nothing
Daniel.C
Lu un peu vite; Si il n'y a ps de modification, c'est : Loop While c.Address <> firstAddress qu'il faut choisir. Daniel
Bonjour Daniel,
Tu recherches une cellule contenant "2" que tu remplaces par 5. Le problème a cette ligne de code : Loop While Not c Is Nothing And c.Address <> firstAddress
C'est l'usage de "And". Lorsque toutes les cellules contenant "2" auront été remplacées par 5, la procédure ne pourra revenir à l'adresse de la première cellule trouvée, car elle n'existe plus. La condition de la sortie de la boucle est impossible !
Cette condition devrait alors être suffisante : Loop While Not c Is Nothing
Lu un peu vite; Si il n'y a ps de modification, c'est :
Loop While c.Address <> firstAddress
qu'il faut choisir.
Daniel
Bonjour Daniel,
Tu recherches une cellule contenant "2" que tu remplaces par 5.
Le problème a cette ligne de code :
Loop While Not c Is Nothing And c.Address <> firstAddress
C'est l'usage de "And". Lorsque toutes les cellules contenant "2"
auront été remplacées par 5, la procédure ne pourra revenir à
l'adresse de la première cellule trouvée, car elle n'existe plus.
La condition de la sortie de la boucle est impossible !
Cette condition devrait alors être suffisante : Loop While Not c Is Nothing
Lu un peu vite; Si il n'y a ps de modification, c'est : Loop While c.Address <> firstAddress qu'il faut choisir. Daniel
Bonjour Daniel,
Tu recherches une cellule contenant "2" que tu remplaces par 5. Le problème a cette ligne de code : Loop While Not c Is Nothing And c.Address <> firstAddress
C'est l'usage de "And". Lorsque toutes les cellules contenant "2" auront été remplacées par 5, la procédure ne pourra revenir à l'adresse de la première cellule trouvée, car elle n'existe plus. La condition de la sortie de la boucle est impossible !
Cette condition devrait alors être suffisante : Loop While Not c Is Nothing
michdenis
| Si il n'y a ps de modification, c'est : | Loop While c.Address <> firstAddress
Dans ce cas, les 2 conditions devraient se réaliser : Loop While Not c Is Nothing And c.Address <> firstAddress
Cependant, il faut faire attention au traitement fait à l'intérieur de la boucle Do.... Loop While et de son impact sur l'environnement de la feuille de calcul comme sur l'approche Find... FindNext (Dans certaines boucles, l'usager qui désire supprimer des lignes ou des colonnes...)
| Si il n'y a ps de modification, c'est :
| Loop While c.Address <> firstAddress
Dans ce cas, les 2 conditions devraient se réaliser :
Loop While Not c Is Nothing And c.Address <> firstAddress
Cependant, il faut faire attention au traitement fait à l'intérieur
de la boucle Do.... Loop While et de son impact sur l'environnement
de la feuille de calcul comme sur l'approche Find... FindNext
(Dans certaines boucles, l'usager qui désire supprimer des lignes
ou des colonnes...)
| Si il n'y a ps de modification, c'est : | Loop While c.Address <> firstAddress
Dans ce cas, les 2 conditions devraient se réaliser : Loop While Not c Is Nothing And c.Address <> firstAddress
Cependant, il faut faire attention au traitement fait à l'intérieur de la boucle Do.... Loop While et de son impact sur l'environnement de la feuille de calcul comme sur l'approche Find... FindNext (Dans certaines boucles, l'usager qui désire supprimer des lignes ou des colonnes...)
Daniel.C
Dans ce cas, les 2 conditions devraient se réaliser : Loop While Not c Is Nothing And c.Address <> firstAddress
Oui, pas d'erreur, la première condition est seulement inutile. Daniel
Dans ce cas, les 2 conditions devraient se réaliser :
Loop While Not c Is Nothing And c.Address <> firstAddress
Oui, pas d'erreur, la première condition est seulement inutile.
Daniel