Supprimer #N/A

Le
JulieH
Bonjour à toutes et tous,

Dans une formule matricielle (INDEX, EQUIV validée avec Ctrl + Maj
+ Entrée), je n'ai pas réussi à intégrer "Si(ESTNA." pour supprimer
les #N/A.

J'ai donc essayé de contourner le problème en créant une boucle pour
les éliminer tous avec la Macro suivante :

Application.ScreenUpdating = False
Dim cellules
For Each cellules In Range("G7:S14")
If CVErr(xlErrNA) = cellules Then
cellules = ""
End If
Next cellules


Cela ne fonctionne pas : Erreur d'execution 13 - Incompatibilité de
type sur la ligne If .. then.
J'ai l'impression que c'est la boucle qui ne fonctionne pas (je ne suis
pas spécialiste de ces fameuses boucles même si j'ai testé plusieurs
arguments de Déclaration) car cela fonctionne si je travaille cellule
par cellule. Par exemple, la macro suivante est OK :

If CVErr(xlErrNA) = [B7] Then
[B7] = ""
End If


Quelqu'un peut-il m'aider ? Merci d'avance.

Julie
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
François
Le #18464831
Bonjour,

et avec SI(ESTERREUR(...);"si_vrai";"si_faux")
cela fonctionne-t-il ?

François

"JulieH" OFx%
Bonjour à toutes et tous,

Dans une formule matricielle (INDEX, EQUIV ... validée avec Ctrl + Maj +
Entrée), je n'ai pas réussi à intégrer "Si(ESTNA...." pour supprimer les
#N/A.

J'ai donc essayé de contourner le problème en créant une boucle pour les
éliminer tous avec la Macro suivante :

Application.ScreenUpdating = False
Dim cellules
For Each cellules In Range("G7:S14")
If CVErr(xlErrNA) = cellules Then
cellules = ""
End If
Next cellules


Cela ne fonctionne pas : Erreur d'execution 13 - Incompatibilité de type
sur la ligne If ..... then.
J'ai l'impression que c'est la boucle qui ne fonctionne pas (je ne suis
pas spécialiste de ces fameuses boucles même si j'ai testé plusieurs
arguments de Déclaration) car cela fonctionne si je travaille cellule par
cellule. Par exemple, la macro suivante est OK :

If CVErr(xlErrNA) = [B7] Then
[B7] = ""
End If


Quelqu'un peut-il m'aider ? Merci d'avance.

Julie


michdenis
Le #18465041
Tu peux utiliser une format de mise en forme conditionnelle

La formule est : =EstNa(AdresseDeLaCellule)
et tu appliques un format couleur à la police équivalent
à celui de fond de la cellule.

As-tu essayé une formule de ce type :
=SI(ESTERREUR(INDEX(liste1;EQUIV(C1;Liste2;0)));"";INDEX(liste1;EQUIV(C1;Liste2;0)))

2 plages nommées : Liste1 et Liste2 et C1 la cellule contenant la donnée recherchée



"JulieH" discussion : OFx#
Bonjour à toutes et tous,

Dans une formule matricielle (INDEX, EQUIV ... validée avec Ctrl + Maj
+ Entrée), je n'ai pas réussi à intégrer "Si(ESTNA...." pour supprimer
les #N/A.

J'ai donc essayé de contourner le problème en créant une boucle pour
les éliminer tous avec la Macro suivante :

Application.ScreenUpdating = False
Dim cellules
For Each cellules In Range("G7:S14")
If CVErr(xlErrNA) = cellules Then
cellules = ""
End If
Next cellules


Cela ne fonctionne pas : Erreur d'execution 13 - Incompatibilité de
type sur la ligne If ..... then.
J'ai l'impression que c'est la boucle qui ne fonctionne pas (je ne suis
pas spécialiste de ces fameuses boucles même si j'ai testé plusieurs
arguments de Déclaration) car cela fonctionne si je travaille cellule
par cellule. Par exemple, la macro suivante est OK :

If CVErr(xlErrNA) = [B7] Then
[B7] = ""
End If


Quelqu'un peut-il m'aider ? Merci d'avance.

Julie
JB
Le #18465031
Bonjour,

Si la formule matricielle est écrite dans un champ, on ne peut pas
vider des cellules de ce champ.
Il faudrait voir la formule.

JB
http://boisgontierjacques.free.fr/
On 23 jan, 13:17, JulieH
Bonjour à toutes et tous,

        Dans une formule matricielle (INDEX, EQUIV ... validée avec Ctrl + Maj
+ Entrée), je n'ai pas réussi à intégrer "Si(ESTNA...." pour supp rimer
les #N/A.

        J'ai donc essayé de contourner le problème en créan t une boucle pour
les éliminer tous avec la Macro suivante :

Application.ScreenUpdating = False
Dim cellules
For Each cellules In Range("G7:S14")
  If CVErr(xlErrNA) = cellules Then
  cellules = ""
  End If
  Next cellules

        Cela ne fonctionne pas : Erreur d'execution 13 - Incompat ibilité de
type sur la ligne If ..... then.
        J'ai l'impression que c'est la boucle qui ne fonctionne p as (je ne suis
pas spécialiste de ces fameuses boucles même si j'ai testé plusieur s
arguments de Déclaration) car cela fonctionne si je travaille cellule
par cellule. Par exemple, la macro suivante est OK :

If CVErr(xlErrNA) = [B7] Then
  [B7] = ""
  End If

        Quelqu'un peut-il m'aider ? Merci d'avance.

                Julie


JulieH
Le #18465551
Bonjour à tous et merci pour vos réponses,

Actuellement, la formule est la suivante :
=SI($B7="";"";SI($A7=G$6;"";INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0))))
avec validation par Ctrl + Maj + Entrée.
Si j'ajoute Si(ESTNA... ou ESTERREUR comme indiqué, je ne peux plus
mettre en matricielle.

En revanche, la macro fait une copie en valeur et il est possible
d'effacer cette valeur par macro. D'ailleurs, si je prends une seule
cellule, la macro suivante fonctionne.

If CVErr(xlErrNA) = [B7] Then
[B7] = ""
End if

Julie



JB a écrit :
Bonjour,

Si la formule matricielle est écrite dans un champ, on ne peut pas
vider des cellules de ce champ.
Il faudrait voir la formule.

JB
http://boisgontierjacques.free.fr/
On 23 jan, 13:17, JulieH
Bonjour à toutes et tous,

Dans une formule matricielle (INDEX, EQUIV ... validée avec Ctrl + Maj
+ Entrée), je n'ai pas réussi à intégrer "Si(ESTNA...." pour supprimer
les #N/A.

J'ai donc essayé de contourner le problème en créant une boucle pour
les éliminer tous avec la Macro suivante :

Application.ScreenUpdating = False
Dim cellules
For Each cellules In Range("G7:S14")
If CVErr(xlErrNA) = cellules Then
cellules = ""
End If
Next cellules

Cela ne fonctionne pas : Erreur d'execution 13 - Incompatibilité de
type sur la ligne If ..... then.
J'ai l'impression que c'est la boucle qui ne fonctionne pas (je ne suis
pas spécialiste de ces fameuses boucles même si j'ai testé plusieurs
arguments de Déclaration) car cela fonctionne si je travaille cellule
par cellule. Par exemple, la macro suivante est OK :

If CVErr(xlErrNA) = [B7] Then
[B7] = ""
End If

Quelqu'un peut-il m'aider ? Merci d'avance.

Julie





michdenis
Le #18466261
Cette formule devrait fonctionner pour enlever les NA

=SI($B7="";"";SI($A7=G$6;"";SI(ESTNA(INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0)));"";INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0)))))




"JulieH" discussion :
Bonjour à tous et merci pour vos réponses,

