Macro automatique masquant lignes et colonnes selon le contenu d'une cellule.

DOMERGO

XLDnaute Nouveau
Bonjour à tous,
Je cherche à faire deux choses:
- La première est de créer une macro sur la feuille "Récapitulatif brancardage", qui me permet de cacher (de manière automatique ou par bouton) toutes les colonnes et toutes les lignes où ne figure pas "Ergothérapie (brancardé)" ou "Kinésithérapie (brancardé)". Le filtre élaboré est trop contraignant et ne me permet pas de faire le tri au niveau des colonnes, j’ai bidouillé des macros mais je suis dépassé par la tâche.
Les colonnes concernées vont de 3 à 80 et lignes de 2 à 83

- La deuxième concerne la feuille « Récapitulatif Planning », je voudrais cacher toutes les colonnes concernant les cellules entre C2 et CF2.
Ex :si c2 est vide alors les colonnes cd sont cachées, si e2 et i2 sont vides alors Col IJ et EF sont cachées etc…

La manière automatique me parait la plus judicieuse (à l'ouverture de la feuille)

J’espère avoir été limpide, j’en suis à plusieurs heures de recherche infructueuse.

Domergo
 

Pièces jointes

  • planning.zip
    459.6 KB · Affichages: 36
  • planning.zip
    459.6 KB · Affichages: 43
  • planning.zip
    459.6 KB · Affichages: 38

job75

XLDnaute Barbatruc
Re : Macro automatique masquant lignes et colonnes selon le contenu d'une cellule.

Re,

Pour le 1er problème ce code dans Module1 :

Code:
Option Compare Text 'la casse n'est pas prise en compte

Sub MasqueLignesColonnes(plage As Range, txt1$, txt2$)
Dim cel As Range
txt1 = "*" & txt1 & "*"
txt2 = "*" & txt2 & "*"
Application.ScreenUpdating = False
plage.Rows.EntireRow.Hidden = True
plage.Columns.EntireColumn.Hidden = True
For Each cel In plage
  If cel.Text Like txt1 Or cel.Text Like txt2 Then
    cel.MergeArea.EntireRow.Hidden = False
    cel.MergeArea.EntireColumn.Hidden = False
  End If
Next
End Sub
Elle se lance par activation de la feuille Récapitulatif brancardage :

Code:
Private Sub Worksheet_Activate()
MasqueLignesColonnes [C2:CV83], "Ergothérapie (brancardé)", "Kinésithérapie (brancardé)"
End Sub
Fichier (1).

A+
 

Pièces jointes

  • planning patient (1).zip
    238.6 KB · Affichages: 33
Dernière édition:

job75

XLDnaute Barbatruc
Re : Macro automatique masquant lignes et colonnes selon le contenu d'une cellule.

Re,

Pour le 2ème problème (Récapitulatif Planning) ces macros :

Code:
Sub MasqueColonnes(plage As Range)
Dim cel As Range
Application.ScreenUpdating = False
plage.Columns.EntireColumn.Hidden = False
For Each cel In plage
  If cel.MergeArea(1, 1).Text = "" Then _
    cel.MergeArea.EntireColumn.Hidden = True
Next
End Sub
Code:
Private Sub Worksheet_Activate()
MasqueColonnes [C2:CV2]
End Sub
Fichier (2).

A+
 

Pièces jointes

  • planning patient (2).zip
    245.3 KB · Affichages: 33

Discussions similaires

Statistiques des forums

Discussions
312 316
Messages
2 087 172
Membres
103 490
dernier inscrit
zatougraf