Macro pour retrouver colonnes groupées

Résolu/Fermé
rodger85830 Messages postés 20 Date d'inscription mercredi 23 novembre 2016 Statut Membre Dernière intervention 23 janvier 2017 - 23 nov. 2016 à 16:48
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 28 nov. 2016 à 10:30
Bonjour
suis nouveau et je connais pas grand chose en vba ou macro
je pique a gauche et a droite , mais le projet que je me suis lancée me prend trop de temps
alors je demande de l'aide
- j'ai trouvé une macro qui me permet de n'ouvrir que certaine colonnes a l'aide d'un bouton ToggleButton1
mais quand je rappuis sur le bouton j’obtiens bien ma vue général mais les colonnes qui etaient
groupées se retrouvent degroupées
voici mon code
---------------------------------------
Private Sub ToggleButton1_Click()

With ToggleButton1
Sheets("Analyses").Select
Worksheets("Analyses").Columns("c:db").Hidden = .Value
Worksheets("Analyses").Columns("dl:hw").Hidden = .Value
.Caption = IIf(.Value = -1, "Cliquer pour Vue Normal", "Cliquer pour Vue Diabéte")
End With
End Sub
--------------------------------------------
en bref je voudrais que le retour a la vue normal se fasse avec les colonnes groupées
merci d'avance
et si quelqu’un est intéressé par mon projet je veux bien un coup de main
en sachant que c'est un fichier récupérer sur le net qui s'appel "Analyse de sang"
mais j'ai du changer pas mal de chose car les macros pour donner les graphs mettaient entre 15 et 20 secondes
donc j'ai tout fais en hypertextes
rodger
A voir également:

6 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
23 nov. 2016 à 18:25
Bonjour,

Essaies :
Private Sub ToggleButton1_Click()
  With ToggleButton1
    Sheets("Analyses").Select
    Worksheets("Analyses").Columns("c:db").Hidden = .Value
    Worksheets("Analyses").Columns("dl:hw").Hidden = .Value
    Worksheets("Analyses").Outline.ShowLevels columnlevels:=1
    .Caption = IIf(.Value = -1, "Cliquer pour Vue Normal", "Cliquer pour Vue Diabéte")
  End With
End Sub
0
rodger85830 Messages postés 20 Date d'inscription mercredi 23 novembre 2016 Statut Membre Dernière intervention 23 janvier 2017
24 nov. 2016 à 16:14
Bonjour ça marche bien,merci pour cette réponse rapide
mais j'aimerais copier le togglebutton1(Feuille Accueil) pour le mètre a coté des colonnes diabétes (Feuille Analyses)j'ai essayé mais le 1 boutton (Accueil) ne suis pas la vue normal quand je clique sur le 2éme boutton (Analyses)
pour une vue normal de la feuille Analyses
si vous ne comprenez rien c'est normal parce-que même moi quand je me relis cela fait brouillon
en fait je veux dupliquer le togglebutton 1 et que quand je clique sur un seul les deux reagissent
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
25 nov. 2016 à 11:18
Bonjour,

Nommer les deux boutons : ToggleButton1

Dans le module de la feuille Accueil et dans celui de la feuille Analyses :
Option Explicit
Private Sub ToggleButton1_Click()
    If NoEvents Then Exit Sub Else NoEvents = True
    With Worksheets("Analyses")
        .Select
        .Columns("c:db").Hidden = Me.ToggleButton1.Value
        .Columns("dl:hw").Hidden = Me.ToggleButton1.Value
        .Outline.ShowLevels columnlevels:=1
        With .ToggleButton1
            .Value = Me.ToggleButton1.Value
            .Caption = IIf(.Value, "Cliquer pour Vue Normal", "Cliquer pour Vue Diabéte")
        End With
    End With
    With Worksheets("Accueil")
        With .ToggleButton1
            .Value = Me.ToggleButton1.Value
            .Caption = IIf(.Value, "Cliquer pour Vue Normal", "Cliquer pour Vue Diabéte")
        End With
    End With
    NoEvents = False