Actuellement, la formule est la suivante :
=SI($B7="";"";SI($A7=G$6;"";INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0))))
avec validation par Ctrl + Maj + Entrée.
Si j'ajoute Si(ESTNA... ou ESTERREUR comme indiqué, je ne peux plus
mettre en matricielle.

En revanche, la macro fait une copie en valeur et il est possible
d'effacer cette valeur par macro. D'ailleurs, si je prends une seule
cellule, la macro suivante fonctionne.

If CVErr(xlErrNA) = [B7] Then
[B7] = ""
End if

Julie



JB a écrit :
Bonjour,

Si la formule matricielle est écrite dans un champ, on ne peut pas
vider des cellules de ce champ.
Il faudrait voir la formule.

JB
http://boisgontierjacques.free.fr/
On 23 jan, 13:17, JulieH
Bonjour à toutes et tous,

Dans une formule matricielle (INDEX, EQUIV ... validée avec Ctrl + Maj
+ Entrée), je n'ai pas réussi à intégrer "Si(ESTNA...." pour supprimer
les #N/A.

J'ai donc essayé de contourner le problème en créant une boucle pour
les éliminer tous avec la Macro suivante :

Application.ScreenUpdating = False
Dim cellules
For Each cellules In Range("G7:S14")
If CVErr(xlErrNA) = cellules Then
cellules = ""
End If
Next cellules

Cela ne fonctionne pas : Erreur d'execution 13 - Incompatibilité de
type sur la ligne If ..... then.
J'ai l'impression que c'est la boucle qui ne fonctionne pas (je ne suis
pas spécialiste de ces fameuses boucles même si j'ai testé plusieurs
arguments de Déclaration) car cela fonctionne si je travaille cellule
par cellule. Par exemple, la macro suivante est OK :

If CVErr(xlErrNA) = [B7] Then
[B7] = ""
End If

Quelqu'un peut-il m'aider ? Merci d'avance.

Julie





ptck
Le #18466771
bonjour

une réponse d'ici d'un jour que renvoie ce jour

ptck




Toutes erreurs : #DIV/0!, #N/A, #NOM?, NUL!, #NOMBRE!, #REF!, #VALEUR!
If worksheetfunction.IsError(Cell ) Then etc...

Toutes Erreurs sauf #N/A
If worksheetfunction.IsErr(Cell ) Then etc...

Seulement #N/A
If worksheetfunction.IsNa(Cell ) Then etc...







"michdenis"
Cette formule devrait fonctionner pour enlever les NA

=SI($B7="";"";SI($A7=G$6;"";SI(ESTNA(INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0)));"";INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0)))))




"JulieH" groupe de
discussion :
Bonjour à tous et merci pour vos réponses,

Actuellement, la formule est la suivante :
=SI($B7="";"";SI($A7=G$6;"";INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0))))
avec validation par Ctrl + Maj + Entrée.
Si j'ajoute Si(ESTNA... ou ESTERREUR comme indiqué, je ne peux plus
mettre en matricielle.

En revanche, la macro fait une copie en valeur et il est possible
d'effacer cette valeur par macro. D'ailleurs, si je prends une seule
cellule, la macro suivante fonctionne.

If CVErr(xlErrNA) = [B7] Then
[B7] = ""
End if

Julie



JB a écrit :
Bonjour,

Si la formule matricielle est écrite dans un champ, on ne peut pas
vider des cellules de ce champ.
Il faudrait voir la formule.

JB
http://boisgontierjacques.free.fr/
On 23 jan, 13:17, JulieH
Bonjour à toutes et tous,

Dans une formule matricielle (INDEX, EQUIV ... validée avec Ctrl
+ Maj
+ Entrée), je n'ai pas réussi à intégrer "Si(ESTNA...." pour supprimer
les #N/A.

J'ai donc essayé de contourner le problème en créant une boucle
pour
les éliminer tous avec la Macro suivante :

Application.ScreenUpdating = False
Dim cellules
For Each cellules In Range("G7:S14")
If CVErr(xlErrNA) = cellules Then
cellules = ""
End If
Next cellules

