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

Planning glissant

  • Initiateur de la discussion Initiateur de la discussion mmaatella
  • Date de début Date de début

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 !

M

mmaatella

Guest
Forum Bonjour,

N'ayant pas trouvé ce que je cherchais dans les discussions précédentes et étant débutant en macros, je me permets de poster ma problématique :

J'ai un tableau qui permet d'affecter à des ressources des heures de travail par semaine. Ce planning s'étale sur 2ans et a les entêtes mois ci-dessous (se mettent automatiquement à jour) :
M-2, M-1, M, M+1, M+2,....

Je voudrai que les données correspondantes suivent le glissement des entêtes, càd : pour le mois prochain, supprimer les données du M-2, les remplacer par celles du M-1 et ainsi de suite...

J'espère que la pj illustrera mieux mon propos.

D'avance merci pour votre aide !!
 

Pièces jointes

Re : Planning glissant

Bonjour Mmaatella et bienvenue 🙂,
Techniquement, il me parait dangereux d'avoir d'un côté des entêtes en formules basées sur AUJOURDHUI et de l'autre des données en dur 😱...
Une solution serait de se baser sur une date en dur, et par macro, modifier cette date sur demande, supprimer le premier mois et prolonger le planning d'un mois 😉.
A te lire 😛.
Bon WE 😎
 
Re : Planning glissant

Merci pour ta réponse JNP.

Est ce qu'on pourrait techniquement éviter le lancement manuelle de la macro pour que la mise à jour se fasse automatiquement en fonction de la date du jour ? (par exemple dès qu'on ouvre le fichier la macro se lance toute seule...comme une grande)

Sinon l'idée de supprimer le premier mois et prolonger le planning d'un mois est exactement ce que je veux faire.... mais comment ??
 
Re : Planning glissant

Re 🙂, Oui, c'est faisable puisque l'on va pouvoir faire un double test à l'ouverture du fichier : quelle est la date d'aujourd'hui et le planning a-t'il déjà été glissé.
Dans un premier temps, utilise l'enregistreur de macro pour récupérer le code de la suppression des colonnes devant et la copie des colonnes derrières, on verra après comment améliorer le code 😉.
N'oublie pas avant de faire référence à une cellule fixe pour les dates. Logiquement, les formules devraient glisser, et il n'y aura que la première à modifier via la macro.
Bon courage 😎
 
Re : Planning glissant

Merci pour ta réactivité !

J'ai bien générer le code : supprimer les données du premier mois + couper/coller le reste des données et les avancer d'un mois (cf. pj).
J'ai aussi mis un mois fixe au départ correspondant au M-2 et glissé le reste des formules.
Par contre je ne sais pas comment intégrer à la macro le "quelle est la date d'aujourd'hui et le planning a-t'il déjà été glissé" pour donner de la cohérence aux entêtes...
 

Pièces jointes

Dernière modification par un modérateur:
Re : Planning glissant

Re 🙂,
Quelque chose comme ceci, peut-être 😉...
Code:
If Now() - Range("C4") > 30 Then
Range("C4") = DateAdd("m", 1, Range("C4"))
Range("C8:DC26").Value = Range("H8:DH26").Value
End If
Bon courage 😎
 
Re : Planning glissant

Merci beaucoup JNP ! ça marche !

J'ai appelé cette macro Decaler() pour pouvoir la lancer à l'ouverture du fichier en l'insérant dans ThisWorkbook (avec l'option Workbook à la place de général dans le menu déroulant) :
Private Sub Workbook_Open()
Feuil1.Decaler()
End Sub

En effet, je dois spécifier que cette macro se situe bien dans la feuil1 car j'ai plusieurs feuilles dans mon fichier d'origine.... ça m'envoi un beug... (normal car je ne suis pas familier avec la syntaxe VBA)

D'avance merci pour ton aide (promis c'est la dernière question)
 
Re : Planning glissant

Re 🙂,
Il faut que tu mettes ta sub dans un module (clic droit -> Insertion -> Module dans le VBAProject. Par sécurité, il faut sélectionner la feuil1
Code:
Sub Decaler()
[COLOR=red]Sheets("Feuil1").Select
[/COLOR]If Now() - Range("C4") > 30 Then
Range("C4") = DateAdd("m", 1, Range("C4"))
Range("C8:DC26").Value = Range("H8:DH26").Value
End If
End Sub
et dans ThisWorkbook
Code:
Private Sub Workbook_Open()
Call Decaler
End Sub
Bon courage 😎
 
Re : Planning glissant

Bonjour

peut-être il serait interessant de voir la solution DDGanttProjet qui est proposée dans l'accueil du site? cela te permetrait d'avoir une meilleure vision.
Pour le calcul des ressources, je ne sais pas si ça marche.
 
Re : Planning glissant

Bonjour fnony,

Ce genre de logiciel propose plusieurs fonctionnalités avancées de planification projet que je n'utiliserai surment pas. Adepte du juste besoin (glissement d'un tableau de données en fonction de la date), je pense que Excel fera l'affaire.
 
Re : Planning glissant

Re 🙂
J'ai copié collé ton code et ça m'envoi le même message d'erreur (numero 9) que j'ai eu... apparement lié à la selection de la feuil1... 😕
Y a des baffes qui se perdent 😛...
Je sens que tu vas rougir jusqu'au trognon 😀...
Dans la macro, tu fais référence à Sheets("Sous-traitance"), mais ton onglet se nomme "Sous-traitance " avec un espace après Sous-traitance 😱...
Bon courage 😎
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
16
Affichages
1 K
Réponses
28
Affichages
2 K
T
  • Question Question
Réponses
2
Affichages
1 K
tomtom2021
T
C
Réponses
2
Affichages
1 K
Caylus
C
P
  • Question Question
Réponses
3
Affichages
1 K
poussain
P
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…