Reconnaître un cellule qui contient un #N/A

Fermé
regcou Messages postés 12 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 24 avril 2015 - 23 avril 2015 à 10:09
regcou Messages postés 12 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 24 avril 2015 - 24 avril 2015 à 09:19
Bonjour,
je cherche à faire une verif à traver une boucle while avec deux contidions :

While Cells(c, 38) <> "" Or Cells(c, 38) = "#N/A"

c = c + 1
Wend

En gros si la case selectionné est differente de "Vide" ou = "N/A" alors c=c+1.

Avec la condition <> "" pas de probléme par contre l'ajout de la deuxiéme solution fait buger le process.

Merci pour votre aide
Regcou


3 réponses

Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 151
23 avril 2015 à 10:17
Bonjour,

While Cells(c, 38) <> "" Or WorksheetFunction.IsNA(Cells(c, 38))
  c = c + 1
Wend


Cordialement
0
regcou Messages postés 12 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 24 avril 2015
23 avril 2015 à 10:35
Salut Thorak,

merci pour ton aide, parcontre j'ai toujours une erreur '13' imcopatibilté de type,
cela peut-il venir du type de ma variable 'c'?

merci encore
Regcou
0
regcou Messages postés 12 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 24 avril 2015 > regcou Messages postés 12 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 24 avril 2015
23 avril 2015 à 10:38
Au faite le N/A est une valeur que j'ai copier, dans la cellule la valeur est N/A ce n'est pas le resultat d'une formule!!

au cas ou
Regcou
0
michel_m Messages postés 16593 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 7 mars 2023 3 291 > regcou Messages postés 12 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 24 avril 2015
23 avril 2015 à 10:50
Bonjour
dans la cellule la valeur est N/A ce n'est pas le resultat d'une formule!!

hé bien, c'est une belle ... (au choix) de choisir des mots ambigus...

évite donc de faire joujou
0
regcou Messages postés 12 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 24 avril 2015 > michel_m Messages postés 16593 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 7 mars 2023
23 avril 2015 à 11:06
Bonjour Michel,

comment faire, j'ai 16 fichiers dont il faut que je synthétise une lignes dans chaques qui contient une fonction si(condition;calcule;na())) . J'ai obté pour un copier coller des valeurs donc du coup NA c'est du texte d'ou mon premier code ?!
Qu'est ce qui pêche?
0
michel_m Messages postés 16593 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 7 mars 2023 3 291 > regcou Messages postés 12 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 24 avril 2015
23 avril 2015 à 11:14
marque autre chose que #N/A qui est ambigu car sinalant un type d'erreur bien précis
il faut donc
soit revoir l"ânerie dans tes fichiers source
ou utiliser la fonction replace dans ton code
replace("N/A", tonchoix)
0
thev Messages postés 1776 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 9 mars 2023 670
23 avril 2015 à 12:57
La valeur #N/A en VBA est fournie par CVErr(xlErrNA). Il faut donc tester : Cells(c,38) = CVErr(xlErrNA)


--
0
regcou Messages postés 12 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 24 avril 2015
23 avril 2015 à 13:33
Salut Thev,

je viens de tester et j'obtiens la même erreur!
mon code :
While Cells(c, 38) <> "" Or Cells(c, 38) = CVErr(xlErrNA)
c = c + 1
Wend

Merci pour ton aide
regcou
0
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 151
Modifié par Thorak83 le 23/04/2015 à 14:08
ajouter
msgbox c

juste avant c=c+1
Exécutez et dites moi si la boite de message affiche quelque chose
0
regcou Messages postés 12 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 24 avril 2015 > Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017
23 avril 2015 à 14:20
Je l'ai placer juste avant While est j'obtiens "4",
je ne peux la placer aprés vue que sa bug sur la ligne while
Merci Thorak
0
michel_m Messages postés 16593 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 7 mars 2023 3 291
Modifié par michel_m le 23/04/2015 à 16:53
re,
dans tes formules destinées à un graphique, pour ne pas redescendre la courbe à zeéro il faiur employer NA()
par ex
=
SI(D8<30;D8;NA()) 
=qui montrera #NA ce qui n'est en aucun cas du texte

pour contourner l'os
esssaie cette maquette
Sub regcou()
c = 1
On Error GoTo fin:
While Cells(c, "A") <> ""
c = c + 1
Wend
MsgBox "ligne vide " & c
'...suite du code
Exit Sub
fin:
MsgBox "NA ligne " & c
End Sub
Michel
0
regcou Messages postés 12 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 24 avril 2015
24 avril 2015 à 09:19
Bonjour Michel,

effectivement, c'est bien pour sa que j'ai utilisé le NA() dans mes formules de tableau sources (les fameux 16 tableurs)qui ont chacun leur serie de graph.

Sur un autre forum une personne ma montré une démarche avec l'immediate windows (fonction debug que je ne connaissais pas du tout), l'erreur remonté est bien 2042, je regarderai ta proposition en début d'aprém et je te reviens.

En tout cas merci à vous trois pour le temps précieux que vous m'avez accordé.

Amicalement
Regcou
0