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...
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!
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.
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
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
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
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
Re,
C'est peu plus complexe qui ca en a l'air avec votre programmation.
Doubleclick sur un nom c'est fait mais pour mise a jour de tous les noms sur le plan general ca demande reflexion
Je reprends demain matin
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....
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,
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!
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
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
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