XL 2013 VBA - Amélioration d'une macro

Arnaud81

XLDnaute Junior
Bonjour à tous,

J'ai créé la macro jointe au fur et à mesure des besoins.

En gros, j'ai une page de données sources avec des ateliers, des dates, des participants...

A partir de là, je complète un onglet par date, par intervenants et par thème, ce qui me permet de faire juste un copier coller des infos dont j'ai besoin.

Cependant, à force d'ajouter des macros et voulant respecter un ordre donné pour que toutes les fonctionnalités s'applique dans un ordre bien précis, j'ai utilisé la commande Excelrun et je sens que cela alourdi ma macro de façon drastique...

Une idée pour améliorer le tout ?

Merci d'avance
 

Pièces jointes

  • Macro - Planification Ateliers V2.xlsm
    949.2 KB · Affichages: 25

vgendron

XLDnaute Barbatruc
Hello

effectivement, il y a surement moyen de simplifier et accelerer..
déjà..
pourquoi défusionner si c'est pour faire un clear dans la macro vide ?
VB:
Sub vide()

Application.ScreenUpdating = False
Sheets(Array("Par intervenants", "Par date", "Par thématique")).Select
Cells.Clear
End Sub
laquelle ne vide QUE la feuille Par Thématique...
si c'est ce qui est attendu; pourquoi sélectionner trois feuilles en meme temps?
ou alors. il faut revoir la macro..
 

vgendron

XLDnaute Barbatruc
Re

Je ne comprend pas comment tu remplis tes feuilles..?
ce bout de code semble ne rien remplir..?
VB:
'par date
For i = 1 To LFin3 'pour chaque heure des HeuresParam
    For j = 1 To Lfin4 'pour chaque ligne du TabDataDates
        If tab3(i, 1) = tab4(j, 6) Then 'si l'heure Param = DatePlanifiée du TabDataDates
            tot1 = tot1 + 1 'incrémente compteur
            For w = 1 To Cfin4 - 1 'pour chaque ligne de TabDataSources
                Cells(tot1, w + 1) = tab4(j, w) 'on met le numéro..
            Next w
        End If
    Next j
Next i

For i = tot1 + 2 To 600
    For w = 1 To Cfin4 - 1
        Cells(tot1 + 1, w + 1) = ""
    Next w
Next i

tot2 = 2

En fait..
pour bien comprendre .. il faudrait que tu expliques
quelles sont tes data d'entrées (le tablo de Données sources je présume)

et ce que tu souhaites en faire
Regarde dans la PJ: Version 3
j'ai créé des TABLES excel à partir de tes tablos
et dans la macro RecopieTabs (que j'ai affectée au bouton Maj)
en 6 lignes de code, je réinitialise les tablo.
j'ai aussi modifié tes différentes zones nommées de la page Param (regarde le gestionnaire de nom)
 

Pièces jointes

  • Macro - Planification Ateliers V3.xlsm
    85.4 KB · Affichages: 21

Arnaud81

XLDnaute Junior
En fait, j'ai ma feuille de données sources ou je rentre une ligne pour chaque participants (je peux donc avoir 10 lignes pour l'atelier 1 si j'ai 10 participants.

L'objectif est d'obtenir :
Un onglet ou le tri est fait au niveau du participant, ainsi je prends directement le bloc d'atelier le concernant et je lui envoi
Un onglet de suivi des ateliers en fonction de la date et l'heure (l'atelier 1 n'est pas forcement le premier planifié chronologiquement)
Un onglet de suivi par thème ou la j'ai les ateliers dans l'ordre (1, 2, 3, ...)

C'est un fichier qui doit être utiliser par le DG qui souhaite avoir qch de lisible d'ou la création des lignes entre chaque atelier sur les onglets cibles, des zones de couleur ou barré en fonction du statut, et qui doit pouvoir être mis à jour si je change une date, un lieu ou que j'ajoute un participant dans la liste...

En fait, le résultat que j'obtiens me convient mais je voulais savoir si au lieu de faire appel à des macros comme je le fais, je ne pouvais pas directement les inclure dans le code de la macro principale.
 

vgendron

XLDnaute Barbatruc
Hello

Voici une Version 4
il me semble que c'est beaucoup plus rapide que ce que tu avais
Regarde le code: j'y ai mis pas mal de commentaires

juste une question: comment détermines tu qu'une ligne est "terminée"?
c'est juste si la date planifiée <aujourd'hui?
 

Pièces jointes

  • Macro - Planification Ateliers V4.xlsm
    100.3 KB · Affichages: 20

Arnaud81

XLDnaute Junior
Bonjour Vgendron,

En effet, ca tourne beaucoup plus vite!! Merci!

Par contre, serait il possible d'ajouter quelques éléments pour que ca reprennne la forme résultat que j'avais dans mon fichier initial ? Le DG aimait bien le rendu... (les blocs encadrés, couleurs si l'atelier est terminé...)

Pour le statut terminé, je l'avais automatisé à l'origine en effet si date du jour >, mais avec plus de 150 ateliers, j'apprends parfois le lendemain que l'atelier ne s'est pas tenu et je dois rectifier manuellement, du coup, je préfère que ce champ reste en manuel et le renseigner dès que j'ai l'info confirmée.

EN tous cas, un grand merci pour ton aide!
 

vgendron

XLDnaute Barbatruc
en fait. je viens de voir..
dans les onglets Par Thématique ou Par Date

dans chaque bloc, il peut y avoir plusieurs lignes mais il n'y a QUE le participant qui change ?
--> je pourrais (devrais) donc merger toutes les colonnes sauf la dernière "Participants" ??

voici ce que ca donne pour l'instant
 

Pièces jointes

  • Macro - Planification Ateliers V5.xlsm
    97.3 KB · Affichages: 20

Statistiques des forums

Discussions
311 733
Messages
2 082 015
Membres
101 867
dernier inscrit
XFPRO