Comprehension de l utilisation d une var.booléenne
ode:
Dim continue As Boolean
continue = True
If continue = True Then MsgBox "Boolean variables are cool"onjour , j aimerai avoir vos lumières sur la petit bout de code suivant
quand on initialise la variable "continu" a true , le fait d ecrire if continu = true me pose probleme , pourquoi poser une condition sur une variable qui est deja fixee pour sont etat , celle ci peut elle changer d etat toute seule ?c est ce que je comprend...
merci pour vos explications
désolé ; envoyant ce message depuis mon smartphone une partie de la presentation de ma question n est pas apparue j espere que toutefois vous comprendrez le sens de ma question merci
Bonjour,
Par défaut une variable Booléenne est initialisée à False si tu change sa valeur à True, tu n'as pas besoin d'effectuer un test juste après avec If Then car elle a forcément la valeur True. Le test est nécessaire si entre le moment où tu la mets à True et le moment où tu la teste sa valeur peut changer. Dans ton exemple, le test n'a aucun intérêt puisque tu l'as mis à True juste avant !
- Messages
- 1'123
- Excel
- 2013 FR
- Inscrit
- 18/09/2015
- Emploi
- Développeur Bureautique Indépendant (Excel)
Bonjour Theze, (rocket4)
De ce que je comprends de la question... voici le pourquoi du comment !
Comme le dit si bien rocket4 une variable Booléenne est (par défaut) considérée comme Fausse si elle n'est pas initialisée.
Donc effectivement le code
Dim continue As Boolean
continue = True
If continue Then blabla
sera toujours exécuté !
cependant je pense qu'en réalité tu veux parler d'un code qui doit ressembler à quelque chose comme ça :
Dim conitnue As Boolean
' un bout de code ici
' puis à un endroit il y a :
conitnue = True
' ici un autre bout de code
' où continue pourrait tout à fait passer à FAUX selon les différents tests, ou résultat de fonctions
' puis finalement le test qui te pose problème :
If continue Then
'le code
EndIf
Ce qui revient à dire "au début" on considère "qu'il faut faire le test... mais finalement on verra bien ce qui passe !
Je pense que cette initialisation à VRAI (True) a été faite pour forcer le test ! je veux dire par là pour la "logique" de lecture...
Si continuer Alors
Est plus facile à lire que
Si Non continuer Alors
Ce qui veut dire que l'on considère qu'il est logique de continuer le traitement dans ce cas là !
Il s'agit peut-être aussi et tout simplement d'un test de débugage mis en place par le créateur de la macro-cmde concernée, pour vérifier le parcours de son code ! ou encore d'un exemple de code qui ne dit pas tout ce qu'il fait... j'en pense par exemple à un truc typique de ce genre de test :
Dim continue As Boolean
' au lieu de
continuer = True
' il y a dans la réalité
continuer = (MsgBox("Voulez-vous Effacer les données ?",vbYesNo,"Attention les données seront perdues !") = vbYes)
' mais pour pouvoir vérifier que le code fonctionne comme souhaité le MsgBox est enlevé
' puis finalement le test lui même
If continuer Then
' effacer toutes les données puisque l'utilisateur a dit oui !
EndIf
Bref, pas mal d'hypothèses et autant de réponses possibles... Cependant avec l'exemple où tu as trouvé ce code, il nous serait plus simple de té répondre !
Merci inifniment pour vos réponses je vais voir ca de prè