Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Masquer Colonne si aucune "valeur" n'est reprise dans cette meme colonne

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Bullrot

XLDnaute Junior
Bonjour,

Je vous solicite pour voir si c'est faisable de "reduire" la taille du code?

J'ai un simple annuaire téléphonique avec le qui j'aimerais qu'il s'adapte automaiquement si il y une cellule avec du texte dedans

Si dans la colonne "I3" à Fin de "I" il y a aucune valeur, alors masque la colonne.

Etc pour chacune des colonnes du tableau

Merci

Bullrot

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Range("I3:I50").value = 0 Then
        Columns("I").FullyColumn.Hidden = True
        Else
        Columns("I").FullyColumn.Hidden = False
    End If
    If Range("J3:J1000").value = "" Then
        Columns("J").FullyColumn.Hidden = True
        Else
        Columns("J").FullyColumn.Hidden = False
    End If
    If Range("K3:K1000").value = "" Then
        Columns("K").FullyColumn.Hidden = True
        Else
        Columns("K").FullyColumn.Hidden = False
    End If
    If Range("L3:L1000").value = "" Then
        Columns("L").FullyColumn.Hidden = True
        Else
        Columns("L").FullyColumn.Hidden = False
    End If
        If Range("M3:M1000").value = "" Then
        Columns("M").FullyColumn.Hidden = True
        Else
        Columns("M").FullyColumn.Hidden = False
    End If
        If Range("N3:M1000").value = "" Then
        Columns("N").FullyColumn.Hidden = True
        Else
        Columns("N").FullyColumn.Hidden = False
    End If
        If Range("O3:O1000").value = "" Then
        Columns("O").FullyColumn.Hidden = True
        Else
        Columns("O").FullyColumn.Hidden = False
    End If
        If Range("P3:P1000").value = "" Then
        Columns("P").FullyColumn.Hidden = True
        Else
        Columns("P").FullyColumn.Hidden = False
    End If
        If Range("Q3:Q1000").value = "" Then
        Columns("Q").FullyColumn.Hidden = True
        Else
        Columns("Q").FullyColumn.Hidden = False
    End If
End Sub
 

Pièces jointes

Hello

Essaie avec ce code à mettre dans un module standard
VB:
Sub MaskOrShow()
fin = Range("A" & Rows.Count).End(xlUp).Row
For col = 9 To 17
    Columns(col).EntireColumn.Hidden = Not (WorksheetFunction.CountBlank(Range(Cells(2, col), Cells(fin, col))) <> (fin - 1))
Next col
End Sub
 
Bonjour Bullrot, vgendron,
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim col%
For col = 9 To 17
    Columns(col).Hidden = Application.CountA(Range("A3:A1000").Offset(, col - 1)) = 0
Next
End Sub
Je ne connais pas la propriété FullyColumn, où l'avez-vous pêchée ???

A+
 
Je n'avais pas ouvert votre fichier, il y a des textes vides "" dans les colonnes, alors utilisez :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim col%
For col = 9 To 17
    Columns(col).Hidden = Evaluate("SUM(N(" & Range("A2:A1000").Offset(, col - 1).Address & "<>""""))") = 0
Next
End Sub
Sur le fichier il faut compter à partir de la ligne 2.
 
Le fichier qui est ici présent est basé sur des formules, donc si la valeur est vide, la colonne ne sert a rien et lorsque dans un autre tableau on aura complété ses informations, l'annuaire va se remplir et faire réapparaitre la colonne
 
Avez-vous testé la solution (matricielle) avec SUM (SOMME) de mon post #5 ?

Autre solution avec la fonction OR (OU) :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim col%
For col = 9 To 17
    Columns(col).Hidden = Evaluate("NOT(OR(" & Range("A2:A1000").Offset(, col - 1).Address & "<>""""))")
Next
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
332
Réponses
2
Affichages
371
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
481
Réponses
3
Affichages
485
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…