detecter #N/A par macro

golzag

XLDnaute Nouveau
Bonjour, je désire détecter les #N/A par macro.

J'ai trouver ça mais j'arrive pas à l'adapter à mon problème :
Code:
Sheets("Données").Cells(Z, j).Select

       If WorksheetFunction.IsNA(RangeActiveSheet.Cells(Z, j).Value) Then
                            
                   If Temp = "VM" Then
                                    
                    Else
                        Sheets("Essai").Cells(E, 1).Value = Temp
                        E = E + 1
                    End If
      End if

Je fournis sous la forme Cells(ligne,colonne) mais il veux une range et ça m'embête de faire la conversion.

Ou si quelqu'un à une autre idée.

Sinon une autre question pourquoi on peut pas écrire ca :

Sheets("Tintin").Range("A1").select ???

Merci d'avance

bonne aprem
 

golzag

XLDnaute Nouveau
Re : detecter #N/A par macro

Au final, j'ai trouver si ca peut aider certain j'ai virer RangeActiveSheet.


Code:
Sheets("Données").Select
Cells(Z, j).Select

       If WorksheetFunction.IsNA(RangeActiveSheet.Cells(Z, j).Value) Then
                            
                   If Temp = "VM" Then
                                    
                    Else
                        Sheets("Essai").Cells(E, 1).Value = Temp
                        E = E + 1
                    End If
      End if


J'ai toujours du mal à voir l'enchainement :

Sheets("Données").Select
Cells(Z, j).Select

ou

Sheets("Données").Cells(Z, j).Select
 

JNP

XLDnaute Barbatruc
Re : detecter #N/A par macro

Bonjour :),
Une solution pour simplifier mais qui ne te dira pas si c'est une #N/A ou une #REF, par exemple
Code:
If IsError(Selection) Then
ou ce qui serait mieux
Code:
If IsError(ActiveSheet.Cells(Z, j)) Then
Bon courage :cool:
 

Gorfael

XLDnaute Barbatruc
Re : detecter #N/A par macro

Salut golzag et le forum
Sheets("Données").Cells(Z, j).Select
ce qui est une bétise : tu ne peux sélectionner que dans la feuille active, donc pourquoi remettre le nom de la feuille
Sheets("Données").Select
Cells(Z, j).Select
tu sélectionnes/actives d'abord la feuille, puis la cellule dans la feuille active.
Code:
If WorksheetFunction.IsNA(Sheets("Données").Cells(Z, j)) and Temp <> "VM" Then 
     Sheets("Essai").Cells(E, "A") = Temp
      E = E + 1
End If
Je suppose, bien évidemment, que les feuilles existent et les valeurs de E, Z et j sont cohérentes.
Pourquoi sélectionner la feuille/cellule ? il n'y a pas besoin de compliquer, ça ne fait que ralentir la macro
A+
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : detecter #N/A par macro

Bonsoir à tous,

petit complément, pour connaître le type d'erreur, utilisation de la fonction CVErr :

Code:
If IsError(Range("A1")) Then MsgBox CStr(CVErr(Range("A1")))

liste des valeurs d'erreur de cellule possible :
Constante Numéro de l'erreur Valeur d'erreur de cellule
xlErrDiv0 2007 #DIV/0!
XlErrNA 2042 #N/A
xlErrName 2029 #NAME ?
XlErrNull 2000 #NULL!
XlErrNum 2036 #NUM!
XlErrRef 2023 #REF!
XlErrValue 2015 #VALUE!

si cela peut aider...

bonne soirée
@+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 145
Messages
2 085 759
Membres
102 965
dernier inscrit
Mael44