autofill en conflit (de canard) avec une fonction ?
3 réponses
maatthieu
resalut tout le monde
en fait je suis encore face =E0 un probl=E8me de ce satan=E9 autofill...
je lance mon programme vba :
1)dans A2, ecrit ca : =3Df(A1) o=F9 f est une fonction qui marche et
A1 est un entier
2)dans A3, ecrit ca : =3D A2+n o=F9 n =3D 4
3)puis recopie vers la droite de 4 cases :
Range("A2:A3").AutoFill Destination:=3DRange("A2:E3"),
Type:=3DxlFillDefault
le programme s'arrete et j'ai un message d'erreur disant qu'il y a une
reference circulaire qu'il ne peut pas me montrer
je m'apercois qu'excel il y a des #VALUE! dans les cases B2:E3
je double clique sur B2, je vois qu'il y a bien marqu=E9 "=3Df(B2)", je
tape entr=E9e, et la oh miracle, toutes les cases B2:E3 se remplissent
des bonnes valeurs
ce qui prouve qu'il n'y a pas de reference circulaire...
je soupconne un probleme de timing entre l'autofill et la fonction f
donc j'ai rajout=E9 :
1) Application.Calculate partout dans mon code pour qu'il recalcule la
page, mais non, #value! reste
2) j'ai d=E9sactive la mise =E0 jour des recalculs :
Application.Calculation =3D xlCalculationManual
pour la reactiver a la fin de la procedure d'autofill
(Application.Calculation =3D xlCalculationAutomatic)
toujours la meme erreur... :aie:
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
maatthieu
oui c'est ca, je commence à bien comprendre le probleme
en fait, des que l'on dit à excel de copier : "=f(A1)" dans A2, il le fait et excel calcul automatiquement le resultat, comme si on double- cliquait sur A2, qu'on rentrait nous meme "=f(A1)" et qu'on tapait entrée
mais lorsque, dans une meme macro, on modifie A1 ultérieurement, la fonction f contenue dans A2 n'est pas recalculée
voila je me suis fais bien avancé mais je ne vois toujours pas comment on peut resoudre ce problème...
oui c'est ca, je commence à bien comprendre le probleme
en fait, des que l'on dit à excel de copier : "=f(A1)" dans A2, il le
fait et excel calcul automatiquement le resultat, comme si on double-
cliquait sur A2, qu'on rentrait nous meme "=f(A1)" et qu'on tapait
entrée
mais lorsque, dans une meme macro, on modifie A1 ultérieurement, la
fonction f contenue dans A2 n'est pas recalculée
voila je me suis fais bien avancé
mais je ne vois toujours pas comment on peut resoudre ce problème...
oui c'est ca, je commence à bien comprendre le probleme
en fait, des que l'on dit à excel de copier : "=f(A1)" dans A2, il le fait et excel calcul automatiquement le resultat, comme si on double- cliquait sur A2, qu'on rentrait nous meme "=f(A1)" et qu'on tapait entrée
mais lorsque, dans une meme macro, on modifie A1 ultérieurement, la fonction f contenue dans A2 n'est pas recalculée
voila je me suis fais bien avancé mais je ne vois toujours pas comment on peut resoudre ce problème...
zOrg2net
Bonjour,
Une suggestion, comme ça, sans avoir tout compris à ton pb, ni avoir testé. Si une de tes macro modifie la valeur de A1, peut-être que pour recalculer A2 tu peux mettre un truc comme [A2].Activate, ce qui devrait remplacer Entrée ? Enfin, peut-être. Ou un Refresh comme dans Access????
zOrg2net 7OuNet
oui c'est ca, je commence à bien comprendre le probleme
en fait, des que l'on dit à excel de copier : "=f(A1)" dans A2, il le fait et excel calcul automatiquement le resultat, comme si on double- cliquait sur A2, qu'on rentrait nous meme "=f(A1)" et qu'on tapait entrée
mais lorsque, dans une meme macro, on modifie A1 ultérieurement, la fonction f contenue dans A2 n'est pas recalculée
voila je me suis fais bien avancé mais je ne vois toujours pas comment on peut resoudre ce problème...
Bonjour,
Une suggestion, comme ça, sans avoir tout compris à ton pb, ni avoir testé.
Si une de tes macro modifie la valeur de A1, peut-être que pour recalculer A2
tu peux mettre un truc comme [A2].Activate, ce qui devrait remplacer Entrée ?
Enfin, peut-être. Ou un Refresh comme dans Access????
zOrg2net
7OuNet
oui c'est ca, je commence à bien comprendre le probleme
en fait, des que l'on dit à excel de copier : "=f(A1)" dans A2, il le
fait et excel calcul automatiquement le resultat, comme si on double-
cliquait sur A2, qu'on rentrait nous meme "=f(A1)" et qu'on tapait
entrée
mais lorsque, dans une meme macro, on modifie A1 ultérieurement, la
fonction f contenue dans A2 n'est pas recalculée
voila je me suis fais bien avancé
mais je ne vois toujours pas comment on peut resoudre ce problème...
Une suggestion, comme ça, sans avoir tout compris à ton pb, ni avoir testé. Si une de tes macro modifie la valeur de A1, peut-être que pour recalculer A2 tu peux mettre un truc comme [A2].Activate, ce qui devrait remplacer Entrée ? Enfin, peut-être. Ou un Refresh comme dans Access????
zOrg2net 7OuNet
oui c'est ca, je commence à bien comprendre le probleme
en fait, des que l'on dit à excel de copier : "=f(A1)" dans A2, il le fait et excel calcul automatiquement le resultat, comme si on double- cliquait sur A2, qu'on rentrait nous meme "=f(A1)" et qu'on tapait entrée
mais lorsque, dans une meme macro, on modifie A1 ultérieurement, la fonction f contenue dans A2 n'est pas recalculée
voila je me suis fais bien avancé mais je ne vois toujours pas comment on peut resoudre ce problème...
maatthieu
bien essayé mais j'ai l'impression que la macro se bloque des qu'il y a #VALUE! qui apparait, donc meme si on met [A2].Activate apres, ce n'est pas pris en compte
bien essayé mais j'ai l'impression que la macro se bloque des qu'il y
a #VALUE! qui apparait, donc meme si on met [A2].Activate apres, ce
n'est pas pris en compte
bien essayé mais j'ai l'impression que la macro se bloque des qu'il y a #VALUE! qui apparait, donc meme si on met [A2].Activate apres, ce n'est pas pris en compte