Masquer une colonne selon la valeur d'une cellule

Bonjour tout le monde,

J'aimerais écrire une macro qui dépasse mes compétences...

Ce que je cherche à faire c'est masquer une colonne si la cellule A1 contient le nom de la colonne. Exemple : si la cellule A1 est égale à M la macro masque la colonne M, si la valeur est AB, la macro masque la colonne AB etc... même si la valeur de la cellule A1 peut avoir 50 valeurs différentes.

J'ai eu beau chercher, mon niveau en VBA n'est pas suffisant pour ça ! Quelqu'un saurait faire ça ?

Merci de votre aide

Olivier

Bonjour,

Essaie ce code, à insérer dans l'évènement de feuille (clic droit sur le nom de l'onglet, "Visualiser le code")

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$A$1" And IsNumeric(Target) Then
    Cells.EntireColumn.Hidden = False
    If Not IsEmpty(Target) Then Columns([A1] * 10).Hidden = True
End If
End Sub

Bonne journée

Merci beaucoup je vais essayer.

-- 04 Oct 2010, 12:46 --

cousinhub a écrit :

Bonjour,

Essaie ce code, à insérer dans l'évènement de feuille (clic droit sur le nom de l'onglet, "Visualiser le code")

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$A$1" And IsNumeric(Target) Then
    Cells.EntireColumn.Hidden = False
    If Not IsEmpty(Target) Then Columns([A1] * 10).Hidden = True
End If
End Sub

Bonne journée

Je viens de regarder dans mon tableau et je cris que je me suis super mal expliqué. En fait, ce que je cherche à faire c'est masquer une colonne si la cellule A1 contient le nom de la colonne. Exemple : si la cellule A1 est égale à M la macro masque la colonne M, si la valeur est AB, la macro masque la colonne AB etc... même si la valeur de la cellule A1 peut avoir 50 valeurs différentes.

Désolé d'avoir été aussi imprécis

Bonjour,

La moindre des politesses, c'est que tu aurais pu laisser ton message initial....

Parce que lorsque je lis le code que j'ai fourni, comparé à ta demande, effectivement, je me dis, "mais c'est qui, c't'abruti, qui donne n'importe quoi comme code...."

Tu peux modifier ta demande, à postériori, si tu t'es mal expliqué, mais modifier ta demande, après réponse, c'est pas très fair-play....

Sans moi....

Bon courage

Désolé, mais je me suis rendu compte en recevant ta réponse que je m'étais mal expliqué sur mon objectif, pas avant. Vraiment navré que tu sois aussi susceptible. Je te remercie beaucoup d'avoir essayé de m'aider et encore une fois, désolé que tu te sentes vexé alors qu'au contraire je te suis très reconnaissant d'avoir essayé de m'aider.

Bonsoir,

tu ne parles pas des autres colonnes !

ici on les affiche (jusqu'à BB) à régler

Private Sub Worksheet_Change(ByVal Target As Range)
Dim x
    If Not Application.Intersect(Target, Range("a1")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target = "a" Or Target = "A" Then Exit Sub
            x = Target
            Range("b:bb").EntireColumn.Hidden = False
            Columns(x).Hidden = True
    End If
End Sub

Claude

re

desolé claude mais cela ne fonctionne pas j'ai une fenetre ( erreur de compilation nom ambigu detecté Worksheet_Change)

mais peut etre cela vient t'il du fait que dans la cellule b3 il y a une formule qui me fait obtenir 1 ou 0 voici la formule =INDEX(net;EQUIV($B$5;magasin;0))

amicalement

teddy33,

réponds sur ton poste !

Claude

Rechercher des sujets similaires à "masquer colonne valeur"