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 :

Bouton bascule, double action ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Par défaut Bouton bascule, double action ?
    Bonjour,

    J'ai écrit ce petit programme :

    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
    Private Sub ToggleButton34_Click()
     
    Dim v As String
     
     
    v = InputBox( _
        Prompt:="What is the name of the task")
     
    For i = 80 To 147
     
        If Cells(11, i) = v Then
     
        Range(Columns("K:K"), Columns(i - 1)).Hidden = Not Range(Columns("K:K"), Columns(i - 1)).Hidden
        'Selection.EntireColumns.Hidden
                            Else
        End If
     
    Next
     
    End Sub
    Cependant j'ai un petit souci, lorsque j'appuie sur mon bouton bascule :

    -Le code demande bien le nom de la tâche
    -Les colonnes sont bien cachées

    Cependant quand je veux re-cliquer sur le bouton bascule pour que les colonnes réapparaissent, le code se relance du début et me redemande le nom de la tâche.

    Une idée pour que lors de la deuxième pression sur le bouton bascule, les colonnes réapparraissents ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Plutôt que d'utiliser Hidden = Not Hidden, tu pourrais vérifier l'état du bouton
    ToggleButton1.Value = True si enfoncé, autrement False

  3. #3
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Par défaut
    Merci pour ta réponse,

    Je ne comprend pas, si j'enlève la fonction Hidden les colonnes ne seront pas masquées ?

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 158
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je ne comprend pas, si j'enlève la fonction Hidden les colonnes ne seront pas masquées ?
    Ce que Parmi te suggérait de faire c'est de remplacer le Not Hidden qui bascule l'état booléen de sa valeur par la valeur du ToggleButton qui lui même est un booléen et donc bascule également de True à False
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    L'imbrication, dans le code du bouton bascule, de :
    1) le choix du critère
    et
    2) le "basculement"
    Rend très évidemment le tout plutôt hasardeux ...
    Conception à revoir.
    Ou alors : rester sur le dernier critère (ne pas reproposer un choix si non vide). Mais alors : à quoi pourrait bien être utile de faire mumuse avec cacher-Montrer-cacher-montrer, etc ... ?
    Ou encore : mémoriser les pages résultats (selon le critère retenu) et montrer/cacher/montrer la plage correspondante (usine à gaz si nombreux critères différents).

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Lorsque l'on utilise un bouton bascule, c'est pour déterminer l'action à réaliser en fonction de son état au moment du clic.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub TogAction_Click()
      If TogAction.Value Then ' Le bouton est enfoncé
        ...
        ...
      Else ' Le bouton est relaché
        ...
        ...
      End If
    End Sub
    Je ne saurais trop te conseiller de sortir la gestion des cas du code même du bouton, et de seulement aiguiller vers la bonne procédure en fonction de l'état du bouton. Ton code sera plus propre, plus facilement maintenable et testable.

    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
    Private Sub TogAction_Click()
      If TogAction.Value Then ' Le bouton est enfoncé
        ManageAction
      Else ' Bouton relâché
        ViewAll
      End If
    End Sub
     
    Sub ManageAction()
      Dim Action As String
     
      Action = InputBox()
      ....
      ....
     
    End Sub
     
    Sub ViewAll()
      ....
      ....
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Pour répondre simplement à la question posée, j'utiliserais la propriété Tag du ToggleButton.
    Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub ToggleButton1_Click()
    Dim v As String
     
        If ToggleButton1.Tag = "" Then
            v = InputBox(Prompt:="What is the name of the task")
            ToggleButton1.Tag = v
        Else
            v = ToggleButton1.Tag
            ToggleButton1.Tag = ""
        End If
        MsgBox v
    End Sub

  8. #8
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Par défaut Merci Pierre Fauconnier !
    Je te remercie Pierre grâce à toi j'ai résolu mon problème et mieux encore j'ai parfaitement compris !

    Le code pour les personnes que ça intérésse :

    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
    Private Sub ToggleButton34_Click()
      If ToggleButton34.Value Then ' Le bouton est enfoncé
        ManageAction
      Else ' Bouton relâché
        ViewAll
      End If
    End Sub
     
    Sub ManageAction()
     
      Dim Action As String
     
      Action = InputBox( _
        Prompt:="What is the name of the task")
     
        For i = 80 To 147
     
        If Cells(11, i) = Action Then
     
        Range(Columns("K:K"), Columns(i - 1)).Hidden = ToggleButton34.Value = True
                                 Else
        End If
     
    Next
     
     
    End Sub
     
    Sub ViewAll()
      Columns("K:EQ").EntireColumn.Hidden = False
    End Sub

  9. #9
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 158
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    La ligne 20 de ta procédure peux se résumer à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Columns("K:K"), Columns(i - 1)).Hidden = ToggleButton34.Value
    Il est inutile de rajouter = True
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Perso et tant qu'à faire, je préfèrerais avoir le code suivant, de manière à rendre ManageAction indépendante du togllebutton



    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
    Private Sub ToggleButton34_Click()
      If ToggleButton34.Value Then ' Le bouton est enfoncé
        ManageAction toggleButton34.Value
      Else ' Bouton relâché
        ViewAll
      End If
    End Sub
     
    Sub ManageAction(Value As Boolean)
     
      Dim Action As String
     
      Action = InputBox( _
        Prompt:="What is the name of the task")
     
        For i = 80 To 147
     
        If Cells(11, i) = Action Then
     
        Range(Columns("K:K"), Columns(i - 1)).Hidden = Value
                                 Else
        End If
     
    Next
     
     
    End Sub
     
    Sub ViewAll()
      Columns("K:EQ").EntireColumn.Hidden = False
    End Sub
    On pourrait peut-être même alors n'avoir pas besoin du bloc IF dans l'évènement, si ManageAction consiste à rendre visibles ou masquées les colonnes en bouclant. Mais l'idée reste de supprimer le couplage entre les différentes fonctions en passant les arguments nécessaires à chacune d'entre elle. Idéalement, ManageAction devrait être dans un module standard, d'ailleurs. Ca permettrait de la rendre tout à fait indépendance d'un interface quelconque
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  11. #11
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Par défaut
    Ok, mais fondamentalement, quelle est la différence ?

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    La différence réside dans le fait que tu peux ainsi rendre ManageAction indépendante du statut du togglebutton. Ca te permet d'abord de la tester dans devoir appeler l'affichage du togglebutton (sur un userform, sur une feuille Excel?). Ca te permet aussi, surtout si tu la mets dans un module standard, que d'autres clients (= procédures et fonctions) puissent l'utiliser. Tu détaches ainsi ton process de ton interface. Ton code y gagne en clarté, en lisibilité, en maintenance, en réutilisabilité, ...

    Tant que ton code n'évolue pas, tu ne perçois pas forcément l'intérêt de la chose (sauf pour les tests et le débogage, ce qui est déjà énorme en termes de gain de temps), mais si demain il t'est demandé de gérer les actions autrement qu'en fonction d'un bouton basucle enfoncé ou non, tu es près à réagir et tes modifications sont mineures.

    Si tu apprens dès maintenant à code de cette façon, tu programmeras plus vite et mieux, et tu pourras te constituer facilement des blocs de codes (procédures et fonctions) réutilisables à peu de frais.

    C'est tout l'intérêt de coder de la sorte, et perso, j'exige des gens qui développent avec moi de procéder ainsi
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  13. #13
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Par défaut
    Ok je vois, je vais procéder ainsi alors ^^.

    J'ai une autre question, je souhaiterais ajouter une condition. Lorsque que l'on clique sur le Togglebutton, je voudrais que si l'on appuie sur "annuler" (pour fermer la pop-up), le Togglebutton revienne dans sa potion initiale (non cliquée). Peux tu me dire comment procéder ?

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Il est sur quoi, ton togglebutton? Un userform ou la feuille Excel?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  15. #15
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Par défaut
    La feuille excel, mais si tu pouvais me donner les deux solutions ? (userform et feuille excel, on ne sait jamais ^^).

  16. #16
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    En fait, ça n'a pas d'importance. Je n'avais pas compris que tu parlais du bouton cancel de l'inputbox. Vu que l'inputbox n'apparaît que si le bouton est TRUE (enfoncé), il suffit de remettre sa valeur à FALSE en testant la chaine reçue. Cela permet aussi de tester que l'utilisateur a bien saisi une valeur avant de cliquer sur ok.

    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
    Private Sub ToggleButton1_Click()
      Dim Choice As String
     
      If ToggleButton1.Value Then
        Choice = InputBox("Votre choix?")
        If Choice <> vbNullString Then
          ManageAction Choice, ToggleButton1.Value
        Else
            ToggleButton1.Value = False
        End If
      Else
     
      End If
    End Sub
     
    Sub ManageAction(Action As String, Value As Boolean)
     
    End Sub
    Au passage, renomme tes contrôles avec des noms évocateurs. Tu t'y retrouveras mieux lorsque tu devras plonger dans ton code d'ici quelques mois...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  17. #17
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Par défaut
    J'avoue que cette fois je ne comprend pas. A quel endroit de mon code dois-je insérer ce code ? Parce que maintenant, le code lance une inputbox "votre choix" (dont je ne comprend pas l'utilité) qui quand je la quitte (peu importe avec cancel ou ok) restart le ToggleButton comme je le voulais, et donc ensuite lance mon inputbox "What is the name of the task". Je n'ai pas du faire les choses correctement.

    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
    Private Sub ToggleButton34_Click()
     
    Dim Choice As String
     
      If ToggleButton34.Value Then ' Le bouton est enfoncé
     
      Choice = InputBox("Votre choix")
      If Choice <> vbNullString Then
      Else
      ToggleButton34.Value = False
      End If
     
        ManageAction
      Else ' Bouton relâché
        ViewAll
      End If
    End Sub
     
    Sub ManageAction()
     
      Dim Action As String
     
      Action = InputBox( _
        Prompt:="What is the name of the task")
     
        For i = 80 To 147
     
        If Cells(11, i) = Action Then
     
        Range(Columns("K:K"), Columns(i - 1)).Hidden = ToggleButton34.Value = True
        Range(Columns(i + 1), Columns("EQ:EQ")).Hidden = ToggleButton34.Value = True
                                 Else
        End If
     
    Next
     
     
    End Sub

  18. #18
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ToggleButton34_Click()
    Static v As String
    if v="" then  = InputBox(Prompt:="What is the name of the task")
    For i = 80 To 147
        If Cells(11, i) = v Then
            Range(Columns("K:K"), Columns(i - 1)).Hidden = Not Range(Columns("K:K"), Columns(i - 1)).Hidden
        End If
    Next
     If ToggleButton34 = False Then v = ""
    End Sub

  19. #19
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Tu n'as pas écrit ton code sur base de ce que je t'ai donné. Tu as mal imbriqué tes IF. Relis mon code, il est fonctionnel pour ce que tu souhaites réaliser...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  20. #20
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 61
    Par défaut
    En effet j'ai été trop vite :

    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
    Private Sub ToggleButton34_Click()
     
    Dim Choice As String
     
      If ToggleButton34.Value Then ' Le bouton est enfoncé
        ManageAction
      Else ' Bouton relâché
        ViewAll
      End If
    End Sub
     
    Sub ManageAction()
     
      Dim Action As String
     
      Action = InputBox( _
        Prompt:="What is the name of the task")
      If Action <> vbNullString Then
      Else
      ToggleButton34.Value = False
      End If
     
        For i = 80 To 147
     
        If Cells(11, i) = Action Then
     
        Range(Columns("K:K"), Columns(i - 1)).Hidden = ToggleButton34.Value = True
        Range(Columns(i + 1), Columns("EQ:EQ")).Hidden = ToggleButton34.Value = True
                                 Else
        End If
     
    Next
     
     
    End Sub
     
    Sub ViewAll()
      Columns("K:EQ").EntireColumn.Hidden = False
    End Sub
    Cela fonctionne ^^.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Double action sur un seul bouton (userform)VBA)
    Par willybass dans le forum VBA Access
    Réponses: 5
    Dernier message: 14/05/2008, 15h10
  2. Double action sur un bouton de formulaire
    Par thor8one dans le forum ASP
    Réponses: 4
    Dernier message: 15/11/2007, 10h07
  3. "double action" sur des boutons
    Par jakouz dans le forum Struts 1
    Réponses: 2
    Dernier message: 06/05/2007, 23h35
  4. Pb pour double action avec un bouton
    Par Dawax dans le forum Flash
    Réponses: 11
    Dernier message: 02/07/2006, 17h54
  5. Réponses: 5
    Dernier message: 29/10/2004, 16h20

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