"Raymond Fournier" <duracelle(Enlever-ceci)@sympatico.ca> a écrit dans le message de news:
Comment fait -on pour que 1 devient 0, ou 0 devient 1. J' ai essayé avec not, mais 1 devient -1.
Merci de vos réponce
-- Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
Le boolean "True" dans VB a la valeur -1. Donc l'opérateur NOT rend -1 pour 0 et 0 pour -1 (ou toute autre valeur non 0). Sur des non-booléans, NOT inverse les bits.
Pour faire ce que tu veux, essayer:
Public Function NotMath(Var As Boolean) As Integer NotMath = -Not Var End Function
Clive
"Raymond Fournier" <duracelle(Enlever-ceci)@sympatico.ca> a écrit dans le
message de news:mn.353b7d52b9bac207.24806@sympatico.ca...
Comment fait -on pour que 1 devient 0, ou 0 devient 1. J' ai essayé
avec not, mais 1 devient -1.
Merci de vos réponce
--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Le boolean "True" dans VB a la valeur -1.
Donc l'opérateur NOT rend -1 pour 0 et 0 pour -1 (ou toute autre valeur non
0).
Sur des non-booléans, NOT inverse les bits.
Pour faire ce que tu veux, essayer:
Public Function NotMath(Var As Boolean) As Integer
NotMath = -Not Var
End Function
"Raymond Fournier" <duracelle(Enlever-ceci)@sympatico.ca> a écrit dans le message de news:
Comment fait -on pour que 1 devient 0, ou 0 devient 1. J' ai essayé avec not, mais 1 devient -1.
Merci de vos réponce
-- Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
Le boolean "True" dans VB a la valeur -1. Donc l'opérateur NOT rend -1 pour 0 et 0 pour -1 (ou toute autre valeur non 0). Sur des non-booléans, NOT inverse les bits.
Pour faire ce que tu veux, essayer:
Public Function NotMath(Var As Boolean) As Integer NotMath = -Not Var End Function
Clive
LE TROLL
Salut,
Comme dit, je crois que ça inverse la valeur, or le contraire de -1 est 1, et pour les boolean de True c'est False...
Soit: dim x as boolean x = Not x ' Not inverse un valeur booléenne
Pour inverser une valeur classique tu peux par les maths faire: dim y y = 1 y = y * - 1 (1 devient -1 et -1 devient 1)
In fine, dans ton cas je mettrais des if, soit:
if x = 1 then x = 0 goto fin x = 1 fin: -------------------
"Raymond Fournier" <duracelle(Enlever-ceci)@sympatico.ca> a écrit dans le message de news:
Comment fait -on pour que 1 devient 0, ou 0 devient 1. J' ai essayé avec not, mais 1 devient -1.
Merci de vos réponce
-- Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
Salut,
Comme dit, je crois que ça inverse la valeur, or le contraire de -1 est
1, et pour les boolean de True c'est False...
Soit:
dim x as boolean
x = Not x ' Not inverse un valeur booléenne
Pour inverser une valeur classique tu peux par les maths faire:
dim y
y = 1
y = y * - 1
(1 devient -1 et -1 devient 1)
In fine, dans ton cas je mettrais des if, soit:
if x = 1 then x = 0 goto fin
x = 1
fin:
-------------------
"Raymond Fournier" <duracelle(Enlever-ceci)@sympatico.ca> a écrit dans le
message de news: mn.353b7d52b9bac207.24806@sympatico.ca...
Comment fait -on pour que 1 devient 0, ou 0 devient 1. J' ai essayé avec
not, mais 1 devient -1.
Merci de vos réponce
--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
If I = 1 Then I = 0 ElseIf I = 0 Then I = 1 End If
Ou
Select Case I Case 0: I = 1 Case 1: I = 0 End Select
Kiriasse www.kiriasse.fr
== > "LE TROLL" <le a écrit dans le message de news:
if x = 1 then x = 0 goto fin x = 1 fin: -------------------
== >> "Raymond Fournier" <duracelle(Enlever-ceci)@sympatico.ca> a écrit dans le
message de news:
Comment fait -on pour que 1 devient 0, ou 0 devient 1. J' ai essayé avec not, mais 1 devient -1.
Merci de vos réponses
Raymond Fournier
-- Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
Aski
Bonjour,
Et pourquoi pas Abs(i -1) Il faudrait voir quel est le moyen le plus rapide en répétant l'opération un nombre suffisant de fois.
Aski
"Raymond Fournier" <duracelle(Enlever-ceci)@sympatico.ca> a écrit dans le message de news:
Il se trouve que Kiriasse a formulé : > Curieux emploi de GoTo... > > J'aurais écrit plus simplement : > Dim I As Integer > > If I = 1 Then > I = 0 > ElseIf I = 0 Then > I = 1 > End If > > Ou > > Select Case I > Case 0: I = 1 > Case 1: I = 0 > End Select > > Kiriasse > www.kiriasse.fr > > == > > "LE TROLL" <le a écrit dans le message de news: > >> if x = 1 then x = 0 goto fin >> x = 1 >> fin: >> ------------------- >> > == > >> "Raymond Fournier" <duracelle(Enlever-ceci)@sympatico.ca> a écrit dans
le
>> message de news: >>> Comment fait -on pour que 1 devient 0, ou 0 devient 1. J' ai essayé
avec
>>> not, mais 1 devient -1.
Merci de vos réponses
Raymond Fournier
-- Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
Bonjour,
Et pourquoi pas Abs(i -1)
Il faudrait voir quel est le moyen le plus rapide en répétant l'opération un
nombre suffisant de fois.
Aski
"Raymond Fournier" <duracelle(Enlever-ceci)@sympatico.ca> a écrit dans le
message de news:mn.3a387d522d25ddfc.24806@sympatico.ca...
Il se trouve que Kiriasse a formulé :
> Curieux emploi de GoTo...
>
> J'aurais écrit plus simplement :
> Dim I As Integer
>
> If I = 1 Then
> I = 0
> ElseIf I = 0 Then
> I = 1
> End If
>
> Ou
>
> Select Case I
> Case 0: I = 1
> Case 1: I = 0
> End Select
>
> Kiriasse
> www.kiriasse.fr
>
> == > > "LE TROLL" <le troll@paris.fr> a écrit dans le message de news:
> ebQL2MODFHA.3108@TK2MSFTNGP10.phx.gbl...
>> if x = 1 then x = 0 goto fin
>> x = 1
>> fin:
>> -------------------
>>
> == > >> "Raymond Fournier" <duracelle(Enlever-ceci)@sympatico.ca> a écrit dans
le
>> message de news: mn.353b7d52b9bac207.24806@sympatico.ca...
>>> Comment fait -on pour que 1 devient 0, ou 0 devient 1. J' ai essayé
avec
>>> not, mais 1 devient -1.
Merci de vos réponses
Raymond Fournier
--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Et pourquoi pas Abs(i -1) Il faudrait voir quel est le moyen le plus rapide en répétant l'opération un nombre suffisant de fois.
Aski
"Raymond Fournier" <duracelle(Enlever-ceci)@sympatico.ca> a écrit dans le message de news:
Il se trouve que Kiriasse a formulé : > Curieux emploi de GoTo... > > J'aurais écrit plus simplement : > Dim I As Integer > > If I = 1 Then > I = 0 > ElseIf I = 0 Then > I = 1 > End If > > Ou > > Select Case I > Case 0: I = 1 > Case 1: I = 0 > End Select > > Kiriasse > www.kiriasse.fr > > == > > "LE TROLL" <le a écrit dans le message de news: > >> if x = 1 then x = 0 goto fin >> x = 1 >> fin: >> ------------------- >> > == > >> "Raymond Fournier" <duracelle(Enlever-ceci)@sympatico.ca> a écrit dans
le
>> message de news: >>> Comment fait -on pour que 1 devient 0, ou 0 devient 1. J' ai essayé
avec
>>> not, mais 1 devient -1.
Merci de vos réponses
Raymond Fournier
-- Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
ng
> If I = 1 Then I = 0 ElseIf I = 0 Then I = 1 End If
If I Then I = 0 Else I = 1
Mais il vaut mieux faire ce genre d'opération via les boolean
Dim b As Boolean
b = True b = Not B
Pour la convertion en Int/Long en utilise CInt() ou CLng() Et on fait attention car True = -1 et False = 0 (et même d'ailleurs False = 0 et True tout le reste).
Donc si on veut des 1 et des 0 : Dim i As Integer i = CInt(b) * -1 '//ou i = Abs(CInt(b))
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Kiriasse wrote:
Curieux emploi de GoTo...
J'aurais écrit plus simplement : Dim I As Integer
If I = 1 Then I = 0 ElseIf I = 0 Then I = 1 End If
Ou
Select Case I Case 0: I = 1 Case 1: I = 0 End Select
Kiriasse www.kiriasse.fr
== > "LE TROLL" <le a écrit dans le message de news:
if x = 1 then x = 0 goto fin x = 1 fin: -------------------
== >> "Raymond Fournier" <duracelle(Enlever-ceci)@sympatico.ca> a écrit
dans le message de news:
Comment fait -on pour que 1 devient 0, ou 0 devient 1. J' ai essayé avec not, mais 1 devient -1.
> If I = 1 Then
I = 0
ElseIf I = 0 Then
I = 1
End If
If I Then I = 0 Else I = 1
Mais il vaut mieux faire ce genre d'opération via les boolean
Dim b As Boolean
b = True
b = Not B
Pour la convertion en Int/Long en utilise CInt() ou CLng()
Et on fait attention car True = -1 et False = 0 (et même d'ailleurs False =
0 et True tout le reste).
Donc si on veut des 1 et des 0 :
Dim i As Integer
i = CInt(b) * -1
'//ou
i = Abs(CInt(b))
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Kiriasse wrote:
Curieux emploi de GoTo...
J'aurais écrit plus simplement :
Dim I As Integer
If I = 1 Then
I = 0
ElseIf I = 0 Then
I = 1
End If
Ou
Select Case I
Case 0: I = 1
Case 1: I = 0
End Select
Kiriasse
www.kiriasse.fr
== > "LE TROLL" <le troll@paris.fr> a écrit dans le message de news:
ebQL2MODFHA.3108@TK2MSFTNGP10.phx.gbl...
if x = 1 then x = 0 goto fin
x = 1
fin:
-------------------
== >> "Raymond Fournier" <duracelle(Enlever-ceci)@sympatico.ca> a écrit
dans le message de news: mn.353b7d52b9bac207.24806@sympatico.ca...
Comment fait -on pour que 1 devient 0, ou 0 devient 1. J' ai essayé
avec not, mais 1 devient -1.
> If I = 1 Then I = 0 ElseIf I = 0 Then I = 1 End If
If I Then I = 0 Else I = 1
Mais il vaut mieux faire ce genre d'opération via les boolean
Dim b As Boolean
b = True b = Not B
Pour la convertion en Int/Long en utilise CInt() ou CLng() Et on fait attention car True = -1 et False = 0 (et même d'ailleurs False = 0 et True tout le reste).
Donc si on veut des 1 et des 0 : Dim i As Integer i = CInt(b) * -1 '//ou i = Abs(CInt(b))
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Kiriasse wrote:
Curieux emploi de GoTo...
J'aurais écrit plus simplement : Dim I As Integer
If I = 1 Then I = 0 ElseIf I = 0 Then I = 1 End If
Ou
Select Case I Case 0: I = 1 Case 1: I = 0 End Select
Kiriasse www.kiriasse.fr
== > "LE TROLL" <le a écrit dans le message de news:
if x = 1 then x = 0 goto fin x = 1 fin: -------------------
== >> "Raymond Fournier" <duracelle(Enlever-ceci)@sympatico.ca> a écrit
dans le message de news:
Comment fait -on pour que 1 devient 0, ou 0 devient 1. J' ai essayé avec not, mais 1 devient -1.
Clive Lumb
"ng" a écrit dans le message de news:
> If I = 1 Then > I = 0 > ElseIf I = 0 Then > I = 1 > End If
If I Then I = 0 Else I = 1
Mais il vaut mieux faire ce genre d'opération via les boolean
Dim b As Boolean
b = True b = Not B
Pour la convertion en Int/Long en utilise CInt() ou CLng() Et on fait attention car True = -1 et False = 0 (et même d'ailleurs False
> 0 et True tout le reste).
Donc si on veut des 1 et des 0 : Dim i As Integer i = CInt(b) * -1 '//ou i = Abs(CInt(b))
Je préfère toujours le mien... qui peut se réduire à i = -not (0<>b)
Pas besoin de conversion... et mon avis plus rapide (Zoury !!!!)
Clive
"ng" <ng@ngsoft-fr.com> a écrit dans le message de
news:eY1lWiTDFHA.2156@TK2MSFTNGP10.phx.gbl...
> If I = 1 Then
> I = 0
> ElseIf I = 0 Then
> I = 1
> End If
If I Then I = 0 Else I = 1
Mais il vaut mieux faire ce genre d'opération via les boolean
Dim b As Boolean
b = True
b = Not B
Pour la convertion en Int/Long en utilise CInt() ou CLng()
Et on fait attention car True = -1 et False = 0 (et même d'ailleurs False
> 0 et True tout le reste).
Donc si on veut des 1 et des 0 :
Dim i As Integer
i = CInt(b) * -1
'//ou
i = Abs(CInt(b))
Je préfère toujours le mien... qui peut se réduire à
i = -not (0<>b)
Pas besoin de conversion... et mon avis plus rapide (Zoury !!!!)
> If I = 1 Then > I = 0 > ElseIf I = 0 Then > I = 1 > End If
If I Then I = 0 Else I = 1
Mais il vaut mieux faire ce genre d'opération via les boolean
Dim b As Boolean
b = True b = Not B
Pour la convertion en Int/Long en utilise CInt() ou CLng() Et on fait attention car True = -1 et False = 0 (et même d'ailleurs False
> 0 et True tout le reste).
Donc si on veut des 1 et des 0 : Dim i As Integer i = CInt(b) * -1 '//ou i = Abs(CInt(b))
Je préfère toujours le mien... qui peut se réduire à i = -not (0<>b)
Pas besoin de conversion... et mon avis plus rapide (Zoury !!!!)
Clive
ng
0<>b équivaut à b car b=0 équivaut à Not b on a donc un booléan (et il a été montré (par des benchmarks) que ce genre de test : If Búlse/B=true/B=0/b<>0 pour des booléans est 70% plus lent que simplement If b/Not b)
-not(b<>0) équivaut donc à -Not b on note qu'il y a une conversion (implicite) de booléan en integer donc autant la faire explicitement (c'est aussi rapide) : -CInt(b) ce que le compilateur interprete exactement de la même facon que CInt(b) * -1 (cf mon message).
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Clive Lumb wrote:
"ng" a écrit dans le message de news:
If I = 1 Then I = 0 ElseIf I = 0 Then I = 1 End If
If I Then I = 0 Else I = 1
Mais il vaut mieux faire ce genre d'opération via les boolean
Dim b As Boolean
b = True b = Not B
Pour la convertion en Int/Long en utilise CInt() ou CLng() Et on fait attention car True = -1 et False = 0 (et même d'ailleurs False = 0 et True tout le reste).
Donc si on veut des 1 et des 0 : Dim i As Integer i = CInt(b) * -1 '//ou i = Abs(CInt(b))
Je préfère toujours le mien... qui peut se réduire à i = -not (0<>b)
Pas besoin de conversion... et mon avis plus rapide (Zoury !!!!)
Clive
0<>b équivaut à b car b=0 équivaut à Not b
on a donc un booléan (et il a été montré (par des benchmarks) que ce genre
de test : If Búlse/B=true/B=0/b<>0 pour des booléans est 70% plus lent que
simplement If b/Not b)
-not(b<>0) équivaut donc à -Not b
on note qu'il y a une conversion (implicite) de booléan en integer
donc autant la faire explicitement (c'est aussi rapide) : -CInt(b) ce que le
compilateur interprete exactement de la même facon que CInt(b) * -1 (cf mon
message).
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Clive Lumb wrote:
"ng" <ng@ngsoft-fr.com> a écrit dans le message de
news:eY1lWiTDFHA.2156@TK2MSFTNGP10.phx.gbl...
If I = 1 Then
I = 0
ElseIf I = 0 Then
I = 1
End If
If I Then I = 0 Else I = 1
Mais il vaut mieux faire ce genre d'opération via les boolean
Dim b As Boolean
b = True
b = Not B
Pour la convertion en Int/Long en utilise CInt() ou CLng()
Et on fait attention car True = -1 et False = 0 (et même d'ailleurs
False = 0 et True tout le reste).
Donc si on veut des 1 et des 0 :
Dim i As Integer
i = CInt(b) * -1
'//ou
i = Abs(CInt(b))
Je préfère toujours le mien... qui peut se réduire à
i = -not (0<>b)
Pas besoin de conversion... et mon avis plus rapide (Zoury !!!!)
0<>b équivaut à b car b=0 équivaut à Not b on a donc un booléan (et il a été montré (par des benchmarks) que ce genre de test : If Búlse/B=true/B=0/b<>0 pour des booléans est 70% plus lent que simplement If b/Not b)
-not(b<>0) équivaut donc à -Not b on note qu'il y a une conversion (implicite) de booléan en integer donc autant la faire explicitement (c'est aussi rapide) : -CInt(b) ce que le compilateur interprete exactement de la même facon que CInt(b) * -1 (cf mon message).
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Clive Lumb wrote:
"ng" a écrit dans le message de news:
If I = 1 Then I = 0 ElseIf I = 0 Then I = 1 End If
If I Then I = 0 Else I = 1
Mais il vaut mieux faire ce genre d'opération via les boolean
Dim b As Boolean
b = True b = Not B
Pour la convertion en Int/Long en utilise CInt() ou CLng() Et on fait attention car True = -1 et False = 0 (et même d'ailleurs False = 0 et True tout le reste).
Donc si on veut des 1 et des 0 : Dim i As Integer i = CInt(b) * -1 '//ou i = Abs(CInt(b))
Je préfère toujours le mien... qui peut se réduire à i = -not (0<>b)
Pas besoin de conversion... et mon avis plus rapide (Zoury !!!!)
Et pourquoi ne pas traduire directement la formule mathématiques Nouvelle valeur = 1-ancienne valeur qui transforme bien 1 en 0 et 0 en 1 Function Phi( x as Integer) as integer Phi=1-x End Function
"ng" a écrit dans le message de news:
0<>b équivaut à b car b=0 équivaut à Not b on a donc un booléan (et il a été montré (par des benchmarks) que ce genre de test : If Búlse/B=true/B=0/b<>0 pour des booléans est 70% plus lent que simplement If b/Not b)
-not(b<>0) équivaut donc à -Not b on note qu'il y a une conversion (implicite) de booléan en integer donc autant la faire explicitement (c'est aussi rapide) : -CInt(b) ce que le compilateur interprete exactement de la même facon que CInt(b) * -1 (cf mon message).
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Clive Lumb wrote:
"ng" a écrit dans le message de news:
If I = 1 Then I = 0 ElseIf I = 0 Then I = 1 End If
If I Then I = 0 Else I = 1
Mais il vaut mieux faire ce genre d'opération via les boolean
Dim b As Boolean
b = True b = Not B
Pour la convertion en Int/Long en utilise CInt() ou CLng() Et on fait attention car True = -1 et False = 0 (et même d'ailleurs False = 0 et True tout le reste).
Donc si on veut des 1 et des 0 : Dim i As Integer i = CInt(b) * -1 '//ou i = Abs(CInt(b))
Je préfère toujours le mien... qui peut se réduire à i = -not (0<>b)
Pas besoin de conversion... et mon avis plus rapide (Zoury !!!!)
Clive
Et pourquoi ne pas traduire directement la formule mathématiques
Nouvelle valeur = 1-ancienne valeur
qui transforme bien 1 en 0 et 0 en 1
Function Phi( x as Integer) as integer
Phi=1-x
End Function
"ng" <ng@ngsoft-fr.com> a écrit dans le message de news:
uRJORIVDFHA.2756@TK2MSFTNGP15.phx.gbl...
0<>b équivaut à b car b=0 équivaut à Not b
on a donc un booléan (et il a été montré (par des benchmarks) que ce genre
de test : If Búlse/B=true/B=0/b<>0 pour des booléans est 70% plus lent
que simplement If b/Not b)
-not(b<>0) équivaut donc à -Not b
on note qu'il y a une conversion (implicite) de booléan en integer
donc autant la faire explicitement (c'est aussi rapide) : -CInt(b) ce que
le compilateur interprete exactement de la même facon que CInt(b) * -1 (cf
mon message).
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Clive Lumb wrote:
"ng" <ng@ngsoft-fr.com> a écrit dans le message de
news:eY1lWiTDFHA.2156@TK2MSFTNGP10.phx.gbl...
If I = 1 Then
I = 0
ElseIf I = 0 Then
I = 1
End If
If I Then I = 0 Else I = 1
Mais il vaut mieux faire ce genre d'opération via les boolean
Dim b As Boolean
b = True
b = Not B
Pour la convertion en Int/Long en utilise CInt() ou CLng()
Et on fait attention car True = -1 et False = 0 (et même d'ailleurs
False = 0 et True tout le reste).
Donc si on veut des 1 et des 0 :
Dim i As Integer
i = CInt(b) * -1
'//ou
i = Abs(CInt(b))
Je préfère toujours le mien... qui peut se réduire à
i = -not (0<>b)
Pas besoin de conversion... et mon avis plus rapide (Zoury !!!!)
Et pourquoi ne pas traduire directement la formule mathématiques Nouvelle valeur = 1-ancienne valeur qui transforme bien 1 en 0 et 0 en 1 Function Phi( x as Integer) as integer Phi=1-x End Function
"ng" a écrit dans le message de news:
0<>b équivaut à b car b=0 équivaut à Not b on a donc un booléan (et il a été montré (par des benchmarks) que ce genre de test : If Búlse/B=true/B=0/b<>0 pour des booléans est 70% plus lent que simplement If b/Not b)
-not(b<>0) équivaut donc à -Not b on note qu'il y a une conversion (implicite) de booléan en integer donc autant la faire explicitement (c'est aussi rapide) : -CInt(b) ce que le compilateur interprete exactement de la même facon que CInt(b) * -1 (cf mon message).
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Clive Lumb wrote:
"ng" a écrit dans le message de news:
If I = 1 Then I = 0 ElseIf I = 0 Then I = 1 End If
If I Then I = 0 Else I = 1
Mais il vaut mieux faire ce genre d'opération via les boolean
Dim b As Boolean
b = True b = Not B
Pour la convertion en Int/Long en utilise CInt() ou CLng() Et on fait attention car True = -1 et False = 0 (et même d'ailleurs False = 0 et True tout le reste).
Donc si on veut des 1 et des 0 : Dim i As Integer i = CInt(b) * -1 '//ou i = Abs(CInt(b))
Je préfère toujours le mien... qui peut se réduire à i = -not (0<>b)
Pas besoin de conversion... et mon avis plus rapide (Zoury !!!!)