Fonction IsError , CVErr , IsNA

Bonjour,

Je débute sur VBA et je bloque sur le problème suivant. Je souhaiterais que les champs ci dessous soient renseignés par des commentaires et la date du jour, dés que le message #N/A apparaît au niveau de Range("P3:P300")

Range("S3:S300").Value = "En attente"

Range("T3:T300").Value = Date

Range("W3:W300").Value = "A valider"

Dans un premier temps j'ai voulu remplacer le message d'erreur #N/A par 0 ou bien par NA en utilisant les deux procédures suivantes, sans succés :

'If IsError(Range("P3:P300")) Then Range("P3:P300").Value = 0

ou bien

'If WorksheetFunction.IsNA(Range("P3:P300")) = True Then Range("P3:P300") = "NA"

Dans un deuxième temps, j'ai voulu que les champs mentionnés précédemment soient remplis avec les commentaires en utilisant ces deux autres formules :

'If IsError(Range("P3:P300").Value) Then

ou bien

'If Range("P3:P300") = CVErr(xlErrNA) Then

Range("S3:S300").Value = "En attente"

Range("T3:T300").Value = Date

Range("W3:W300").Value = "A valider"

End If

Merci d'avance pour votre aide.

Bonjour,

as-tu essayé de faire une boucle ?

for i=3 to 300
If WorksheetFunction.IsNA(Range("P" & i)) = True Then Range("P" & i) = "NA"
next

Merci pour la réponse. Je vais essayer de ce pas.

Merci pour votre réponse.

Parfait, la procédure fonctionne du tonnerre et remplace effectivement le message d'erreur par NA.

Par contre, Si je souhaite remplacer "NA" par les variables "En attente" ; "Date" ; "A valider" dans leur champ respectif, la procédure ci-dessous ne marche pas.

If Range("P3:P300").Value = "NA" Then

Range("S3:S300").Value = "En attente"

Range("T3:T300").Value = Date

Range("W3:W300").Value = "A valider"

End If

Peut-être auriez vous une solution ?.

idem, il faut faire une boucle, on ne peut pas affecter globalement de valeur à une plage sous condition !

for i= 3 to 300

If Range("P" & i).Value = "NA" Then

Range("S" &i).Value = "En attente"
Range("T" & i).Value = Date
Range("W" & i).Value = "A valider"

End If

next

Du coup j'avais anticipé ta réponse et j'avais effectivement fait ce que tu m'as envoyé, cependant, les champs restent vides pour i dans les colonnes S ; T, W.

For i = 3 To 300

If WorksheetFunction.IsNA(Range("P" & i)) = True Then Range("P" & i) = "NA"

Next

If Range("P" & i).Value = "NA" Then

Range("S" & i).Value = "En attente"

Range("T" & i).Value = Date

Range("W" & i).Value = "A valider"

End If

Next

Du coup, ça marche. J'avais effectivement oublié de recopier la boucle. Merci pour cette aide précieuse qui m'a permis de finir cette macro et qui va m'ôter une tâche fastidieuse. :

Parfait !

Je viens de le faire. Merci encore.

Rechercher des sujets similaires à "fonction iserror cverr isna"