Afficher/Masquer diverses colonnes par un simple clic sur un bouton Macro

Guido.b

XLDnaute Nouveau
Bonjour à vous tous,

Deux questions toutes simples (j'espère). Et ne connais pas grand choses aux macros. Bien trop longtemps que je n'en ai plus fait.

no1.
Je désire une Macro pour Afficher/Masquer, en même temps, plusieurs colonnes dans un tableau.
Il s'agit de colonnes qui ne sont pas côte à côte. Une s'affiche, l'autre disparaît ou vis/versa, sans toucher au formatage et MFC des cellules ou groupes de cellules.
1. Il s'agit de Masquer (ou Afficher) les colonnes : C;G;K;O;S;W;AA;AE;AI;AM;AQ;AU
2. et en même temps, Afficher (ou Masquer) les colonnes : D;H;L;P;T;X;AB;AF;AJ;AN;AR;AV
3. en troisième action, pouvoir afficher toutes les colonnes ensembles, soit : l'affichage simultané de toutes les colonnes (Position initiale des colonnes).

no2
Je désire que cette macro soit reliée à un bouton pression ;-)) sur le ruban. Que ce bouton ne soit que dans le ruban lié à la feuille de calcul. Qu'il disparaisse dès que le fichier Excel en question est fermé.


Merci à qui peut m'aider.

A bientôt
 

Yaloo

XLDnaute Barbatruc
Re : Afficher/Masquer diverses colonnes par un simple clic sur un bouton Macro

Bonsoir Guido et bienvenu sur le forum,

Vois avec le fichier ci-dessous (il suffit de changer les lettres des colonnes dans la macro), il est possible de cacher les Onglets d'Excel.

A+

Martial
 

Pièces jointes

  • Cache colonne avec bouton dans ruban.xlsm
    14.2 KB · Affichages: 206
  • Cache colonne avec bouton dans ruban.xlsm
    14.2 KB · Affichages: 139
  • Cache colonne avec bouton dans ruban.xlsm
    14.2 KB · Affichages: 130

Yaloo

XLDnaute Barbatruc
Re : Afficher/Masquer diverses colonnes par un simple clic sur un bouton Macro

Re,

Voici avec la version pour cacher les menus Excel.

A+
 

Pièces jointes

  • Cache colonne avec bouton dans ruban.xlsm
    17.8 KB · Affichages: 102
  • Cache colonne avec bouton dans ruban.xlsm
    17.8 KB · Affichages: 78
  • Cache colonne avec bouton dans ruban.xlsm
    17.8 KB · Affichages: 145

Guido.b

XLDnaute Nouveau
Re : Afficher/Masquer diverses colonnes par un simple clic sur un bouton Macro

Hello Martial,

Merci pour ton intervention et la bienvenue.

J'ai deux questions. suivant le fichier joint, est-il normal d'avoir une erreur 1004 ? C'est en fonction des cellules fusionnées ?

concernant l'onglet et les boutons. J'ai vu sous Option, qu'Une commande Onglet était toujours actif. Même si le bouton n’apparaît plus sur les autre feuilles.

N'y a t'il pas moyen de permettre la disparition totale et complètes de l'option , "Suppression de l'arrière-plan" ? Car ceci reste visiblement lié à la macro et au fichier, même si il est fermé (sauf si je me trompe et que c'est une option intégrée à Office).

Encore merci.

Guido
 

Pièces jointes

  • Cache colonne avec bouton dans ruban (1).xlsm
    20.5 KB · Affichages: 131

Yaloo

XLDnaute Barbatruc
Re : Afficher/Masquer diverses colonnes par un simple clic sur un bouton Macro

Bonsoir Guido,

J'ai deux questions. suivant le fichier joint, est-il normal d'avoir une erreur 1004 ? C'est en fonction des cellules fusionnées ?

L'erreur est dû à l'écriture de tes colonnes, pour les macros il faut utiliser le , pour séparer et non ; comme pour les formules, de plus, lorsque l'on sélectionne des colonnes il faut mettre A:A (pour sélectionner la colonne A) ou A:C (pour sélectionner les colonnes de A à C).

Donc il faut mettre :
VB:
Option Explicit
Sub Tout(control As IRibbonControl)
  Columns.EntireColumn.Hidden = False
  Application.Goto [A1], True
End Sub
Sub CacheMontre(control As IRibbonControl, pressed As Boolean)
  If pressed = True Then
    Range("C:C,G:G,K:K,O:O,S:S,W:W,AA:AA,AE:AE,AI:AI,AM:AM,AQ:AQ,AU:AU").EntireColumn.Hidden = True
    Range("D:D,H:H,L:L,P:P,T:T,X:X,AB:AB,AF:AF,AJ:AJ,AN:AN,AR:AR,AV:AV").EntireColumn.Hidden = False
   Else
    Range("D:D,H:H,L:L,P:P,T:T,X:X,AB:AB,AF:AF,AJ:AJ,AN:AN,AR:AR,AV:AV").EntireColumn.Hidden = True
    Range("C:C,G:G,K:K,O:O,S:S,W:W,AA:AA,AE:AE,AI:AI,AM:AM,AQ:AQ,AU:AU").EntireColumn.Hidden = False
  End If
  Application.Goto [A1], True
