utilisation de NOT en VBA

utilisation de NOT en VBA - VB/VBA/VBS - Programmation

Marsh Posté le 03-04-2008 à 22:51:20    

bonjour à tous! d'abord je vx déjà vous remercier de votre aide car cela me rend vraiment service!   ;)  
 
alors j'aurais une question qui peut paraître bête pour beaucoup d'entre vous mais voilà je la pose quand meme car je n'arrive pas a resoudre mon problème:
 
j'ai une fonction sous access( en VBA) qui me retourne un booleen
 
donc à la fin de ma fonction il y a ceux-ci:
 
 
Public Function Horaires_CoupleLieuPersoModule_EstCoherent(...) As Boolean
...
 If Not estIncoherent Then
        DateDebutPersoModule = DLookup("dateDebut", "PersoModules", "Numero=" & numPersoModules)
        DateFinPersoModule = DLookup("dateFin", "PersoModules", "Numero=" & numPersoModules)
           
        If Not IsNull(DateFinPersoModule) Then
            estIncoherent = dateJour < DateDebutPersoModule Or dateJour > DateFinPersoModule
        Else
            estIncoherent = dateJour < DateDebutPersoModule
        End If
  End If
 
 
 
Horaires_CoupleLieuPersoModule_EstCoherent = Not estIncoherent
 
End Function
 
 
voilà, ce que j'aimerais savoir est : si ma variable "estIncoherent" contient 1, la fonction va me retourner le contraire donc 0???  
donc le "NOT" va inverser le booleen? ou est ce que le fait d'avoir NOT avant la variable va faire un test?? genre: if( not incoherent) car dans ce cas il retournerait 0 si la variable estIncoherent contiendrait 0???
en fin chuis très embrouillé...  :sweat:  
 
merci d'avance!!  :hello:  

Reply

Marsh Posté le 03-04-2008 à 22:51:20   

Reply

Marsh Posté le 04-04-2008 à 07:35:00    

Not ne fait pas de test.
Not inverse une donnée.
If fait un test.
 
Les if (quelquechose_sans_signe_égal_ni_sup_ni_inf) sont une source de confusion.
Pour un langage interpreté, les lignes courtes sont exécutées plus rapidement, mais avec nos machines actuelles, le gain de temps est telllement minime, qu'il n'est pas sensible.
Pour des raisons de maintenabilité, il est recommandé de ne pas utiliser les conditions abrégées.

Reply

Marsh Posté le 04-04-2008 à 14:16:11    

Pour info, un booléen en VB/A ne contient ni 0, ni 1, mais True ou False.
Quand cette valeur est convertie en nombre, alors on obtient -1 pour True (et pas 1), et 0 pour False.

Reply

Marsh Posté le 04-04-2008 à 17:20:20    

ok! merci! alors le NOT va inverser la donnée! et j'eviterai les tests if sans un opérateur de comparaison à l'interieur!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed