Supression de contenue + mise en forme en fonction d'une cellule

TgR

XLDnaute Junior
Bonjour,

Avec l'aide de quelques personnes, je suis finalement arrivé à réaliser le tableau que je voulais. Après l'avoir présenté, une demande m'a été faite et je ne suis pas en mesure de pouvoir la réaliser. Voilà donc pourquoi je me tourne vers vous.

Le tableau en pièce jointe possède une macro dans le module 2.

La première boucle vérifie sur l'onglet actif qu'aucune date de sortie n'est programmée (colonne H) et qu'un patient est bien enregistré dans la chambre (colonne C). Si ces deux conditions sont remplies, la ligne du patient (colonne C à F) est copiée puis collée au même endroit dans l'onglet suivant.

La deuxième boucle regarde, pour chaque patient remplissant les conditions citées précédemment, le chiffre située en fin de mois (pour Janvier c'est AO, mais cela change en fonction des mois), le copie, l'incrémente de 1 et le colle sur la ligne correspondante de l'onglet suivant. Même travaille (sans l'incrémentation) si un P est présent dans la cellule juste en dessous.


Ce que je souhaiterais maintenant :

J'aimerais que lorsqu'une date de sortie est ajoutée (colonne H), toutes mes cases suivants cette date soit effacées.

Un exemple :

Je copie madame x du mois de Janvier au Mois de février car elle n'a pour le moment aucune date de sortie de prévue. Grâce à la macro, le premier chiffre commençant en colonne c est ajoutée en ayant été incrémenté de 1 et la sélection est étendue jusqu'à la fin du mois. Aujourd'hui je sais que madame x sortira le 19 février, je rentre donc la date dans la colonne H.

La il faudrait que les cellules allant du 20 février au 28 s'efface (départ en K3)

En espérant avoir été clair et que cela soit réalisable. D'avance merci.

TgR
 

Pièces jointes

  • HR OCCUPATION MENSUELLE CHAMBRES 2013 JANVIER - AVEC MACRO.zip
    67.2 KB · Affichages: 23
  • HR OCCUPATION MENSUELLE CHAMBRES 2013 JANVIER - AVEC MACRO.zip
    67.2 KB · Affichages: 26
  • HR OCCUPATION MENSUELLE CHAMBRES 2013 JANVIER - AVEC MACRO.zip
    67.2 KB · Affichages: 23

Grand Chaman Excel

XLDnaute Impliqué
Re : Supression de contenue + mise en forme en fonction d'une cellule

Bonjour TgR,
Si j'ai bien compris, ceci devrait fonctionner :

VB:
Sub EffacerDateSortie()
   Dim rg As Range, c As Range

   With ActiveSheet
      Set rg = .Range("H4:H" & .Cells(.Rows.Count, "H").End(xlUp).Row)
   End With

   For Each c In rg
      If IsDate(c) Then
         c.Offset(0, 3 + Day(c)).Resize(1, 31).ClearContents
      End If
   Next c

End Sub

Vous pouvez ajouter un bouton sur chacune de vos feuilles pour appeler cette fonction ou encore utiliser une procédure événementielle Worksheet_Change sur chacune de vous feuilles pour appeler cette macro dès qu'une valeur en colonne H est changée.

A+
 

TgR

XLDnaute Junior
Re : Supression de contenue + mise en forme en fonction d'une cellule

Bonjour,

Ton code marche super bien, seulement les P situés en dessous ne s'effacent pas ! J'essaye de reproduire le même code et vois si j'y arrive en attendant une éventuelle réponse.


Merci !


TgR
 
Dernière édition:

TgR

XLDnaute Junior
Re : Supression de contenue + mise en forme en fonction d'une cellule

J'ai trouvé !! Cette même boucle en changeant le offset et en le mettant à 1 au lieu de 0.

c.Offset(1, 3 + Day(c)).Resize(1, 31).ClearContents

Merci encore Grand Chaman Excel
 

Discussions similaires