End Sub

concernant l'onglet et les boutons. J'ai vu sous Option, qu'Une commande Onglet était toujours actif. Même si le bouton n’apparaît plus sur les autre feuilles.

N'y a t'il pas moyen de permettre la disparition totale et complètes de l'option , "Suppression de l'arrière-plan" ? Car ceci reste visiblement lié à la macro et au fichier, même si il est fermé (sauf si je me trompe et que c'est une option intégrée à Office).

La macro est dans ton fichier ainsi que le code permettant l'apparition des menu et bouton, si tu fermes ton fichier rien n'est accessible, ni menu, ni bouton ni macro.

A+
Martial
 

Guido.b

XLDnaute Nouveau
Re : Afficher/Masquer diverses colonnes par un simple clic sur un bouton Macro

Rebonsoir Martial,

Bonsoir Guido,
La macro est dans ton fichier ainsi que le code permettant l'apparition des menu et bouton, si tu fermes ton fichier rien n'est accessible, ni menu, ni bouton ni macro.

Alors, qu'est-ce que ce nouvel Onglet dans les Options du Ruban ? "Suppression de l'arrière-plan" ???
Je ne comprends pas ce que c'est exactement.

Merci pour tes lumières.

Guido
 

Guido.b

XLDnaute Nouveau
Re : Afficher/Masquer diverses colonnes par un simple clic sur un bouton Macro

Voilà qui est fait...

C'est une commande que je ne connais pas et que je n'ai jamais vue (avant que tu me transmettes le fichier avec la réponse à ma demande).

Merci encore. C'est juste. J'avais oublié le coup du A:A

Bonne soirée

Guido
 

Pièces jointes

  • Suppr..jpg
    Suppr..jpg
    56.5 KB · Affichages: 214

Yaloo

XLDnaute Barbatruc
Re : Afficher/Masquer diverses colonnes par un simple clic sur un bouton Macro

Sais-tu si cette onglet était présent avant de lancer le fichier et donc la macro ?
Sous Excel2010, maintenant, il y est, mais je ne suis pas sûr qu'il y était avant. :confused:
Au boulot, j'ai Excel2010, je vais regarder s'il y est avant et après avoir mis le fichier.
Je te dis demain.

Martial
 

Guido.b

XLDnaute Nouveau
Re : Afficher/Masquer diverses colonnes par un simple clic sur un bouton Macro

Je ne l'ai jamais vu de ma vie.

Je ne vais pas souvent dans cette partie des options, mais celle-là, je ne l'ai jamais vue.
D'où ma question... Qu'est-ce que... ????

Et je peux t'assurer qu'avant ta macro, je ne l'avais pas. Je suis allé, il y a deux jours environs, activer l'Onglet Développeur. L'Onglet Complément n'était pas non plus positionné à cet endroit.

Serait-ce parce qu j'ai activer le complément Solveur (qui n'est pas forcément nécessaire ? Oui / NON ? )
 

Yaloo

XLDnaute Barbatruc
Re : Afficher/Masquer diverses colonnes par un simple clic sur un bouton Macro

Bonjour Guido,

Au boulot j'ai déjà cet onglet dans le menu Option, je ne sais toujours pas si ça vient de là ou pas.
Je n'ai rien trouvé sur le net concernant cet onglet, sachant qu'il n'est pas visible en n'importe quelle circonstance (même coché).

A+
 

Guido.b

XLDnaute Nouveau
Re : Afficher/Masquer diverses colonnes par un simple clic sur un bouton Macro

Bonjour Martial,

J'ai également contrôlé ce matin au travail si il est aussi chez moi au travail (Office 2010).
J'ai également demandé à plusieurs collègues si ils l'on chez eux et si c'est activé.
Présent aussi, mais sans autres explications.

Serait-ce une chose implantée par MS sans que quiconque sache ce que c'est ?

Merci de ton feedback.

Bon appétit

Guido
 

Guido.b

XLDnaute Nouveau
Re : Afficher/Masquer diverses colonnes par un simple clic sur un bouton Macro

Bonsoir Martial,

Peux-tu me donner la marche à suivre que tu as utilisé pour créer l'Onglet "Perso" en vision uniquement pour ce fichier sur le Ruban?

Peux-tu me dire également comment tu as rattacher la macro du fichier sur les boutons respectifs ?

Sous Options, je ne vois pas l'onglet Perso dans "Options du Ruban" et je n'ai pas vu non plus la macro sous la rubrique Commandes "Macros".

C'est super Top, ce que tu as produit. Pourrais-tu m'expliquer ?

Cordialement

Guido
 

Yaloo

XLDnaute Barbatruc
Re : Afficher/Masquer diverses colonnes par un simple clic sur un bouton Macro

Bonsoir Guido,

C'est fait en 2 temps :

- Des macros dans Visual Basic Editor
- Un code xml créé dans Custom UI Editor

