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

XL 2019 masquer une colonne si vide

Neileru4

XLDnaute Occasionnel
Bonjour a tous j'ai un fichier excel ci joint
j'ai un onglet praticien avec le nom de mes praticien
et un onglet janvier ou mes praticien sont repris de mon onglet praticien
je voudrais si possible de masquer dans janvier les colonnes ou les nom praticien sont vide
mais que si il y a un nom de renseigner que la colonne s'affiche
 

Pièces jointes

  • Classeur1 - Copie.xlsx
    39.4 KB · Affichages: 7

Gégé-45550

XLDnaute Accro
Bonjour,
Voir PJ, onglet 'Janvier', ligne 5.
Cordialement,
 

Pièces jointes

  • Classeur1 - Copie.xlsx
    44.2 KB · Affichages: 7

Dudu2

XLDnaute Barbatruc
Bonjour,
Pourquoi tu mets en JANVIER des formules du genre =+PRATICIEN!Z5 ?
Le "+" fait un calcul qui dont affiche 0 au lieu d'une cellule vide comme la cellule PRATICIEN!Z5.

En plus, même en retirant ce "+", je n'arrive pas à retirer ce fichu "0" !
A la limite, puisque les tableaux ne sont pas structurés, ça facilite le masquage.

Mais comme tu as des commentaires sous tes tableaux, tu ne peux pas masquer les colonnes sans masquer les commentaires. Faut revoir ton design.
 
Dernière édition:

Phil69970

XLDnaute Barbatruc
Bonjour à tous

@Dudu2

En plus, même en retirant ce "+", je n'arrive pas à retirer ce fichu "0" !
Il faut voir ici


@Neileru4
je voudrais si possible de masquer dans janvier les colonnes ou les nom praticien sont vide
mais que si il y a un nom de renseigner que la colonne s'affiche

Et d'une manière général ton fichier est à revoir comme @Dudu2 te la dit ainsi que les dizaines de MFC

Mais comme tu as des commentaires sous tes tableaux, tu ne peux pas masquer les colonnes sans masquer les commentaires. Faut revoir ton design.

Bonne lecture
 

job75

XLDnaute Barbatruc
Bonjour à tous,

J'y vais de ma solution avec cette macro dans ThisWorkbook :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Not IsDate("1/" & Sh.Name) Then Exit Sub
Dim col%
Application.ScreenUpdating = False
Sh.Columns.Hidden = False 'RAZ
For col = 4 To 81 'de D à CC
    If Sh.Cells(6, col) = "J" Then
        If Application.CountA(Cells(7, col).Resize(31, 2)) = 0 Then Columns(col).Resize(, 2).Hidden = True
    End If
Next
End Sub
Elle s'exécute quand on active une feuille de mois.

Pas regardé les autres solutions, tant pis si la mienne fait double emploi.

A+
 

Pièces jointes

  • Classeur1 - Copie.xlsm
    46.2 KB · Affichages: 1

job75

XLDnaute Barbatruc
Bon Dudu2 masque les colonnes quand le praticien est "0".

Mois je masque les colonnes des praticiens sans informations dans les lignes 7 à 37.

C'est pourquoi 3 praticiens "0" sont affichés, pour les masquer effacez leurs informations.
 

Dudu2

XLDnaute Barbatruc
Bonjour @job75,
C'est ce que j'allais dire à la lecture de ton code. Et dans un premier temps ai pensé comme tu l'as fait.
Mais en relisant sa demande:
je voudrais si possible de masquer dans janvier les colonnes ou les nom praticien sont vide
mais que si il y a un nom de renseigner que la colonne s'affiche
je pense que ce serait plutôt les colonnes à 0 qu'il faut masquer.
A voir selon le retour du demandeur...
 

job75

XLDnaute Barbatruc
Pour finir voici ce que moi j'utiliserai pour masquer les valeurs zéro en ligne 5 :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Not IsDate("1/" & Sh.Name) Then Exit Sub
Sh.Columns.Hidden = False 'RAZ
On Error Resume Next 'si aucune Special Cell
Sh.Rows(5).SpecialCells(xlCellTypeFormulas, 1).EntireColumn.Hidden = True 'masque les valeurs numériques en ligne 5
End Sub
 

Pièces jointes

  • Classeur1 - Copie.xlsm
    45.9 KB · Affichages: 2

Discussions similaires

Réponses
6
Affichages
287
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…