Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb d'écriture

5 réponses
Avatar
Crel
Bonjour à toutes et tous

j'essaye d'écrire cela en VBA, mais sans succés

Sub gestion_erreur18()

If Range("C14").Value = "Aucune anomalie constatée !"
And Range("U55").Value <> "" Or Range("U55").Value <> 0
and Range("W5").Value = "" Then

MsgBox "toto !": Exit Sub
Else: transfert_données
End If
End Sub

Merci beaucoup
Patrick.

5 réponses

Avatar
Pierre CFI
bonjour
tu devrais mettre des ( ) pour bien regrouper tes condtions
méfie toi de l'interpétation de la valeur d'une cellule vide

--
Pierre CFI
Microsoft MVP Access

Pour mieux utiliser microsoft.public.fr.access...
http://users.skynet.be/mpfa/charte.htm

"Crel" a écrit dans le message de news:

Bonjour à toutes et tous

j'essaye d'écrire cela en VBA, mais sans succés

Sub gestion_erreur18()

If Range("C14").Value = "Aucune anomalie constatée !"
And Range("U55").Value <> "" Or Range("U55").Value <> 0
and Range("W5").Value = "" Then

MsgBox "toto !": Exit Sub
Else: transfert_données
End If
End Sub

Merci beaucoup
Patrick.





Avatar
Pierre CFI
.../...
If Range("C14").Value = "Aucune anomalie constatée !" And
(Range("U55").Value <> "" Or Range("U55").Value <> 0) and
Range("W5").Value = "" Then
je pense que c'est plutot çà que tu veux

--
Pierre CFI
Microsoft MVP Access

Pour mieux utiliser microsoft.public.fr.access...
http://users.skynet.be/mpfa/charte.htm

"Crel" a écrit dans le message de news:

Bonjour à toutes et tous

j'essaye d'écrire cela en VBA, mais sans succés

Sub gestion_erreur18()

If Range("C14").Value = "Aucune anomalie constatée !"
And Range("U55").Value <> "" Or Range("U55").Value <> 0
and Range("W5").Value = "" Then

MsgBox "toto !": Exit Sub
Else: transfert_données
End If
End Sub

Merci beaucoup
Patrick.





Avatar
Michel Gaboly
Bonjour

J'ai fait un test en éliminant le Else de ta procédure :

Sub gestion_erreur18()
If Range("C14").Value = "Aucune anomalie constatée !" And _
Range("U55").Value <> "" Or Range("U55").Value <> 0 And _
Range("W5").Value = "" Then
MsgBox "toto !"
End If
End Sub

J'ai entré "Aucune anomalie constatée ! en C14 par copier Coller
à partir du code et 5 en U55.

Le message "Toto" s'affiche bien.


Es-tu sur que ce n'est pas betement un problème d'espace :
pas d'espace entre "constatéeé et le point d'interrogation, ou
espace insécable ?

Fais une procédure qui teste uniquement C14 pour voir le résultat.

PS - Value est la propriété par défaut de l'objet Range. Tu peux donc
écrire

If Range("C14") = "Aucune anomalie constatée !"

Cela donne un code + compact et + facile à lire, quand les instructions
sont longues : par exemple cela évite que certaines lignes présentent un
retour chariot quand tu imprimes le code.


PS2 - Je te conseille également de remplacer

Range("U55").Value <> ""

par