Les macros :
Dans thisWorkbook, permettant d'afficher toutes les colonnes à l'ouverture
VB:
Private Sub Workbook_Open()
  Columns.EntireColumn.Hidden = False
  Application.Goto [A1], True
  boolResult = False
End Sub
Dans un module standard, pour les macros de ton menu
VB:
Option Explicit
Sub Tout(control As IRibbonControl)
   Columns.EntireColumn.Hidden = False
   Application.Goto [A1], True
End Sub
Sub CacheMontre(control As IRibbonControl, pressed As Boolean)
   If pressed = True Then
     Range("C:C,G:G,K:K,O:O,S:S,W:W,AA:AA,AE:AE,AI:AI,AM:AM,AQ:AQ,AU:AU").EntireColumn.Hidden = True
     Range("D:D,H:H,L:L,P:P,T:T,X:X,AB:AB,AF:AF,AJ:AJ,AN:AN,AR:AR,AV:AV").EntireColumn.Hidden = False
    Else
     Range("D:D,H:H,L:L,P:P,T:T,X:X,AB:AB,AF:AF,AJ:AJ,AN:AN,AR:AR,AV:AV").EntireColumn.Hidden = True
     Range("C:C,G:G,K:K,O:O,S:S,W:W,AA:AA,AE:AE,AI:AI,AM:AM,AQ:AQ,AU:AU").EntireColumn.Hidden = False
   End If
   Application.Goto [A1], True
End Sub
Puis dans le module Ruban, permettant de cacher ou non les menus Excel
VB:
Public boolResult As Boolean
Public objRuban As IRibbonUI
Sub RubanCharge(ribbon As IRibbonUI)
    Set objRuban = ribbon
    objRuban.ActivateTab "Per1"
End Sub
Sub GestionTabStd(control As IRibbonControl, ByRef returnedVal)
    returnedVal = boolResult
End Sub
Sub GestionTabPerso(control As IRibbonControl, ByRef returnedVal)
    returnedVal = Not boolResult
End Sub
Sub MenuExcel(control As IRibbonControl, pressed As Boolean)
On Error Resume Next
If pressed = True Then
    boolResult = True
    objRuban.Invalidate
Else
    boolResult = False
    objRuban.Invalidate
End If
End Sub

Et en utilisant Custom UI Editor :
HTML:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="RubanCharge"> 
<!--true = cache toute l'interface Excel, false = montre toute l'interface-->
  <ribbon startFromScratch="true">
    <tabs>
	<tab idMso="TabHome" getVisible="GestionTabStd"/>
  	<tab idMso="TabInsert" getVisible="GestionTabStd"/>
  	<tab idMso="TabPageLayoutExcel" getVisible="GestionTabStd"/>
  	<tab idMso="TabFormulas" getVisible="GestionTabStd"/>
  	<tab idMso="TabData" getVisible="GestionTabStd"/>
  	<tab idMso="TabReview" getVisible="GestionTabStd"/>
  	<tab idMso="TabView" getVisible="GestionTabStd"/>
  	<tab idMso="TabDeveloper" getVisible="GestionTabStd"/>
  	<tab idMso="TabReview" getVisible="GestionTabStd"/>
 	<tab idMso="TabAddIns" getVisible="GestionTabStd"/>

	<tab id="Per1" label="Perso">
	  <group id="Perso" label="Menu">
	    <button id="Tt1" label="Tout" imageMso="BlogHomePage" size="large" onAction="Tout" />
	    <toggleButton id="Aff1" label="Affiche/Cache" imageMso="TableColumnsInsertRight" size="large" onAction="CacheMontre"/>
	    <separator id="Sep1"/>
	    <toggleButton id="AfM1" label="Menu Excel" imageMso="FormRegionMenu" size="large" onAction="MenuExcel"/>
	  </group>
	</tab>
    </tabs>
  </ribbon>
</customUI>

Voici quelques tutos, tu y trouvera également des liens permettant le téléchargement de Custom UI Editor :
Eric Renaud, Developpez super Tuto de SilkyRoad et enfin le dernier mais non des moindres dj.joss

Je te remets le dernier fichier avec la possibilité de cacher les menus Excel

A+

Martial
 

Pièces jointes

  • Cache colonne avec bouton dans ruban.xlsm
    17.2 KB · Affichages: 79
  • Cache colonne avec bouton dans ruban.xlsm
    17.2 KB · Affichages: 91
  • Cache colonne avec bouton dans ruban.xlsm
    17.2 KB · Affichages: 80

Guido.b

XLDnaute Nouveau
Re : Afficher/Masquer diverses colonnes par un simple clic sur un bouton Macro

Martial,

merci pour cet explicatif.
J'avais recopié les macros sur le fichier d'origine.
J'avais même recherché XLSTAT et l'autre fichier ...PERSONAL.XLSB
Je me suis posé la question en ne les trouvant pas... Comment tu as bien pu faire.
Je ne saisi pas encore le pourquoi et le comment du code <html>.... merci de ces liens.

A bientôt

Guido
 

Discussions similaires

Statistiques des forums

Discussions
314 653
Messages
2 111 579
Membres
111 207
dernier inscrit
max008