Planning - Application.Match et Application.Index

  • Initiateur de la discussion Initiateur de la discussion Regueiro
  • 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 !

Regueiro

XLDnaute Impliqué
Bonsoir le Forum
Dans mon fichier ci-joint, sur la feuille " PLANNING 1"
Lorsque j'appuie sur le bouton 1
La procédure me remplit automatiquement le Planning.
Avec application.Match il me copie les couleurs selon la BDD.
Mais j'ai un problème de décalage.
Merci de votre Aide.

Sub CréerPlanning()
Dim Planning As Range, cell As Range
Dim DateFin As Range, compte&

Set Planning = Range("Planning")
For Each cell In Planning
If Cells(cell.Row, 3).Value <= Cells(4, cell.Column).Value _
And Cells(cell.Row, 5).Value >= Cells(4, cell.Column).Value _
Then
Application.ScreenUpdating = False

'cell.Interior.ColorIndex = 4
p = Application.Match(Cells(cell.Row, 1), Application.Index(Sheets("BDD").[CodeCouleur], , 2), 0)
If IsError(p) Then
Range("CodeCouleur").Offset(, 1).Copy
cell.PasteSpecial (xlPasteFormats)
Application.CutCopyMode = False


End If
End If

Next cell

Application.ScreenUpdating = True

End Sub
 

Pièces jointes

Re : Planning - Application.Match et Application.Index

Bonjour,

J'ai fait, gain : 0.1s Bof...
J'ai sauté les WE, gain : 0.1s re-bof...
J'ai plus gagné en typant tes variables dans DatesMFC

J'ai cru à un classeur vérolé mais j'ai tout copié dans un classeur neuf et peu de changement.
Cette lenteur m'étonne mais bon, là je suis à peu près sûr que ce n'est que la macro et pas autre chose en arrière plan. A moins d'un truc que personne n'ai vu encore.

Je crois qu'il faut plutôt que tu changes la méthode et ne plus balayer toutes les cellules.
Calculer l'offset de la date début par rapport à ta 1ère date, faire un resize du nombre de jours et appliquer la couleur sur la plage. Ca ne te fera plus qu'une boucle par ligne, soit 4 au lieu de 200.
Et pareil pour DatesMFC, tu peux boucler sur les semaines (for ... to ... step 7).
Traiter en bloc les jours de la semaine, puis le WE. Tu n'as même pas tester le jour, la position te suffit.

Je te met quand même le fichier pour le dict des couleurs.
Et je réitère ma question : pourquoi n'essaies-tu pas d'en faire le maximum par des MFC classiques ? Pourquoi ce choix par macro ?
Là ça serait presque instantané. Parce que là tu n'as que 4 lignes mais quand tu en auras 200...

eric
 

Pièces jointes

Re : Planning - Application.Match et Application.Index

Quelle version ? et 23s pour 4 ligne c'est toujours beaucoup.

J'aurais besoin d'aide.
Il me semblait t'avoir indiqué une autre façon de faire mais comme ce que j'ai écrit n'a pas trop l'air de t'intéresser je vais m'arrêter là.
Même pas une réponse à la seule question posée pour la 2nde fois.
A croire que tu n'as même pas lu...

eric
 
Re : Planning - Application.Match et Application.Index

Qu'elle version ? Excel 2010
Je te demandais si c'était avec le fichier que j'ai déposé à 20:15
Je n'aime pas les MFC.
Mouais... Le mieux c'est quand même d'apprendre à se servir des fonctionnalités d'excel que de vouloir régler tout ce qui diffère d'une addition par une macro.
Je vais te transmettre mon fichier complet
Ca sera pour les autres. J'ai passé 1h sur ton fichier sans aucun retour ni commentaires de ta part, je m'arrête donc là.
Je ne comprend pas trop car tu sembles participer au forum et répondre aux demandeurs, tu devrais savoir ce que c'est que l'impression d'avoir bossé pour rien.
eric
 
Dernière édition:
Re : Planning - Application.Match et Application.Index

Pardon petit problème
Re.
Voilà mon fichier complet.
1. Lance le Planning.
Ce module me créer le Planning en fonction de la date Min et Max voir sur la Feuille "Date"
Le Planning est actuellement sur une durée très courte, il va donc s'allonger
et je vois pas comment appliquer les MFC sur une zone variable.

2. Une fois le Planning crée, je lance Gantt.

Concernant ton fichier, je l'ai tester, comme indiquer dans Post.
il fait 23 secondes.
Lorsque j'enlève le Call MFC, il s'exécute en 9 secondes ?

Mon fichier ci-Joint, s'exécutais très rapidement, mais depuis quelques jours,
Il faut env. 1 minutes pour lancer "Lance Planning"
Je l'ai tester au boulot, la macro fonctionne très bien, env. 3 à 4 secondes.

Je te remercie pour ton code avec le Dictionary et le Weekday.
Je ne voulais pas t'offenser.
Tu n'as pas perdu ton temps, car je vais pouvoir utiliser ton code pour la suite de
mon programme.
MERCIIIII
A+
PS : Ne tient pas compte de l'USF.
C'est un essai pour regrouper mes commandes pour le lancement
des 4 boutons.
 

Pièces jointes

- 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
5
Affichages
911
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
4
Affichages
733
Retour