Cacher colonne en fonction de ce qu'elle contient

Bonjour à tous !

J'ai une plage de plusieurs colonnes qui contiennent ou pas des X correspondant à des tâches a faire et je voudrait qu'automatiquement les colonnes qui ne contiennent pas de X se masquent. Je galère à faire ca. Pouvez vous m'aider?

Et est il possible de faire cela sur uniquement des cellules visibles? car au fur et a mesure des lignes se masqueront.

Je vous mets un exemple de tableau (sans macro car pour ce sujet je n'avance à rien :/)

Merci !

Bonjour,

Je vous mets un exemple de tableau (sans macro car pour ce sujet je n'avance à rien

Sans macro!, je ne pense cela possible qu'en sélectionnant avec la touche CTRL enfoncée, les colonnes vides, puis clic droit et masquer

Sinon en automatique, c'est macro

Bonjour

Un exemple avec macro qui se déclenche en faisant touche Ctrl+q

Si cela te convient tu passes le sujet en résolu

Crdlt

6demo-tableau.xlsm (17.13 Ko)

Bonsoir,

@ Joco, je pense que tu fais exactement l'inverse de la demande...

les colonnes qui ne contiennent pas de X se masquent.

Bonne soirée

Bonjour cousinhub

Effectivement je rectifie le tir

Bonne soirée

Bonjour,

Quand je disais sans macro c'est que je n'avais pas d'ébauche car je suis complètement perdu

Sinon le tableau dans l'idée c'est ca mais en inverse. Je ne sais pas si il est possible de garder une colonne si un X est présent.

En tout cas merci pour l'aide :)

Bonne journée

Bonjour,

Un essai...

Il sera sûrement à adapter à ton fichier réel, car je suppose que tu as fourni un exemple lambda, loin, très loin de ton fichier initial...

Autoriser les macros à l'ouverture du fichier

Les codes : (Masquer, Démasquer)

Sub Garde_X()
Dim Cel As Range
Application.ScreenUpdating = False
Cells.EntireColumn.Hidden = False
For Each Cel In Range("F7:Q7")
    If Intersect(Cel, Range("F7:Q52").SpecialCells(xlCellTypeConstants, 23).EntireColumn) Is Nothing Then
        Cel.EntireColumn.Hidden = True
    End If
Next Cel
End Sub

Sub Reset()
Application.ScreenUpdating = False
Cells.EntireColumn.Hidden = False
End Sub

Le fichier :

7fekapic.xlsm (17.69 Ko)

Bonjour,

Merci cela fonctionne impeccablement et j'arrive a comprendre le fonctionnement donc c'est cool ! Cependant mon tableau comporte une formule de type :=IF($B4="";"";VLOOKUP($B4;molecule!$E$3:$BE$79;2;FALSE)) ce qui permet d'afficher les croix en fonctions de ce que je rentre dans une autre colonne.

A mon grand désespoir les croix que la formule va chercher ne fonctionnent pas avec le code (mais un X rentré à la main oui). Est il possible de faire la même chose mais avec une couleur de cellule? du genre si dans mes colonnes il n'y a que des cases de couleur grise ca masque la colonne, sinon ca la garde affichée?

Merci et encore désolé :D

Bonjour,

Version modifiée :

Sub Masq2()
Dim Cel As Range
For Each Cel In Range("F7:Q7")
    If Application.CountIf(Cel.Resize(46), "X") = 0 Then
        Cel.EntireColumn.Hidden = True
    End If
Next Cel
End Sub

Bonne journée

Rechercher des sujets similaires à "cacher colonne fonction contient"