Cela ne fonctionne pas : Erreur d'execution 13 - Incompatibilité
de
type sur la ligne If ..... then.
J'ai l'impression que c'est la boucle qui ne fonctionne pas (je
ne suis
pas spécialiste de ces fameuses boucles même si j'ai testé plusieurs
arguments de Déclaration) car cela fonctionne si je travaille cellule
par cellule. Par exemple, la macro suivante est OK :

If CVErr(xlErrNA) = [B7] Then
[B7] = ""
End If

Quelqu'un peut-il m'aider ? Merci d'avance.

Julie








JulieH
Le #18467261
Merci pour continuer à suivre le problème.

J'avais bien sûr testé cette formule et je viens de le refaire. Elle ne
donne aucun des résultats escomptés même quand ce n'est pas NA. Je
n'arrive pas non plus à la mettre en matricielle.

Alors que ma formule précédente fonctionne avec Ctrl + Maj + Entrée :
=SI($B7="";"";SI($A7=G$6;"";INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0))))

Je reviens donc à ma première question : Y-a-t-il quelques chose dans
ma boucle qui explique l'erreur 13 ?

Julie


michdenis a écrit :
Cette formule devrait fonctionner pour enlever les NA

=SI($B7="";"";SI($A7=G$6;"";SI(ESTNA(INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0)));"";INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0)))))




"JulieH" discussion :
Bonjour à tous et merci pour vos réponses,

Actuellement, la formule est la suivante :
=SI($B7="";"";SI($A7=G$6;"";INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0))))
avec validation par Ctrl + Maj + Entrée.
Si j'ajoute Si(ESTNA... ou ESTERREUR comme indiqué, je ne peux plus
mettre en matricielle.

En revanche, la macro fait une copie en valeur et il est possible
d'effacer cette valeur par macro. D'ailleurs, si je prends une seule
cellule, la macro suivante fonctionne.

If CVErr(xlErrNA) = [B7] Then
[B7] = ""
End if

Julie



JB a écrit :
Bonjour,

Si la formule matricielle est écrite dans un champ, on ne peut pas
vider des cellules de ce champ.
Il faudrait voir la formule.

JB
http://boisgontierjacques.free.fr/
On 23 jan, 13:17, JulieH
Bonjour à toutes et tous,

Dans une formule matricielle (INDEX, EQUIV ... validée avec Ctrl + Maj
+ Entrée), je n'ai pas réussi à intégrer "Si(ESTNA...." pour supprimer
les #N/A.

J'ai donc essayé de contourner le problème en créant une boucle pour
les éliminer tous avec la Macro suivante :

Application.ScreenUpdating = False
Dim cellules
For Each cellules In Range("G7:S14")
If CVErr(xlErrNA) = cellules Then
cellules = ""
End If
Next cellules

Cela ne fonctionne pas : Erreur d'execution 13 - Incompatibilité de
type sur la ligne If ..... then.
J'ai l'impression que c'est la boucle qui ne fonctionne pas (je ne suis
pas spécialiste de ces fameuses boucles même si j'ai testé plusieurs
arguments de Déclaration) car cela fonctionne si je travaille cellule
par cellule. Par exemple, la macro suivante est OK :

If CVErr(xlErrNA) = [B7] Then
[B7] = ""
End If

Quelqu'un peut-il m'aider ? Merci d'avance.

Julie






michdenis
Le #18467241
Et bien, la formule que je t'ai donnée fonctionnait bien !
et même en matricielle.

Tu utilises des plages nommées dans ta formule. Es-tu
certaine que celles-ci sont de même dimension (même
nombre de lignes) ?

Tu parles de boucle... es-ce que tu utilises la formule
directement dans la feuille de calcul ou dans une
procédure VBA ?



"JulieH" discussion : #
Merci pour continuer à suivre le problème.