End Sub
Et dans un module standard :
Option Private Module
Option Explicit
Public NoEvents As Boolean
0
rodger85830 Messages postés 20 Date d'inscription mercredi 23 novembre 2016 Statut Membre Dernière intervention 23 janvier 2017
Modifié par rodger85830 le 25/11/2016 à 18:25
Bonjour
c'est mieux mais il y a un hic je suis obligé d'appuyer 2 fois sur le bouton de la feuille analyses pour pouvoir retrouver les colonnes groupées
Merci d'avance Rodger
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
Modifié par Patrice33740 le 25/11/2016 à 22:13
Je ne comprends pas le problème !!!

« je suis obligé d'appuyer 2 fois sur le bouton de la feuille analyses pour pouvoir retrouver les colonnes groupées » ça me semble normal : une fois pour dégrouper et une fois pour regrouper.


Y aurait-il d'autres macros que celles-ci ?
0
rodger85830 Messages postés 20 Date d'inscription mercredi 23 novembre 2016 Statut Membre Dernière intervention 23 janvier 2017
26 nov. 2016 à 01:07
ce que je veux dire c'est quand j'appuie sur le bouton de la feuille d'accueil cela me groupe bien les colonnes dans la feuille Analyses ,mais quand je veux revenir a une vue normal ou cliquer sur n'importe quel liens hypertexts ils sont bloqués alors il faut que je clique n'importe ou dans la feuille pour la rendre active puis une nouvelle fois sur le bouton pour revenir a une vue normal ou utiliser les liens hypertexts
oui il y a une macros dans Accueil
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

j'ai essayé en l'enlevant mais cela fait pareil
0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557
26 nov. 2016 à 09:15
Ce problème n'est-il pas causé par
With Worksheets("Analyses")
        .Select

Est-ce nécessaire de garder le
.Select
?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
Modifié par Patrice33740 le 26/11/2016 à 09:24
Bonjour,

Il faut peut-être inhiber les évènements de ta macro.
Mets ton fichier sur https://www.cjoint.com/
Cordialement
Patrice
0
rodger85830 Messages postés 20 Date d'inscription mercredi 23 novembre 2016 Statut Membre Dernière intervention 23 janvier 2017
26 nov. 2016 à 12:51
lien pour le fichier et commentaire
http://www.cjoint.com/c/FKAlW75aaQE
0
rodger85830 Messages postés 20 Date d'inscription mercredi 23 novembre 2016 Statut Membre Dernière intervention 23 janvier 2017
26 nov. 2016 à 18:08
j'ai bien essayé en enlevant ".Select" mais pareil
Merci c'est sympa de m'aider ci joint la feuille excel très allégée je n'ai gardé que les feuilles concernées et enlever toutes les macros et modules mais cela fait pareil mais bizarre car les 2 premier aller retour marche très bien mais après ça bloque
ci-joint le fichier
http://www.cjoint.com/c/FKAlW75aaQE
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
26 nov. 2016 à 19:31
Bonjour,

Je ne constate pas ton problème, chez moi ça fonctionnement très bien, hormis un problème de lenteur d'affichage et un problème de scroll, lors du retour en normal (les colonnes sont bien affichées, mais il faut scroller manuellement pour les voir).

A tout hasard si c'est ce qui pose problème, essaies ce code dans les 2 modules de feuille :

Private Sub ToggleButton1_Click()

    If NoEvents Then Exit Sub Else NoEvents = True
    Application.ScreenUpdating = False
    With Worksheets("Analyses")
        .Select
        .Columns("c:cy").Hidden = Me.ToggleButton1.Value
        .Columns("dz:hw").Hidden = Me.ToggleButton1.Value
        .Outline.ShowLevels columnlevels:=1
        With .ToggleButton1
            .Value = Me.ToggleButton1.Value
            .Caption = IIf(.Value, "Cliquer pour Vue Normal", "Cliquer pour Vue Diabéte")
            
        End With
    End With
    With Worksheets("Accueil")
        With .ToggleButton1
            .Value = Me.ToggleButton1.Value
            .Caption = IIf(.Value, "Cliquer pour Vue Normal", "Cliquer pour Vue Diabéte")
        End With
    End With
    NoEvents = False
    ActiveWindow.ScrollRow = 1
    ActiveWindow.ScrollColumn = 1
    Application.ScreenUpdating = True
   
