Liste déroulante pour Afficher Colonne

Bonjour à tous!

Je joins mon classeur, la routine VB est sensée fonctionnée, quand je choisi un article dans la liste en A1, en principe toutes les colonne se cachent sauf celle qui porte le même nom que dans la liste.

Merci de me corriger.

Cordialement

4essai-ep0002.xlsm (76.72 Ko)

Bonjour,

à tester (avec juste une ou deux modifs):

Private Sub Worksheet_Change(ByVal Target As Range)
Dim p%, k%, prdts As Range
    If Target.Address = "$A$1" Then
        Application.ScreenUpdating = False
        Me.Columns.Hidden = False
        k = Me.Cells(1, Columns.Count).End(xlToLeft).Column
        Set prdts = Me.Cells(2, 4).Resize(, k - 3)
        p = WorksheetFunction.Match(Target, [2:2], 0)
        prdts.Columns.Hidden = True
        Columns(p).Hidden = False
    End If
End Sub

Bonjour U. Milité!

Merci pour votre aide la fonction marche parfaitememnt.

J'ose abuser de votre temps pour vous demander, comment rendre la liste active ou inactive avec une case à cocher, c'est a dire si il y a coche la colonne est affichée selon le choix de la liste, sinon toutes les colonnes s'affichent automatiquement.

Merci encore.

9essai-ep0002.xlsm (78.61 Ko)

Re-bonjour,

Je ne suis pas certain de comprendre le but de la manœuvre ... ne serait-il pas plus simple de placer, à côté de la liste déroulante, un bouton qui afficherait toutes les colonnes?

Bonjour à vous!

Oui c'est mieux ainsi, mais j'avoue que je suis limiter en VBA, merci de m'aider à le faire.

Cordialement!

Hosni a écrit :

merci de m'aider à le faire.

Euh ... je ne suis pas contre ... mais tu aurais dû préciser pour quelle partie de la manœuvre tu as besoin d'aide?

Tu sais insérer un bouton? Si pas, faisons simple:

  • dans la même fenêtre que ta Sub Worksheet_Change(), ajoute le bout de code suivant:
    Sub afficheTout()
    Me.Columns.Hidden = False
    End Sub
  • insère -à l'endroit souhaité dans ta feuille- n'importe quelle forme dessinée ou image ou zone de texte
  • clic droit sur l'objet ainsi créé > Affecter une macro
  • dans la boîte de dialogue qui s'affiche, dans la zone "Macros dans" assure-toi que c'est bien ton classeur qui est sélectionné
  • repère la macro que tu viens d'ajouter et qui se présentera sous la forme "Feuilx.afficheTout", sélectionne-la et valide avec le bouton OK
  • active une cellule au choix (pour dé-sélectionner l'objet)

... et teste

je propose une autre version

à tester

12cache-colonne.xlsm (84.84 Ko)

Bonjour à tous!

Merci à vous deux, gullaud et U. Milité, pour vos réponses, ça marche dans les deux cas.

Je clôture le poste

mon programme ne fonctionne que si le nombre de colonnes m'augmente pas (case décocher : pour voit tout), si vous ajouter une colonne après la colonne AD on ne la verra pas

si vous souhaitez que je modifie le programme dites moi le

Bonjour gullaud !

Merci pour votre aide et attention, je me suis contenter de la solution précédente tout en gardant la votre pour une utilisation ultérieure.

Je reviendrai vers vous au besoin. Merci encore.

A bientôt.

Rechercher des sujets similaires à "liste deroulante afficher colonne"