J'avais bien sûr testé cette formule et je viens de le refaire. Elle ne
donne aucun des résultats escomptés même quand ce n'est pas NA. Je
n'arrive pas non plus à la mettre en matricielle.

Alors que ma formule précédente fonctionne avec Ctrl + Maj + Entrée :
=SI($B7="";"";SI($A7=G$6;"";INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0))))

Je reviens donc à ma première question : Y-a-t-il quelques chose dans
ma boucle qui explique l'erreur 13 ?

Julie


michdenis a écrit :
Cette formule devrait fonctionner pour enlever les NA

=SI($B7="";"";SI($A7=G$6;"";SI(ESTNA(INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0)));"";INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0)))))




"JulieH" discussion :
Bonjour à tous et merci pour vos réponses,

Actuellement, la formule est la suivante :
=SI($B7="";"";SI($A7=G$6;"";INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0))))
avec validation par Ctrl + Maj + Entrée.
Si j'ajoute Si(ESTNA... ou ESTERREUR comme indiqué, je ne peux plus
mettre en matricielle.

En revanche, la macro fait une copie en valeur et il est possible
d'effacer cette valeur par macro. D'ailleurs, si je prends une seule
cellule, la macro suivante fonctionne.

If CVErr(xlErrNA) = [B7] Then
[B7] = ""
End if

Julie



JB a écrit :
Bonjour,

Si la formule matricielle est écrite dans un champ, on ne peut pas
vider des cellules de ce champ.
Il faudrait voir la formule.

JB
http://boisgontierjacques.free.fr/
On 23 jan, 13:17, JulieH
Bonjour à toutes et tous,

Dans une formule matricielle (INDEX, EQUIV ... validée avec Ctrl + Maj
+ Entrée), je n'ai pas réussi à intégrer "Si(ESTNA...." pour supprimer
les #N/A.

J'ai donc essayé de contourner le problème en créant une boucle pour
les éliminer tous avec la Macro suivante :

Application.ScreenUpdating = False
Dim cellules
For Each cellules In Range("G7:S14")
If CVErr(xlErrNA) = cellules Then
cellules = ""
End If
Next cellules

Cela ne fonctionne pas : Erreur d'execution 13 - Incompatibilité de
type sur la ligne If ..... then.
J'ai l'impression que c'est la boucle qui ne fonctionne pas (je ne suis
pas spécialiste de ces fameuses boucles même si j'ai testé plusieurs
arguments de Déclaration) car cela fonctionne si je travaille cellule
par cellule. Par exemple, la macro suivante est OK :

If CVErr(xlErrNA) = [B7] Then
[B7] = ""
End If

Quelqu'un peut-il m'aider ? Merci d'avance.

Julie






JulieH
Le #18470491
Bonjour,

Je n'ai pas pu répondre hier soir mais je te remercie de continuer à
t'intéresser. Je vais essayer de tout reprendre à zéro avec la formule
pour voir ce qui ne fonctionne pas chez moi. Mais je suis surprise étant
donné que tout fonctionne parfaitement lorsque je me contente de garder
les NA.

En ce qui concerne la dernière question :
- J'ai une feuille intermédiaire dans laquelle il y a le cadre et les
formules.
- La Macro copie les données "Femll" dans ce cadre et récupère les infos
(en valeurs) sur une autre feuille.
- A ce moment il y a les NA que je n'ai pas réussi à enlever avec la
formule (cf ma question).
- Pour régler le problème, j'ai pensé faire une boucle qui passe en
revue les cellules concernées et efface les NA.
- La formule trouvée "If CVErr(xlErrNA) = ... Then" fonctionne lorsque
je l'utilise cellule par cellule mais ne fonctionne pas lorsque je
l'utilise en boucle. D'où LA question de mon premier message.

Je ne sais pas si c'est plus clair, il faudrait que je passe un fichier
mais pour cela il faut que je simplifie tout et c'est un peu compliqué.

Julie



michdenis a écrit :
Et bien, la formule que je t'ai donnée fonctionnait bien !
et même en matricielle.

