Une macro pour les congés

re

la durée n'est pas définie au départ et ça peut s'arrêter n'importe quand

Je pensais créer les feuilles en janvier de chaque année mais comment mettre une formule pour la cellule M8 si l'on ne connait pas la date de fin d'un contrat.

il me faudrait un exemple concret là pour adapter le code et surtout savoir comment excel peut voir qu'un contrat est en cours

Bonjour

Une étude (grandement perfectible)

Bonjour à vous deux et merci de vous impliquer autant.

A Dan : j'ai l'impression que la durée des contrats n'a pas d'importance pour le calcul qu'on veut faire puisque on ajoute 2.5 en M8 de chaque feuille jusqu'à la feuille mai (+1) avec les contraintes citées dans les posts précédents :

La règle est que le 1er mois travaillé dans le contrat ET SI j'ai commencé le 1er jour du mois Alors M8 = 2.5 et le cumul se fait sur les feuilles suivante jusqu'en mai.

Ensuiteles années suivante commenceront avec sur les feuilles de juin : m8 = 2.5

A Banzai64 J'ai bien lu tes consignes et j'ai hâte de tenter, mais j'ai une boite de dialogue qui s'ouvre "membre de méthode ou de données introuvable". J'ai cliqué sur feuille de base, sans succès. Est ce que je manipule mal le fichier, est ce que je dois l'appliquer à une des feuilles de base qui se trouve sur mon pc ou est-ce qu'il manque un élément ?

A bientôt

Bonjour

Je ne sais pas trop pourquoi ce message

A tout hasard vérifies dans les références si tu as ce cas ?

https://forum.excel-pratique.com/post123848.html?hilit=chocoloustic#p123769

Si oui il suffit de décocher les manquants

A voir aussi

https://forum.excel-pratique.com/excel/ajouter-un-controle-calendrier-dans-la-boite-a-outils-t23270.html#p131738

A suivre

re,

j'ai l'impression que la durée des contrats n'a pas d'importance pour le calcul qu'on veut faire puisque on ajoute 2.5 en M8 de chaque feuille jusqu'à la feuille mai (+1) avec les contraintes citées dans les posts précédents :

Pas si évident que cela. Si l'on considère que les 12 feuilles sont créées en janvier et que par exemple un contrat commence en septembre pour finir en février de l'année suivante. Comment vas-tu dire au code que M8 = 2.5 (par exemple) en septembre (+2.5 cumulé) jusque décembre puisque tu ne sais pas à la création des feuilles quand tu commences un contrat. ensuite lors de la création des 12 feuilles de l'année suivante, il faudra reprendre le CP de décembre et faire l'ajout jusque février.

Il y a deux codes à faire :

  • Création des feuilles (par exemple sur deux ans)
  • à chaque contrat, compléter toutes les M8 de chaque mois mais jusqu'où ?? (puisque contrat durée indéterminée)

Je vois que Banzai t'a proposé quelque chose, si ok merci de me dire afin que je ne travaille pas inutilement pour trouver une solution.

Amicalement

Hello !

A Banzai64 Dans les liens que tu as donné, je n'ai rien trouvé. Je continue à chercher sur le web.

sinon, si j'exécute ton code sur une de mes feuille de base (ou sur 12 feuilles ?) est ce que je peux obtenir ta solution ?

A Dan

Comment vas-tu dire au code que M8 = 2.5 (par exemple) en septembre (+2.5 cumulé) jusque décembre puisque tu ne sais pas à la création des feuilles quand tu commences un contrat. ensuite lors de la création des 12 feuilles de l'année suivante, il faudra reprendre le CP de décembre et faire l'ajout jusque février.

C'est pour ça que j'ai créé ma 1ère macro :

Le nom du mois est en G4 et l'année en I4.

Une macro liée à G4 et I4 donne le nom de la feuille de calcul ; exemple : G4=mars I4=2011 (nom de la feuille : mars 2011)

C'est important parce que je travaille 1,2,3 ou 4 ans avec le même employeur et je copie les feuilles des mois pour commencer l'année suivante et la cellule I4 me permet de ne pas avoir 2 fois le même nom de feuille.

[b]ET

D'abord j'ai copié la feuille base 12 fois.

1) dans chacune des 12 feuilles obtenues j'ai rentré le nom du mois dans la cellule G4(fusionnée !...)

2) puis j'ai sélectionné toutes les feuilles (sauf la base) et j'ai rentré le mot "base" en I4.

Ensuite j'ai exécuté la macro qui nomme mes nouveaux onglets.

J'ai mon classeur de base des 12 feuilles (+la base)

