utilisation de NOT en VBA - VB/VBA/VBS - Programmation
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.
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.
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!
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é...
merci d'avance!!