IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

l'interet de mettre une boucle Boolean


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 43
    Points : 36
    Points
    36
    Par défaut l'interet de mettre une boucle Boolean
    Bonjour , à tous puisque je suis debutant en VBA

    j'aimerais savoir à quoi sert ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
                       Dim i As Boolean
                         i = False
     
                         If ......
     
                          ......
                           ......
                           ......
     
                          i=true 
     
     
                          End if
    ce que je ne comprend pas , c'est que mon code ne depend pas de i , donc c'est quoi l'interet d'avoir cette boule boolean ??

    Merci pour vos réponse

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Un booléen en logique et en programmation informatique est un type de variable à deux états. Les variables de ce type sont ainsi soit à l'état vrai soit à l'état faux.

    il te faudrait un code plus complet pour comprendre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    i=false 'mon bouléen est à l'état FAUX
     
    if i=false then  'je fais un teste sur ma variable bouléenne, si Faux alors
         i=true ' je change l'état à vrai
    end if
    ce code dans l'etat ne sert a rien, mais le fait d'avoir des variables bouléennes peut te servir a executer ou ne pas executer un programme en fonction d'une condition particuliere que tu aura tester préalablement.

    le booléen ne se limite pas a cela mais c un exemple.

    j'espere t'avoir éclairci.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 43
    Points : 36
    Points
    36
    Par défaut
    le corp du code ne depend pas de i ? donc je ne vois pas ou est l'interet de mettre cette boucle boolean?

  4. #4
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour Adilleroy,ahmet le forum il y a des dizaines de facon d'ecrire une boucle.
    comme tu poses ta question boolean pas boolean!!! cela na aucun sens ???? dit nous plutot ce que tu veus faire on pourras peut être 't'aider.
    SALUTATIONS

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 43
    Points : 36
    Points
    36
    Par défaut
    voila le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    Sub Formeautomatique7_QuandClic()
    'bouton Enregistrer dans "Nouvelle tolerie"
     
    Dim i As Boolean
    i = False
     
    While i = False
        If Left(ActiveSheet.Name, 12) = "Données tol " Then
            NomNouvelleTolerie = Mid(ActiveSheet.Name, 13)
     
            a = MsgBox("Le nom que vous avez attribué à cette nouvelle tôlerie dans la base de données PERMA est """ & NomNouvelleTolerie & """." & Chr(13) & "Voulez-vous modifier ce nom ?", vbQuestion + vbYesNo)
     
            If a = vbYes Then
                NomNouvelleTolerie = InputBox("Entrez le nom nom sous lequel vous souhaitez que cette nouvelle tôlerie apparaisse dans le programme PERMA" & Chr(13) & Chr(13) & "19 caractères maximum" & Chr(13) & "Les caractères suivant ne sont pas autorisés : /\:*?][", "Microsoft Excel")
                If NomNouvelleTolerie = "" Then
                    Exit Sub
                End If
     
                'test si le nom de tolerie n'existe pas deja ET si le nom rentré par l'utilisateur n'est pas trop grand
                For Each feuille In Worksheets
                    While "Données tol " & NomNouvelleTolerie = feuille.Name Or Len(NomNouvelleTolerie) > 19
                        NomNouvelleTolerie = ""
                        While NomNouvelleTolerie = ""
                            NomNouvelleTolerie = InputBox("Ce nom de tôlerie est déjà utilisé dans la base de données PERMA ou comporte plus de 19 caractères, veuillez s'il vous plaît entrer un autre nom ?" & Chr(13) & Chr(13) & "19 caractères maximum" & Chr(13) & "Les caractères suivant ne sont pas autorisés : /\:*?][", "Erreur nom machine")
                        Wend
                    Wend
                Next feuille
     
            End If
     
            Else    'si nom de l'onglet ne coommence pas par "Données tol "
                NomNouvelleTolerie = ""
                While NomNouvelleTolerie = ""
                    NomNouvelleTolerie = InputBox("Une erreur est survenue lors de l'attribution d'un nom à cette nouvelle tôlerie. Veuillez entrer de nouveau le nom sous lequel vous souhaitez que cette nouvelle tôlerie apparaisse dans le programme PERMA" & Chr(13) & Chr(13) & "19 caractères maximum" & Chr(13) & "Les caractères suivant ne sont pas autorisés : /\:*?][", "Erreur d'attribution de nom")
                Wend
     
                'test si le nom de tolerie n'existe pas deja
                For Each feuille In Worksheets
                    While "Données tol " & NomNouvelleTolerie = feuille.Name Or Len(NomNouvelleTolerie) > 19
                        NomNouvelleTolerie = ""
                        While NomNouvelleTolerie = ""
                            NomNouvelleTolerie = InputBox("Ce nom de tôlerie est déjà utilisé dans la base de données PERMA ou comporte plus de 19 caractères, veuillez s'il vous plaît entrer un autre nom ?" & Chr(13) & Chr(13) & "19 caractères maximum" & Chr(13) & "Les caractères suivant ne sont pas autorisés : /\:*?][", "Erreur nom machine")
                        Wend
                    Wend
                Next feuille
     
        End If
     
        Application.ScreenUpdating = False  'Mise à jour d'écran désactivée
        Application.Interactive = False     'Bloque les interactions souris-clavier
     
        'enregistrement avec uniquement la feuille Accueil de visible pour etre bon lors de la reouverture de PERMA
        ActiveSheet.Name = "Données tol " & NomNouvelleTolerie
     
        Worksheets("Accueil").Visible = xlSheetVisible
        Worksheets("Données tol " & NomNouvelleTolerie).Visible = xlSheetHidden
     
        Worksheets("Performances").Unprotect
        Worksheets("Performances").Range("A1") = "Enregistrer"
     
        ThisWorkbook.Save
     
        Worksheets("Performances").Protect
     
        Worksheets("Données tol " & NomNouvelleTolerie).Visible = xlSheetVisible
        Worksheets("Accueil").Visible = xlSheetHidden
     
        'stockage du nom de la tolerie en "B50" pour test de retour a l'accueil
        Worksheets("Données tol " & NomNouvelleTolerie).Unprotect
        Worksheets("Données tol " & NomNouvelleTolerie).Range("B50").Value = NomNouvelleTolerie
     
        'marker : stockage de "Enregistré" en "B51" pour test de retour à l'accueil
        Worksheets("Données tol " & NomNouvelleTolerie).Range("B51").Value = "Enregistré"
        Worksheets("Données tol " & NomNouvelleTolerie).Protect
     
        i = True
    Wend
     
    ThisWorkbook.Saved = True
     
    Application.ScreenUpdating = True  'Mise à jour d'écran activée
    Application.Interactive = True     'Débloque les interactions souris-clavier
     
    End Sub

  6. #6
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Ici la structure du code c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Machin
    Dim i as boolean
    i=False
     
    While i = False
        ....
        ....
        i = True
    Wend
    ...'(presque rien)
    End Sub
    i étant une variable locale, on peut s'avancer à dire que cela ne sert à rien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Machin
     
    ....
    ....
     
    ...'(presque rien)
    End Sub
    Devrait faire la même chose.

    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

Discussions similaires

  1. Mettre une boucle pour texte défilant
    Par Greatz dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/07/2008, 15h40
  2. mettre une boucle dans une recherchev
    Par robbillard dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/06/2007, 16h15
  3. Mettre une tempo dans une boucle
    Par lilyla dans le forum MATLAB
    Réponses: 2
    Dernier message: 12/02/2007, 17h04
  4. Mettre une boucle en arrière plan!
    Par dongnold dans le forum Linux
    Réponses: 2
    Dernier message: 19/06/2006, 09h38
  5. Interet de mettre des fichiers dans une base de donnée
    Par Oberown dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 04/07/2005, 11h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo