Afficher/ Cacher Colonnes (voir lignes) via Bouton

Bonjour à tous,

J'ai créé un fichier qui est bien trop lourd visuellement, de ce fait je me suis lancé sur la création de boutons permettant d'afficher sur un clic et cacher sur un second clic certaines colonnes(voir lignes).

Evidemment je ne suis pas un expert en excel, ce qui explique certainement mon problème.

Le bouton transport devrait afficher les colonnes G à K, le bouton style L à P.......et au second clic les cacher

Le bouton pack portage devrait afficher les colonnes G à K et masquer les lignes 4 à 164, le bouton pack sport devrait afficher les colonnes L à P et masquer les lignes 4 à 164 et au second clic les cacher.

Et ce pour l'ensemble des boutons pour clarifier la lecture du tableur.

Merci d'avance pour votre aide,

Cordialement,

23test.xlsm (790.59 Ko)

Bonjour,

De ce que je peux comprendre, nul besoin de VBA pour çà !

En effet, Excel a prévu une fonction "Grouper" (onglet "Données", section "Plan"). Celle-ci sert a regrouper des lignes et des colonnes afin d'obtenir un visuel plus clair.

Cependant, si vous souhaitez vraiment utiliser le VBA, utilisez le code suivant (a adapter bien sûr )

Range("vos colonnes").EntireColumn.Hidden = True
Range("vos lignes").Rows.Hidden = True

PS : Je n'arrive pas a télécharger votre fichier. Pouvez-vous le reposter ?

Cordialement

Bonjour,

Merci pour ce retour, cependant la population qui utilisera le fichier n'est pas familière d'Excel, je cherche donc à simplifier au maximum.

Je joins le fichier de nouveau

Cordialement

5test.xlsm (790.59 Ko)

Rebonjour,

Le code VBA fonctionne à merveille,

seulement je n'arrive pas à le modifier pour faire réapparaître les colonnes ou les lignes...

Il faudrait les 2 fonctions sur un seul et même bouton : Afficher, cacher

Merci d'avance de vos contributions,

Cordialement

J'ai essayé ce code en vain ?

Sub AFFICHERCACHER()

Range("G:K").EntireColumn.Hidden = True

Range("G:K").EntireColumn.Hidden = False

End Sub

Re,

Voici un exemple de code pour le bouton transport. Dites-moi si c'est ce que vous recherchez

Sub transport()
If Columns("G:K").EntireColumn.Hidden = False Then 'si les colonnes ne sont pas masquées
    Columns("G:K").EntireColumn.Hidden = True 'on les masque
    Else 'sinon
    Columns("G:K").EntireColumn.Hidden = False 'on les affiche
End If
End Sub

Cependant, il se peut que ce code alourdisse le fichier et le rende plus lent.

Du coup, si il n'est pas forcément nécessaire de masquer les colonnes mais juste d'afficher une plage spécifique à l'écran, ce code peut tout a fait convenir (pour le bouton transport encore une fois)

Sub transports()
Columns("G:K").Select
End Sub

Cordialement

Bonjour et merci pour ce retour

Le premier code me convient parfaitement ET fonctionne très bien !!

Du coup, je me heurte à un problème inattendu, les cases à cocher reste apparente et n'ont pas disparu avec les colonnes.

Dans les options, Format de contrôle, Déplacer et dimensionner avec les cellules n'est pas sélectionnable (grisé)?

Avez vous une piste de réflexion là dessus ?

Re,

Pour les cases à cocher, je n'avais pas vu ce détail.

Malheureusement, vous avez utilisé des cases à cocher de formulaire et non ActiveX (ou là, l'option est disponible). Du coup, pour le masquer, il faut mettre un code vba pour chaque case (or il y en a beaucoup visiblement ).

Alors soit vous avez le temps et vous pouvez utiliser un code du type (a mettre dans le code de la feuille et non dans un module) :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Colums("G:K").Hidden = True Then
    ActiveSheet.Shapes("Case à cocher 4").Visible = False
    ActiveSheet.Shapes("Case à cocher 35").Visible = False
    'etc...
Else
    ActiveSheet.Shapes("Case à cocher 4").Visible = True
    ActiveSheet.Shapes("Case à cocher 35").Visible = True
    'etc...
End If
End Sub

Une autre solution serait de mettre dans l'ordre les case (par numéro) afin de faire une boucle sur les noms (pour éviter d'avoir un code interminable et d'épeler toutes les possibilités).

Mais comme vous pouvez le constater, rien de simple et de rapide (du moins pas pour moi).

Je vous met un lien vers un sujet similaire ou une solution a été apportée. Peut-être que ça vous inspirera. Par contre, il n'y avait que 2 cases à cocher concernées.

https://forum.excel-pratique.com/viewtopic.php?t=93904

Cordialement

Merci pour cette réactivité.

Je vais opter pour cette solution longue et fastidieuse !!

J'avais déjà trouvé le lien, mais c'est très aimable de l'avoir insérer.

Je classe en résolu,

Très cordialement,

Excellente journée

Rechercher des sujets similaires à "afficher cacher colonnes voir lignes via bouton"