Quand nouveau contrat je fais une copie des 12 feuilles. Je sélectionne les 12 1ères et en I4 je rentre l'année.

j'exécute la macro. Mes feuilles prennent instantanément leurs nouveaux noms (janvier 2011, février 201, etc...)

Quand on passe à une autre année, je copie de nouveau les 12 feuilles qui se nomment janvier base, février base etc. Je place ces copies après les 12 feuilles qui comporte une année. Je n'ai plus qu'à sélectionner mes 12 nouvelles feuilles, pour entrer la nouvelle année en I4, + exécution de la macro.

J'ai donc toujours, à la fin du classeur les 12 feuilles base (+la base qui représente pour moi un secours) qui me servent à ajouter les feuilles vierges supplémentaires sur lesquelles je travaille.

Avec ce système, je rajoute des feuilles qui s'appellent janvier base, février base, etc. En sélectionnant ces nouvelles copies, j'entre l'année en I4 et seul le nom de la feuille a changé.

J'avais pensé qu'on n'était pas obligé de partir du nom des feuilles mais de la cellule M8 qui se trouve sur chacune d'elles.

ca c'est pour la règle générale.

Exception faite[b] du mois de juin (qui repart à 2.5) et de la [b]1ère feuille du classeur qui peut être n'importe quel mois)

Exemple si je commence en mars, je supprimerai janvier et février en début de classeur, sachant que j'ai toujours mes 12 mois de base à la fin du classeur...

Ne pas oublier que juin peut aussi être la première feuille du classeur

Bien évidemment dès qu'une solution fonctionne, je vous préviens tous.

Encore merci

Bonjour

Cela m'intrigue

mais j'ai une boite de dialogue qui s'ouvre "membre de méthode ou de données introuvable".

du style

erreur de compilation

A ce moment tu fais

Menu : Exécution ---> Réinitialiser

ensuite

Menu: Outils ---> Références

ET vérifies si tu n'as pas des références marquées "Manquant"

reference manquante

Il suffit de décocher ces références

Si ce n'est pas ça, moi je ne sais plus

Si quelqu'un a une idée ? merci

A suivre

La boite de dialogue est bien celle que tu montres.

Rien de manquant.

Je ne sais pas si c'est important, mais à l'ouverture de la boite de dialogue qui comporte le message d'erreur, dans ton code, sous la ligne

With Sheets("Initialisation")

à la ligne :

Me.DTPicker1 = .Range("B1")

la partie : .DTPicker1 =

est surlignée en bleu .

Je suis sous WinXP avec XL2003

A bientôt

Re,

La création des feuilles ne pose pas de souci j'avais déjà fait le code.

C'est la gestion de M8 qui est le souci surtout quand un contrat chevauche d'une année à l'autre. si le contrat était fait avec une durée déterminée cela serait plus simple.

Bonjour

Moi aussi Win Xp et Xl 2003

Dans le code VBA quand tu as l'userform affiché

Menu Outils ----> Contrôles supplémentaires

Vérifies si tu as le contrôle "Microsoft Date and Time Picker ...." de coché

controle dtpicker

Dans le useform

menu outils

contrôles supplémentaires est grisé, je ne peux pas faire apparaître la boite de dialogue.

A+

Bonjour

As tu l'userform affiché ?

nyre

oui je l'ai et pour cette feuille "nouveau contrat".

là "contrôles supplémentaires" est accessible.

"Microsoft Date and Time Picker Control 6.0 n'était pas coché, je l'ai fait et j'ai toujours le même message d'erreur...

Est-ce qu'on progresse ?

Bonjour,

Je reviens donner des nouvelles : problème DTPicker a l'air résolu. En fouillant dans le projet VBA j'ai entré des dates dans la gestion du contrat et les feuilles du classeur sont apparues.

J'ai essayé plusieurs cas différents et ça fonctionne exactement comme je le souhaitais (sauf que lors de ma demande, je n'avais pas pensé à un dernier mois travaillé incomplet, mais ça n'est pas très handicapant).

En faisant des essais, effectivement, je me suis aperçue qu'on pouvait automatiser d'autres choses, mais ça fera sans doute l'objet d'un nouveau post.

Un grand merci à Dan qui a consacré beaucoup de temps à m'aider à décanter le problème et n'avait plus que le renouvellement des années à régler.

Un grand merci à banzai64 qui a réussi à résoudre mon énigme.

Maintenant, je vais détailler le code pour essayer de progresser dans les macros excel (et ça prendra du temps...)

Peut-être à bientôt.

Encore un GRAND MERCI

Rechercher des sujets similaires à "macro conges"