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

regcou Messages postés 12 Statut Membre -  
regcou Messages postés 12 Statut Membre -
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 1140 Statut Membre 156
 
Bonjour,

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


Cordialement
0
regcou Messages postés 12 Statut Membre
 
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 Statut Membre > regcou Messages postés 12 Statut Membre
 
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 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318 > regcou Messages postés 12 Statut Membre
 
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 Statut Membre > michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention  
 
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 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318 > regcou Messages postés 12 Statut Membre
 
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 2073 Date d'inscription   Statut Membre Dernière intervention   717
 
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 Statut Membre
 
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 1140 Statut Membre 156
 
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 Statut Membre > Thorak83 Messages postés 1140 Statut Membre
 
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 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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 Statut Membre
 
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