Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Supprimer #N/A

12 réponses
Avatar
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

10 réponses

1 2
Avatar
François
Bonjour,

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

François

"JulieH" a écrit dans le message de news:
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


Avatar
michdenis
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" a écrit dans le message de groupe de
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
Avatar
JB
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 wrote:
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


Avatar
JulieH
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 wrote:
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





Avatar
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" a écrit dans le message de 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 wrote:
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





Avatar
ptck
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" a écrit dans le message de news:

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" a écrit dans le message de
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 wrote:
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








Avatar
JulieH
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" a écrit dans le message de 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 wrote:
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






Avatar
michdenis
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" a écrit dans le message de groupe de
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" a écrit dans le message de 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 wrote:
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






Avatar
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" a écrit dans le message de groupe de
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" a écrit dans le message de 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 wrote:
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









Avatar
michdenis
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" a écrit dans le message de groupe de discussion :

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" a écrit dans le message de groupe de
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" a écrit dans le message de 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 wrote:
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









1 2