Tu utilises des plages nommées dans ta formule. Es-tu
certaine que celles-ci sont de même dimension (même
nombre de lignes) ?

Tu parles de boucle... es-ce que tu utilises la formule
directement dans la feuille de calcul ou dans une
procédure VBA ?



"JulieH" discussion : #
Merci pour continuer à suivre le problème.

J'avais bien sûr testé cette formule et je viens de le refaire. Elle ne
donne aucun des résultats escomptés même quand ce n'est pas NA. Je
n'arrive pas non plus à la mettre en matricielle.

Alors que ma formule précédente fonctionne avec Ctrl + Maj + Entrée :
=SI($B7="";"";SI($A7=G$6;"";INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0))))

Je reviens donc à ma première question : Y-a-t-il quelques chose dans
ma boucle qui explique l'erreur 13 ?

Julie


michdenis a écrit :
Cette formule devrait fonctionner pour enlever les NA

=SI($B7="";"";SI($A7=G$6;"";SI(ESTNA(INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0)));"";INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0)))))




"JulieH" discussion :
Bonjour à tous et merci pour vos réponses,

Actuellement, la formule est la suivante :
=SI($B7="";"";SI($A7=G$6;"";INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0))))
avec validation par Ctrl + Maj + Entrée.
Si j'ajoute Si(ESTNA... ou ESTERREUR comme indiqué, je ne peux plus
mettre en matricielle.

En revanche, la macro fait une copie en valeur et il est possible
d'effacer cette valeur par macro. D'ailleurs, si je prends une seule
cellule, la macro suivante fonctionne.

If CVErr(xlErrNA) = [B7] Then
[B7] = ""
End if

Julie



JB a écrit :
Bonjour,

Si la formule matricielle est écrite dans un champ, on ne peut pas
vider des cellules de ce champ.
Il faudrait voir la formule.

JB
http://boisgontierjacques.free.fr/
On 23 jan, 13:17, JulieH
Bonjour à toutes et tous,

Dans une formule matricielle (INDEX, EQUIV ... validée avec Ctrl + Maj
+ Entrée), je n'ai pas réussi à intégrer "Si(ESTNA...." pour supprimer
les #N/A.

J'ai donc essayé de contourner le problème en créant une boucle pour
les éliminer tous avec la Macro suivante :

Application.ScreenUpdating = False
Dim cellules
For Each cellules In Range("G7:S14")
If CVErr(xlErrNA) = cellules Then
cellules = ""
End If
Next cellules

Cela ne fonctionne pas : Erreur d'execution 13 - Incompatibilité de
type sur la ligne If ..... then.
J'ai l'impression que c'est la boucle qui ne fonctionne pas (je ne suis
pas spécialiste de ces fameuses boucles même si j'ai testé plusieurs
arguments de Déclaration) car cela fonctionne si je travaille cellule
par cellule. Par exemple, la macro suivante est OK :

If CVErr(xlErrNA) = [B7] Then
[B7] = ""
End If

Quelqu'un peut-il m'aider ? Merci d'avance.

Julie









michdenis
Le #18471731
Moi, je pensais que tu voulais enlever les NA directement
dans tes formules de la feuille...

En VBA, as-tu essayé ceci :

Tu remplaces D1:D10 par l'adresse de la plage de cellules concernées.

Range("D1:D10").SpecialCells(xlCellTypeFormulas, xlErrors) = ""




"JulieH"
Bonjour,

Je n'ai pas pu répondre hier soir mais je te remercie de continuer à
t'intéresser. Je vais essayer de tout reprendre à zéro avec la formule
pour voir ce qui ne fonctionne pas chez moi. Mais je suis surprise étant
donné que tout fonctionne parfaitement lorsque je me contente de garder
les NA.

En ce qui concerne la dernière question :
- J'ai une feuille intermédiaire dans laquelle il y a le cadre et les
formules.
- La Macro copie les données "Femll" dans ce cadre et récupère les infos
(en valeurs) sur une autre feuille.
- A ce moment il y a les NA que je n'ai pas réussi à enlever avec la
formule (cf ma question).
- Pour régler le problème, j'ai pensé faire une boucle qui passe en
revue les cellules concernées et efface les NA.
- La formule trouvée "If CVErr(xlErrNA) = ... Then" fonctionne lorsque
je l'utilise cellule par cellule mais ne fonctionne pas lorsque je
l'utilise en boucle. D'où LA question de mon premier message.

Je ne sais pas si c'est plus clair, il faudrait que je passe un fichier
mais pour cela il faut que je simplifie tout et c'est un peu compliqué.

Julie



michdenis a écrit :
Et bien, la formule que je t'ai donnée fonctionnait bien !
et même en matricielle.

Tu utilises des plages nommées dans ta formule. Es-tu
certaine que celles-ci sont de même dimension (même
nombre de lignes) ?

Tu parles de boucle... es-ce que tu utilises la formule
directement dans la feuille de calcul ou dans une
procédure VBA ?



"JulieH" discussion : #
Merci pour continuer à suivre le problème.

J'avais bien sûr testé cette formule et je viens de le refaire. Elle ne
donne aucun des résultats escomptés même quand ce n'est pas NA. Je
n'arrive pas non plus à la mettre en matricielle.

Alors que ma formule précédente fonctionne avec Ctrl + Maj + Entrée :
=SI($B7="";"";SI($A7=G$6;"";INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0))))

Je reviens donc à ma première question : Y-a-t-il quelques chose dans
ma boucle qui explique l'erreur 13 ?

Julie


michdenis a écrit :
Cette formule devrait fonctionner pour enlever les NA

=SI($B7="";"";SI($A7=G$6;"";SI(ESTNA(INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0)));"";INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0)))))




"JulieH" discussion :
Bonjour à tous et merci pour vos réponses,

Actuellement, la formule est la suivante :
=SI($B7="";"";SI($A7=G$6;"";INDEX(Index_I;EQUIV($B7&G$6;Femll&Groupe;0))))
avec validation par Ctrl + Maj + Entrée.
Si j'ajoute Si(ESTNA... ou ESTERREUR comme indiqué, je ne peux plus
mettre en matricielle.

En revanche, la macro fait une copie en valeur et il est possible
d'effacer cette valeur par macro. D'ailleurs, si je prends une seule
cellule, la macro suivante fonctionne.

If CVErr(xlErrNA) = [B7] Then
[B7] = ""
End if

Julie



JB a écrit :
Bonjour,

Si la formule matricielle est écrite dans un champ, on ne peut pas
vider des cellules de ce champ.
Il faudrait voir la formule.

JB
http://boisgontierjacques.free.fr/
On 23 jan, 13:17, JulieH
Bonjour à toutes et tous,

Dans une formule matricielle (INDEX, EQUIV ... validée avec Ctrl + Maj
+ Entrée), je n'ai pas réussi à intégrer "Si(ESTNA...." pour supprimer
les #N/A.

J'ai donc essayé de contourner le problème en créant une boucle pour
les éliminer tous avec la Macro suivante :

Application.ScreenUpdating = False
Dim cellules
For Each cellules In Range("G7:S14")
If CVErr(xlErrNA) = cellules Then
cellules = ""
End If
Next cellules

Cela ne fonctionne pas : Erreur d'execution 13 - Incompatibilité de
type sur la ligne If ..... then.
J'ai l'impression que c'est la boucle qui ne fonctionne pas (je ne suis
pas spécialiste de ces fameuses boucles même si j'ai testé plusieurs
arguments de Déclaration) car cela fonctionne si je travaille cellule
par cellule. Par exemple, la macro suivante est OK :

If CVErr(xlErrNA) = [B7] Then
[B7] = ""
End If

Quelqu'un peut-il m'aider ? Merci d'avance.

Julie









Publicité
Poster une réponse
Anonyme