[vba][excel]multi-condition
Résolu/Fermé
ttb
Messages postés
2
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
1 mai 2007
-
21 avril 2007 à 11:49
ttb Messages postés 2 Date d'inscription samedi 21 avril 2007 Statut Membre Dernière intervention 1 mai 2007 - 1 mai 2007 à 22:39
ttb Messages postés 2 Date d'inscription samedi 21 avril 2007 Statut Membre Dernière intervention 1 mai 2007 - 1 mai 2007 à 22:39
A voir également:
- [vba][excel]multi-condition
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
1 réponse
Salut ttb,
Il est normal que ça bug quand tu as un #N/A dans une cellule car cette expression n'est pas un texte mais un erreur, et vba la considère aussi comme une erreur.
Donc tu dois remplacer ton code par celui-ci :
If IsError (Range("M4").Value) = False Then
If IsError (Range("N4").Value) = False Then
If IsError (Range("O4").Value) = False Then
Range("P4").Value = Range("M4").Value + Range("N4").Value + Range("O4").Value
Else: MsgBox "la cellule O4 n'est pas rempli"
End If
Else: MsgBox "la cellule N4 n'est pas rempli"
End If
Else: MsgBox "la cellule M4 n'est pas rempli"
End If
Attention, ce code va intervenir sur toutes les erreurs et pas seulement sur l'erreur #N/A. Donc, je te joint également le référencement des erreurs d'excel pour vba (tableau reprenant la constante, le numéro d'erreur et la valeur erreur cellule).
xlErrDiv0 2007 #DIV/0!
XlErrNA 2042 #N/A
xlErrName 2029 #NAME ?
XlErrNull 2000 #NULL!
XlErrNum 2036 #NUM!
XlErrRef 2023 #REF!
XlErrValue 2015 #VALUE!
a+
seb
Il est normal que ça bug quand tu as un #N/A dans une cellule car cette expression n'est pas un texte mais un erreur, et vba la considère aussi comme une erreur.
Donc tu dois remplacer ton code par celui-ci :
If IsError (Range("M4").Value) = False Then
If IsError (Range("N4").Value) = False Then
If IsError (Range("O4").Value) = False Then
Range("P4").Value = Range("M4").Value + Range("N4").Value + Range("O4").Value
Else: MsgBox "la cellule O4 n'est pas rempli"
End If
Else: MsgBox "la cellule N4 n'est pas rempli"
End If
Else: MsgBox "la cellule M4 n'est pas rempli"
End If
Attention, ce code va intervenir sur toutes les erreurs et pas seulement sur l'erreur #N/A. Donc, je te joint également le référencement des erreurs d'excel pour vba (tableau reprenant la constante, le numéro d'erreur et la valeur erreur cellule).
xlErrDiv0 2007 #DIV/0!
XlErrNA 2042 #N/A
xlErrName 2029 #NAME ?
XlErrNull 2000 #NULL!
XlErrNum 2036 #NUM!
XlErrRef 2023 #REF!
XlErrValue 2015 #VALUE!
a+
seb
1 mai 2007 à 22:39