End Sub
0
rodger85830 Messages postés 20 Date d'inscription mercredi 23 novembre 2016 Statut Membre Dernière intervention 23 janvier 2017
27 nov. 2016 à 11:06
Bonjour Patrice
cela me fait le même problème,mais il est possible que tu soit passé a coté
essaie cette manip pour le voir
1)être a l'accueil et cliquer sur vue diabète (la tout est ok)
quand tu es en vue diabète la 1ere fois le toggle bouton est marqué "cliquer pour vue normal"
donc cliquer dessus ,la tu arrive en vue normal (tout est ok)
2) utiliser le bouton Accueil pour retourner a l'accueil refait la 1ere manip
et quand tu es dans la vue diabète (dans la feuille analyses)
le bouton devrait être marquer vue normal mais en fait c'est grisé sur vue diabète
essaie a ce moment la de cliquer sur le bouton accueil en haut
et la tu verra que tout mes hyperliens sont bloqués, donc obligés de cliquer n'importe ou pour rendre active la feuille analyses
0
rodger85830 Messages postés 20 Date d'inscription mercredi 23 novembre 2016 Statut Membre Dernière intervention 23 janvier 2017
27 nov. 2016 à 12:15
après divers essais je m’aperçois qu'il y a deux problèmes
le 1) c'est le toggle bouton grisé après plusieurs aller retour via le bouton Accueil
2) et j'ai créer des lyens hypertext directement dans une cellule et la les liens marche bien
mise a part le toggle grisé
donc c'est tout les liens que j'ai créer avec des formes qui eux ne répondes pas au premier clic après utilisation de la macro
essai 3 )intéressant car je viens de supprimer toutes les macros et
rien que le fait d'appuyez sur le toogle 1 me bloques mes liens (fait avec des formes)
mais pas ceux fait avec les cellules
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
27 nov. 2016 à 20:42
Bonsoir,

Je viens de faire de nombreux essais mais chez moi tout fonctionne correctement aussi bien avec Excel 2007, avec Excel 2010 et avec Excel 2016.

Il y a une petite anomalie dans mon code : je ne désactive pas le bouton. Dans certains cas ça peut générer un problème (est-ce le tien ????). Essaies de commencer les 2 procédures bouton en activant la cellule active (pour désactiver le bouton) :

Private Sub ToggleButton1_Click()
    ActiveCell.Activate
    If NoEvents Then Exit Sub Else NoEvents = True
0
rodger85830 Messages postés 20 Date d'inscription mercredi 23 novembre 2016 Statut Membre Dernière intervention 23 janvier 2017 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
28 nov. 2016 à 01:02
T'es un As Patrice ça marche du tonnerre ,pourtant j'avais essayé un peu la même chose mais j'avais mis sheets("Analyses").Activate
je vais pouvoir dormir tranquille et encore un grand merci
ps:si je veux poser d'autres questions doit-je passer par toi ou continuer avec ce post ou créer un nouveau sujet ,je me suis fait un petit peu taper sur les doigts la dernière fois.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779 > rodger85830 Messages postés 20 Date d'inscription mercredi 23 novembre 2016 Statut Membre Dernière intervention 23 janvier 2017
28 nov. 2016 à 10:30
Bonjour,

En lisant ton post ci-dessus, je découvre que tu avais ouvert un second post concernant la même procédure.

Je suis entièrement d'accord avec gbinforme (bonjour gb), gérer plusieurs sujets qui concernent la même procédure est totalement improductif. Il y a de fortes chances que les propositions pour un sujet interfèrent sur les autres sujets.

En parlant d'interférences, tu as dit qu'il y a d'autres macros dans ton classeur, notamment une macro évènementielle sur SelectionChange. Il serait utile que tu mettes ton fichier, expurgé des éventuelles informations confidentielles, mais avec toutes les macros, pour vérifier le fonctionnement de l'ensemble.

Pour ce qui concerne la simplification, c'est déjà une macro simplifiée.

Pour ce qui est de rajouter un textbox contrôlé par le même togglebutton1, il suffit d'intégrer ton code à la fin des macros existantes (avant le End Sub).

Une fois que cette partie de ton code VBA sera vérifiée, tu pourras enfin clôturer ce post (le mettre en résolu) : en effet, pour que que ça profite à tout le monde, il est préférable de clôturer un post long qui s'éloigne complétement de son titre et d'ouvrir un nouveau post avec la nouvelle question et un titre plus significatif.

Cordialement
Patrice
0