XL 2016 Génération automatique de planning

halecs93

XLDnaute Impliqué
Bonjour à toutes et à tous....

Je reviens vers vous et vos compétences afin de fignoler mon fichier.

J'ai une macro nommée deb, qui permet de générer automatiquement des plannings pour l'ensemble des personnes listées sur l'onglet "Planning".

Je cherchais un moyen, via Private Sub Worksheet_BeforeDoubleClick sur cette feuille, afin de pouvoir générer un seul planning correspondant au nom sur lequel je double-clique...

Alors, merci encore une fois
 

Pièces jointes

  • PLANNINGS - 2024 - test.xlsm
    355 KB · Affichages: 9
Solution
Bonjour,
Rien touche a la feuille Planning.
Pour la colonne qui n'a pas de calcul a des plages horaires de definies?
Ce probleme est apparu apres un ajout ou une suppression?

Je viens de me rappeler ce qu'il faut pour reduire le temps d'execution.
J'ai des essais et je n'ai pas de calcul manquant!

halecs93

XLDnaute Impliqué
re....

J'ai modifié le code correspondant à la feuille "Planning".

Cela fonctionne, j'arrive à générer un seul planning en cliquant sur un nom.

Mon souci et que si j'efface des données (feuille planning), elle ne s'efface pas lorsque je clique sur un nom pour générer. Seuls des ajouts sont pris en compte.
 

Pièces jointes

  • PLANNINGS - 2024 - test.xlsm
    571.9 KB · Affichages: 9

Oneida

XLDnaute Impliqué
Re,
Si la feuille de nom est deja creee, c'est normal puisque vous n'effacez rien et en plus pas simple car il faudrait verifier que ce qui est ecrit dans la feuille nom existe ou pas dans la feuille PLANNING.
Pour moi le plus simple est de supprimer la feuille du nom pour qu'elle soit recreee a vide
 

halecs93

XLDnaute Impliqué
Re,
Si la feuille de nom est deja creee, c'est normal puisque vous n'effacez rien et en plus pas simple car il faudrait verifier que ce qui est ecrit dans la feuille nom existe ou pas dans la feuille PLANNING.
Pour moi le plus simple est de supprimer la feuille du nom pour qu'elle soit recreee a vide
Oui...je me penchais sur cette piste.... un évènement qui supprime la feuille et en créé une nouvelle.... mais je bloque. Du coup, je supprime manuellement la feuille avant d'en générer une autre. Pas super ergonomique
 

Oneida

XLDnaute Impliqué
Re,
De touts facon vous avez le meme probleme si vous mettez a jour avec le bouton Gerer les Planning
Perso, je supprimerai la feuille du Nom au debut de la subroutine remplir en gardant la ligne qui appelle la fonction Function fexist(Nom) pour la creer. Cette fonction peut etre modifiee en laissant que la partie de creation
 

halecs93

XLDnaute Impliqué
Re,
De touts facon vous avez le meme probleme si vous mettez a jour avec le bouton Gerer les Planning
Perso, je supprimerai la feuille du Nom au debut de la subroutine remplir en gardant la ligne qui appelle la fonction Function fexist(Nom) pour la creer. Cette fonction peut etre modifiee en laissant que la partie de creation
J'ai fait des tests...mais je n'y arrive pas
 

halecs93

XLDnaute Impliqué
Bonjour,
Normalement c'est ok pour Gestion Planning Global et par personne en doubleclick
Quand meme un peu long pour le Global
Bonjour et merci....pour votre implication et ce travail...de longue haleine ;)

J'ai commencé à tester. Alors, en effet la génération de l'ensemble des plannings est longue, mais ça n'a pas vocation à être fait souvent. Et puis avec tous ces calculs, normal, non ;)

En revanche, si je peux me permettre.... je ne sais pas ce qui a été modifié dans les mises en forme conditionnelle....mais je me retrouve parfois avec des cellule qui se colorent en vert.... et je me l'explique encore moins.... sur le dernier planning généré.... le dernier calcul ne se fait pas....

Quoi qu'il en soit...un grand merci

1705493726446.png
 

Oneida

XLDnaute Impliqué
Bonjour,
Rien touche a la feuille Planning.
Pour la colonne qui n'a pas de calcul a des plages horaires de definies?
Ce probleme est apparu apres un ajout ou une suppression?

Je viens de me rappeler ce qu'il faut pour reduire le temps d'execution.
J'ai des essais et je n'ai pas de calcul manquant!
 

Pièces jointes

  • PLANNINGS - 2024 - test_18.xlsm
    559.4 KB · Affichages: 10
Dernière édition:

halecs93

XLDnaute Impliqué
Bonjour,
Rien touche a la feuille Planning.
Pour la colonne qui n'a pas de calcul a des plages horaires de definies?
Ce probleme est apparu apres un ajout ou une suppression?

Je viens de me rappeler ce qu'il faut pour reduire le temps d'execution.
J'ai des essais et je n'ai pas de calcul manquant!
Bonjour,

En effet, le dernier calcul ne se faisait pas lors d'un ajout ou d'une suppression. Mais il semble que sur le fichier test_18 cela ne se produit plus.

Pour mon information, comment avez-vous procédé pour réduire ce temps de calcul ?

Grand merci
 

Oneida

XLDnaute Impliqué
Re,
C'est de la magie, suffit d'avoir le bon fluide ou le bon code


Code:
'ecriture plus rapide cellule feuille
' Ajouter au début du code :
  Dim calcul As XlCalculation
  calcul = Application.Calculation        'recupere type de calcul Excel
  Application.Calculation = xlCalculationManual        'Mide en calcul manuel
  Application.ScreenUpdating = False

  ' suite du code
  '....

' Ajouter à la fin du code :
  Application.Calculation = calcul        'remise du calcul Excel d'origine
Application.ScreenUpdating = False[/CODE]
 

halecs93

XLDnaute Impliqué
Re,
C'est de la magie, suffit d'avoir le bon fluide ou le bon code


Code:
'ecriture plus rapide cellule feuille
' Ajouter au début du code :
  Dim calcul As XlCalculation
  calcul = Application.Calculation        'recupere type de calcul Excel
  Application.Calculation = xlCalculationManual        'Mide en calcul manuel
  Application.ScreenUpdating = False

  ' suite du code
  '....

' Ajouter à la fin du code :
  Application.Calculation = calcul        'remise du calcul Excel d'origine
Application.ScreenUpdating = False[/CODE]
Merci.

De mon côté j'ai ajouté de quoi gérer les erreurs au niveau de la macro TraitementFeuilleAgent

VB:
Sub TraitementFeuilleAgent(NomAgent As String)
    On Error Resume Next
    Application.DisplayAlerts = False
    Worksheets(NomAgent).Delete
    Application.DisplayAlerts = True

    ' Appelle la procédure principale pour traiter la feuille de l'agent spécifié
    Dim calcul As XlCalculation
    calcul = Application.Calculation
    Application.Calculation = xlCalculationManual
    deb NomAgent
    Application.Calculation = calcul
    On Error Resume Next
End Sub
 

Discussions similaires

Réponses
24
Affichages
419
Réponses
7
Affichages
412

Statistiques des forums

Discussions
312 210
Messages
2 086 277
Membres
103 170
dernier inscrit
HASSEN@45