If Not ... Erreur??

klm1234

XLDnaute Nouveau
Bonjour tout le monde!

Problème d'ordre mystique! Je ne comprend pas du tout, j'ai fait des recherches et apparemment personne d'autre n'a eu ce genre de problème!

J'ai une macro avec une condition :
Code:
        'Check Spacing FBG 1 to 40
        For i = 0 To 39
    If Range(prAdd).Offset(0, 95 + i).Value = "" Or Range(prAdd).Offset(0, 54 + i).Value = "" Then
        If (Range(prAdd).Offset(0, 95 + i).Value = "" And Range(prAdd).Offset(0, 54 + i).Value = "") Then
            Range(prAdd).Offset(0, i + 1).Select
            MsgBox "An error occured while verifying center FBG spacing list.", vbExclamation, "Error - Unvalid form"
                ValidateForm = False
            ValidationProgress.Hide
            Exit Function
        End If
    End If
    ValidationProgress.ProgressBar1.Value = ValidationProgress.ProgressBar1.Value + 1
        Next

Si je met :
Code:
        'Check Spacing FBG 1 to 40
        For i = 0 To 39
    If Range(prAdd).Offset(0, 95 + i).Value = "" Or Range(prAdd).Offset(0, 54 + i).Value = "" Then
        If Not (Range(prAdd).Offset(0, 95 + i).Value = "" And Range(prAdd).Offset(0, 54 + i).Value = "") Then
            Range(prAdd).Offset(0, i + 1).Select
            MsgBox "An error occured while verifying center FBG spacing list.", vbExclamation, "Error - Unvalid form"
                ValidateForm = False
            ValidationProgress.Hide
            Exit Function
        End If
    End If
    ValidationProgress.ProgressBar1.Value = ValidationProgress.ProgressBar1.Value + 1
        Next

Sa ne marche plus!

L'erreur "380" me dit Invalid use of property... Pour un petit Not de rien du tout!

Des suggestions? N'est-ce pas sensé inversé la valeur? True=False et vice-versa? Vraiment... Je comprends pas!

Merci beaucoup!
 

klm1234

XLDnaute Nouveau
Re : If Not ... Erreur??

Edit : Je viens de mettre le Not après le And et sa fonctionne...

Est-ce que je vais avoir le même comportement que ce que je veux? C'est à dire si les deux case sont vide = False, si une des deux case est remplie = True??
 

klm1234

XLDnaute Nouveau
Re : If Not ... Erreur??

Bonjour Caillou,
Bonjour pierrejean,

Non les égalités ne sont pas en cause non plus puisque quand je ne met pas le "Not", tout fonctionne à merveille (enfin sa fait le contraire de ce que je désire, mais sa marche).

J'ai mit le "Not" après le "And", tout à l'air de fonctionner... Bizarre quand même.

Merci beaucoup.
 

klm1234

XLDnaute Nouveau
Re : If Not ... Erreur??

Difficile puisque le fichier utilise beaucoup de fonction personnalisé et le fichier serait trop gros, même réduit à sa plus simple expression.

Je me vois mal diffuser le fichier original en totalité, c'est un projet incluant plusieurs personnes et je ne crois pas qu'ils aimeraient que leur code soit distribué.

Il est posible qu'une des egalités ne soit pas evaluée dans le cas ou l'on n'a pas le Not

Cela m'étonnerait étant donné que le "Not" évite justement de rentrer dans ce cas d'erreur (si la ligne 4 renvoie "True", la macro s'arrête et tombe en code d'erreur). En ne le mettant pas, la ligne 4 renvoie systématiquement "True" (du moins dans ce cas-ci puisque je fait les tests sur une ligne de la base de données -variable prAdd- qui oblige le programme à agir ainsi). Les deux égalités sont donc évaluées
 

tototiti2008

XLDnaute Barbatruc
Re : If Not ... Erreur??

Bonjour klm, Bonjour Caillou, Bonjour PierreJean,

trés bizarre en effet, je n'arrive pas à reproduire non plus

mais sinon

Code:
If Not (Range(prAdd).Offset(0, 95 + i).Value = "" And Range(prAdd).Offset(0, 54 + i).Value = "") Then

est équivalent à

Code:
If Range(prAdd).Offset(0, 95 + i).Value <> "" Or Range(prAdd).Offset(0, 54 + i).Value <> "" Then
 

klm1234

XLDnaute Nouveau
Re : If Not ... Erreur??

Re tout le monde,
Bonjour tototiti2008,

Étrange n'est-ce pas!

Je vais opter pour la solution "Or", tant que sa fonctionne c'est ce qui compte ;)
Merci du truc et merci encore à tout le monde!


PS : J'ai un autre problème d'un tout autre ordre sur un autre topic, je vous invite à y jeter un coup d'œil car si ici je me sentais encore à l'aise en bidouillant, l'autre problème me dépasse complétement!
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 644
dernier inscrit
MOLOKO67