Not(IsEmpty(Range("U55")


PS3 - Comme le conseille Pierre, des parenthèses peuvent améliorer la lisibilité :

If Range("C14") = "Aucune anomalie constatée !" And (Range("U55") <> "" _
Or Range("U55") <> 0) And Range("W5") = "" Then



Bonjour à toutes et tous

j'essaye d'écrire cela en VBA, mais sans succés

Sub gestion_erreur18()

If Range("C14").Value = "Aucune anomalie constatée !"
And Range("U55").Value <> "" Or Range("U55").Value <> 0
and Range("W5").Value = "" Then

MsgBox "toto !": Exit Sub
Else: transfert_données
End If
End Sub

Merci beaucoup
Patrick.


--
Cordialement,

Michel Gaboly
http://www.gaboly.com

Avatar
Patrick
Merci beaucoup Michel en effet, en tenant compte de vos
observations à Pierre & toi, cela fonctionne à merveille.
Merci beaucoup encore une fois, c'est très sympa.
La République à travers le Trésor Public vous en remercie
grandement.
Patrick.


Not(IsEmpty(Range("U55")

-----Message d'origine-----
Bonjour

J'ai fait un test en éliminant le Else de ta procédure :

Sub gestion_erreur18()
If Range("C14").Value = "Aucune anomalie constatée !"
And _

Range("U55").Value <> "" Or Range("U55").Value <> 0
And _

Range("W5").Value = "" Then
MsgBox "toto !"
End If
End Sub

J'ai entré "Aucune anomalie constatée ! en C14 par
copier Coller

à partir du code et 5 en U55.

Le message "Toto" s'affiche bien.


Es-tu sur que ce n'est pas betement un problème
d'espace :

pas d'espace entre "constatéeé et le point
d'interrogation, ou

espace insécable ?

Fais une procédure qui teste uniquement C14 pour voir le
résultat.


PS - Value est la propriété par défaut de l'objet Range.
Tu peux donc

écrire

If Range("C14") = "Aucune anomalie constatée !"

Cela donne un code + compact et + facile à lire, quand
les instructions

sont longues : par exemple cela évite que certaines
lignes présentent un

retour chariot quand tu imprimes le code.


PS2 - Je te conseille également de remplacer

Range("U55").Value <> ""

par

Not(IsEmpty(Range("U55")


PS3 - Comme le conseille Pierre, des parenthèses peuvent
améliorer la lisibilité :


If Range("C14") = "Aucune anomalie constatée !" And
(Range("U55") <> "" _

Or Range("U55") <> 0) And Range("W5") = "" Then



Bonjour à toutes et tous

j'essaye d'écrire cela en VBA, mais sans succés

Sub gestion_erreur18()

If Range("C14").Value = "Aucune anomalie
constatée !"


And Range("U55").Value <> "" Or Range("U55").Value
<> 0


and Range("W5").Value = "" Then

MsgBox "toto !": Exit Sub
Else: transfert_données
End If
End Sub

Merci beaucoup
Patrick.


--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.




Avatar
Michel Gaboly
Re,

De rien ;-))


Tu devrais modifier les paramètres de tin lecteur de news pour qu'il accepte + de caractères par ligne.

Tu gagnerais ainsi en lisibilité, en particulier pour les lignes de code VBA.



Merci beaucoup Michel en effet, en tenant compte de vos
observations à Pierre & toi, cela fonctionne à merveille.
Merci beaucoup encore une fois, c'est très sympa.
La République à travers le Trésor Public vous en remercie
grandement.
Patrick.

Not(IsEmpty(Range("U55")

-----Message d'origine-----
Bonjour

J'ai fait un test en éliminant le Else de ta procédure :

Sub gestion_erreur18()
If Range("C14").Value = "Aucune anomalie constatée !"
And _

Range("U55").Value <> "" Or Range("U55").Value <> 0
And _

Range("W5").Value = "" Then
MsgBox "toto !"
End If
End Sub

J'ai entré "Aucune anomalie constatée ! en C14 par
copier Coller

à partir du code et 5 en U55.

Le message "Toto" s'affiche bien.


Es-tu sur que ce n'est pas betement un problème
d'espace :

pas d'espace entre "constatéeé et le point
d'interrogation, ou

espace insécable ?

Fais une procédure qui teste uniquement C14 pour voir le
résultat.


PS - Value est la propriété par défaut de l'objet Range.
Tu peux donc

écrire

If Range("C14") = "Aucune anomalie constatée !"

Cela donne un code + compact et + facile à lire, quand
les instructions

sont longues : par exemple cela évite que certaines
lignes présentent un

retour chariot quand tu imprimes le code.


PS2 - Je te conseille également de remplacer

Range("U55").Value <> ""

par

Not(IsEmpty(Range("U55")


PS3 - Comme le conseille Pierre, des parenthèses peuvent
améliorer la lisibilité :


If Range("C14") = "Aucune anomalie constatée !" And
(Range("U55") <> "" _

Or Range("U55") <> 0) And Range("W5") = "" Then



Bonjour à toutes et tous

j'essaye d'écrire cela en VBA, mais sans succés

Sub gestion_erreur18()

If Range("C14").Value = "Aucune anomalie
constatée !"


And Range("U55").Value <> "" Or Range("U55").Value
<> 0


and Range("W5").Value = "" Then

MsgBox "toto !": Exit Sub
Else: transfert_données
End If
End Sub

Merci beaucoup
Patrick.


--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com