Effacement cellule après changement de mois.

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 !

metallica91

XLDnaute Nouveau
Bonjour à toutes et tous et meilleurs voeux,

J'en appelle à votre aide pour un petit soucis. J'ai fais un tableau simple de gestion de congés pour notre équipe de travail, ou il y a juste a mettre une croix pour savoir qui est en vacances.
Mon problème est que lorsque je change de mois, les croix posées dans le tableau du mois précédent ne s'effacent pas !

J'aimerai donc savoir comment faire pour qu'elles s'effacent ou alors comment faire pour qu'elles restent en mémoire (un peu comme une sorte d'archive) et que je puisse y revenir plus tard.

par avance merci a tous
 

Pièces jointes

Re : Effacement cellule après changement de mois.

Bonsoir à tous

David84
Oui mais comment tu archives les mois précédents?
Ou si tu veux revoir les précédentes croix saisis, comment faire ?
J'aimerai donc savoir comment faire pour qu'elles s'effacent ou alors comment faire pour qu'elles restent en mémoire (un peu comme une sorte d'archive) et que je puisse y revenir plus tard.

J'étais parti sur nommer les tableau plus
Code:
Vals=Split[TABLEAU.Address,",")
Puis sur
Code:
For i=0 To Ubound(Vals)
Range(Vals(i))="X"
Next i

Mais je bloque pour gérer la réinjection des anciennes valeurs si on réaffiche un mois déjà saisi.

EDITION: Je viens de penser à ceci:
On peut créer douze Arrays (un par mois)
Mais ensuite il restera le problème des années.
 
Dernière édition:
Re : Effacement cellule après changement de mois.

Bonjour metallica91, salut David, JM, JC 🙂 avec tous mes voeux pour 2012,

Voici une solution VBA qui mémorise chaque tableau dans un nom défini.

Dans ThisWorkbook :

Code:
Private Sub Workbook_Open()
mem = Feuil1.[B5] & "_" & Feuil1.[BQ25] 'Feuil1 => CodeName
End Sub
Dans Module1, à affecter aux 2 listes déroulantes :

Code:
Public mem As String 'mémorise la variable

Sub Memorise()
With Feuil1 'CodeName
  ThisWorkbook.Names.Add mem, .[B8:AF21].Value 'nom défini
  .[B8:AF21].ClearContents
  mem = .[B5] & "_" & .[BQ25]
  Application.ScreenUpdating = False
  On Error Resume Next
  .[B8:AF21] = Evaluate(mem)
  'suppression des valeurs d'erreur
  .[B8:AF21].SpecialCells(xlCellTypeConstants, 16).ClearContents
End With
End Sub
Evidemment c'est assez lourd car il y aura beaucoup de noms définis...

Fichier joint.

Edit : On Error Resume Next c'est par sécurité.

Au cas où il n'y aurait pas de valeurs d'erreurs (des X partout).

A+
 

Pièces jointes

Dernière édition:
Re : Effacement cellule après changement de mois.

Bonjour, salut à vous tous,

Avant tout, bonne et heureuse année !

En pièce jointe, une approche assez simpliste, mais très aisée à mettre en place, sur base de menu Grouper et créer un plan et uniquement par formules.
 

Pièces jointes

Re : Effacement cellule après changement de mois.

Bonjour hoerwind 🙂

Surtout pour te souhaiter à toi aussi une bonne année.

Ta solution sans VBA est excellente mais un peu éloignée du problème tel qu'il est posé : un seul tableau commandé par 2 listes déroulantes.

J'ai mis un Like au post #1 car je trouve que c'est un joli problème.

Très simple mais qui oblige à se creuser les méninges.

A+
 
Re : Effacement cellule après changement de mois.

Salut Job,

Tous les chemins mènent à Rome !

L'important, me semble-t-il, n'est pas de répondre textuellement à une question, mais bien de proposer une solution qui rejoint le but de la question, même si le chemin est différent de celui que le demandeur préconise.

Pourquoi faire compliqué quand il y a moyen de faire simple par une méthode que tout un chacun peut comprendre, donc maitriser ?
 
Re : Effacement cellule après changement de mois.

Re,

Bien d'accord hoerwind, ça vaut toujours le coup de donner le choix, surtout sans VBA.

J'en profite pour joindre le fichier (2).

La macro n'avait pas été affectée à la 2ème liste déroulante 😕

A+
 

Pièces jointes

Re : Effacement cellule après changement de mois.

Bonjour le fil,

Ce qui suit est un peu du pinaillage.

On aura bien sûr remarqué que les valeurs de chaque tableau sont stockées dans une matrice 14 x 31 (434 éléments).

Pour alléger la mémoire, on peut stocker seulement les valeurs "utiles".

En contrepartie il faut mémoriser la plage concernée :

Code:
Sub Memorise()
Dim a As Range, plage As Range
Application.ScreenUpdating = False
On Error Resume Next
With Feuil1 'CodeName
  For Each a In .[B8:AF21].SpecialCells(xlCellTypeConstants).Areas
    Set plage = .Range(a, IIf(plage Is Nothing, a, plage))
  Next
  ThisWorkbook.Names.Add mem, plage.Value 'nom défini
  ThisWorkbook.Names.Add mem & "_Z", plage 'nom défini
  .[B8:AF21].ClearContents
  mem = .[B5] & "_" & .[BQ25]
  Evaluate(mem & "_Z") = Evaluate(mem) 'restitution
  'suppression des valeurs d'erreur
  .[B8:AF21].SpecialCells(xlCellTypeConstants, 16).ClearContents
End With
End Sub
Fichier (3).

A+
 

Pièces jointes

Re : Effacement cellule après changement de mois.

Merci a tous pour vos réponses.
Job75 tu as exactement fait ce que je voulais !
Maintenant mon problème c'est que je ne veux pas prendre "bêtement" ton fichier sans n'y rien comprendre.
Je ne voudrais pas trop abuser , mais pourrais tu me dire comment faire ta macro (ou l’écrire, dans quelle cellule ....) et m'expliquer un peu la macro. Car si je veux modifier le tableau que je puisse le faire seul sans venir vous enquiquiner.😛

Par avance merci
 
Re : Effacement cellule après changement de mois.

Re,

Comme je l'ai dit au post #5 les 2 macros sont à placer dans ThisWorkbook et Module1 (Alt+F11).

Si l'on modifie le tableau et/ou les listes déroulantes, il suffit dans les 2 macros d'adapter ces plages et cellules :

...[B8:AF21]....[B5]...[BQ25]...

A+
 
Re : Effacement cellule après changement de mois.

Re,

Je viens de tester avec des X jusqu'à la ligne 300 et ça fonctionne...

Faut que je regarde ce qu'il se passe sur l'autre fil...

Edit : après analyse, sur Excel 2003, un nom défini peut stocker au maximum un tableau de 65536 lignes par 256 colonnes.

Donc comme une feuille de calcul.

A+
 
Dernière édition:
- 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
8
Affichages
977
Réponses
8
Affichages
1 K
Retour