OVH Cloud OVH Cloud

Gestion des congés

4 réponses
Avatar
Pascal Manach
Bonjour,


Je récupère des infos d'un système de gestion des congés.
C'est un fichier excel qui me donne les soldes à une certaine date.
Mais dans ce fichier j'ai aussi les dates de congés prévisionnels qui ne
seront décomptées qu'à la date réelle du calendrier.
En conséquence, chaque personne peut avoir plusieurs ligne correspondant à
ces dates.

Je voudrai à l'aide d'une macro pouvoir comptabliser pour chaque personne le
nbre de jours correspondant et l'isoler dans une cellule.
Puis je souhaiterai supprimer toutes les lignes correspondant à chaque
personne tout en conservant la dernière(donc le solde récupéré précédemment
devrait y être.

Exemple du fichier à sa réception (pour une personne)
Le N° individuel est la référence(520657)
Date Début Date Fin Nbr Jours CP légaux CP
Autres
520657 CPJ A 16/04/04 16/04/04 1 8 6
520657 CPJ P 23/04/04 23/04/04 1 8 6
520657 CPJ P 30/04/04 12/05/04 9 8 6
520657 CPJ A 24/05/04 28/05/04 5 8 6



Les colonnes CP légaux et CP autres ont la même valeur car il s'agit du
solde avant le prévisionnel de l'ensemble des lignes présentes ( ces valeurs
n'ont pas à être rajoutées).
Ce que je souhaiterai en final pour illuster mon propos c'est çà:

Nbre jours CP légaux CP autres
520657 CPJ 16 8 6


Tout en conservant les données des autres colonnes.


Merci beaucoup pour votre aide

4 réponses

Avatar
E KERGRESSE
Salut Pascal,

Est ce qu'un filtre automatique et un sous-total sur la colonne Nbr Jours ne
suffiraient pas ?

Pour mettre en euvre le sous-total, tu mets d'abord le filtre sur 520657
(par exemple) et tu mets le sous-total (avec le bouton comme pour une somme)
dans la première cellule vide dans la colonne Nbr Jours.

Tu corriges les coordonnées dans la formule du sous toital de telle manière
à prendre en compte toutes les cellules. Je m'explique : Le titre est en E1
et la dernière ligne de ton tableau est en ligne 30 par exemple, logiquement
tu as mis ta fonction sous total dans la cellule E31. Tu modifies les
coordonnées du sous total pour avoir : E2:E30. Cette méthode sera valable
pour tous les employés.

Tu n'auras pas le formatage comme tu le désirais mais cela devrait être plus
simple.


Cordialement.




"Pascal Manach" a écrit dans le message de news:
#
Bonjour,


Je récupère des infos d'un système de gestion des congés.
C'est un fichier excel qui me donne les soldes à une certaine date.
Mais dans ce fichier j'ai aussi les dates de congés prévisionnels qui ne
seront décomptées qu'à la date réelle du calendrier.
En conséquence, chaque personne peut avoir plusieurs ligne correspondant à
ces dates.

Je voudrai à l'aide d'une macro pouvoir comptabliser pour chaque personne
le

nbre de jours correspondant et l'isoler dans une cellule.
Puis je souhaiterai supprimer toutes les lignes correspondant à chaque
personne tout en conservant la dernière(donc le solde récupéré
précédemment

devrait y être.

Exemple du fichier à sa réception (pour une personne)
Le N° individuel est la référence(520657)
Date Début Date Fin Nbr Jours CP légaux CP
Autres
520657 CPJ A 16/04/04 16/04/04 1 8 6
520657 CPJ P 23/04/04 23/04/04 1 8 6
520657 CPJ P 30/04/04 12/05/04 9 8 6
520657 CPJ A 24/05/04 28/05/04 5 8 6



Les colonnes CP légaux et CP autres ont la même valeur car il s'agit
du

solde avant le prévisionnel de l'ensemble des lignes présentes ( ces
valeurs

n'ont pas à être rajoutées).
Ce que je souhaiterai en final pour illuster mon propos c'est çà:

Nbre jours CP légaux CP autres
520657 CPJ 16 8 6


Tout en conservant les données des autres colonnes.


Merci beaucoup pour votre aide






Avatar
Pascal Manach
Merci pour ta réponse, mais j'ai besoin d'avoir cette base de données
modifiée, car ensuite j'utilise une autre macro qui sélectionne des
populations prédifinies pour les enregistrer dans des fichiers et les
transmettre aux différents services.

Si tu peux m'aider merci

Cordialement

"E KERGRESSE" a écrit dans le message
de news:
Salut Pascal,

Est ce qu'un filtre automatique et un sous-total sur la colonne Nbr Jours
ne

suffiraient pas ?

Pour mettre en euvre le sous-total, tu mets d'abord le filtre sur 520657
(par exemple) et tu mets le sous-total (avec le bouton comme pour une
somme)

dans la première cellule vide dans la colonne Nbr Jours.

Tu corriges les coordonnées dans la formule du sous toital de telle
manière

à prendre en compte toutes les cellules. Je m'explique : Le titre est en
E1

et la dernière ligne de ton tableau est en ligne 30 par exemple,
logiquement

tu as mis ta fonction sous total dans la cellule E31. Tu modifies les
coordonnées du sous total pour avoir : E2:E30. Cette méthode sera valable
pour tous les employés.

Tu n'auras pas le formatage comme tu le désirais mais cela devrait être
plus

simple.


Cordialement.




"Pascal Manach" a écrit dans le message de
news:

#
Bonjour,


Je récupère des infos d'un système de gestion des congés.
C'est un fichier excel qui me donne les soldes à une certaine date.
Mais dans ce fichier j'ai aussi les dates de congés prévisionnels qui ne
seront décomptées qu'à la date réelle du calendrier.
En conséquence, chaque personne peut avoir plusieurs ligne correspondant
à


ces dates.

Je voudrai à l'aide d'une macro pouvoir comptabliser pour chaque
personne


le
nbre de jours correspondant et l'isoler dans une cellule.
Puis je souhaiterai supprimer toutes les lignes correspondant à chaque
personne tout en conservant la dernière(donc le solde récupéré
précédemment

devrait y être.

Exemple du fichier à sa réception (pour une personne)
Le N° individuel est la référence(520657)
Date Début Date Fin Nbr Jours CP légaux
CP


Autres
520657 CPJ A 16/04/04 16/04/04 1 8 6
520657 CPJ P 23/04/04 23/04/04 1 8 6
520657 CPJ P 30/04/04 12/05/04 9 8 6
520657 CPJ A 24/05/04 28/05/04 5 8 6



Les colonnes CP légaux et CP autres ont la même valeur car il
s'agit


du
solde avant le prévisionnel de l'ensemble des lignes présentes ( ces
valeurs

n'ont pas à être rajoutées).
Ce que je souhaiterai en final pour illuster mon propos c'est çà:

Nbre jours CP légaux CP autres
520657 CPJ 16 8 6


Tout en conservant les données des autres colonnes.


Merci beaucoup pour votre aide










Avatar
E KERGRESSE
Salut Pascal,

Quel est ton niveau en VBA ?

La création de cette macro n'est pas compliquée mais un peu longue.

Dans ton cas, voilà ce que je ferais :

1- Initialisation d'une variable tableau (par exemple Employes() avec Public
Employes() as variant) qui contiendra chaque employé et les informations
dont tu as besoin. Ici, 5 champs (NB : je ne sais pas à quoi sert CPJ).

2- Trier la base de données dans l'ordre des codes des employés.

3- Initialiser un compteur pour comptabiliser les numéros d'employés : k par
exemple. K=0 au départ.

4 - Au moyen d'une boucle for next (depuis la ligne sous le titre jusqu'à la
dernière ligne), tester la colonne Numéro d'employé.

Pour chaque nouveau numéro d'employé testé avec une instruction if then :

-incrémenter le compteur k
-redimensionner la variable tableau : Rdim Preserve Employes(5,k)

Puis
-remplir la variable :
-Employes(0,k) avec le numéro
d'employé
-Employes(1,k) avec CPJ ?
-Employes(2,k) = Employe(2,K) +
Valeur colonne jours de congés acquis ou prévisionnel
-Employes(3,k) avec Jours CP légaux,
-Employes(4,k) avec Jours CP autres

5- Créer une nouvelle feuille (ou classeur)

-Vider le contenu de la variable Employes avec deux boucles For
Next
Activesheet.range("A1").select
For k = Lbound(Employes,2) to Ubound(Employes,2) - 1
for i = 0 to 4

Activecell.offset(i,k).value=Employes(i,k)
next
Next

Est ce suffisant comme explications ?

Cordialement.

"Pascal Manach" a écrit dans le message de news:

Merci pour ta réponse, mais j'ai besoin d'avoir cette base de données
modifiée, car ensuite j'utilise une autre macro qui sélectionne des
populations prédifinies pour les enregistrer dans des fichiers et les
transmettre aux différents services.

Si tu peux m'aider merci

Cordialement

"E KERGRESSE" a écrit dans le
message

de news:
Salut Pascal,

Est ce qu'un filtre automatique et un sous-total sur la colonne Nbr
Jours


ne
suffiraient pas ?

Pour mettre en euvre le sous-total, tu mets d'abord le filtre sur 520657
(par exemple) et tu mets le sous-total (avec le bouton comme pour une
somme)

dans la première cellule vide dans la colonne Nbr Jours.

Tu corriges les coordonnées dans la formule du sous toital de telle
manière

à prendre en compte toutes les cellules. Je m'explique : Le titre est en
E1

et la dernière ligne de ton tableau est en ligne 30 par exemple,
logiquement

tu as mis ta fonction sous total dans la cellule E31. Tu modifies les
coordonnées du sous total pour avoir : E2:E30. Cette méthode sera
valable


pour tous les employés.

Tu n'auras pas le formatage comme tu le désirais mais cela devrait être
plus

simple.


Cordialement.




"Pascal Manach" a écrit dans le message de
news:

#
Bonjour,


Je récupère des infos d'un système de gestion des congés.
C'est un fichier excel qui me donne les soldes à une certaine date.
Mais dans ce fichier j'ai aussi les dates de congés prévisionnels qui
ne



seront décomptées qu'à la date réelle du calendrier.
En conséquence, chaque personne peut avoir plusieurs ligne
correspondant



à
ces dates.

Je voudrai à l'aide d'une macro pouvoir comptabliser pour chaque
personne


le
nbre de jours correspondant et l'isoler dans une cellule.
Puis je souhaiterai supprimer toutes les lignes correspondant à
chaque



personne tout en conservant la dernière(donc le solde récupéré
précédemment

devrait y être.

Exemple du fichier à sa réception (pour une personne)
Le N° individuel est la référence(520657)
Date Début Date Fin Nbr Jours CP
légaux



CP
Autres
520657 CPJ A 16/04/04 16/04/04 1 8 6
520657 CPJ P 23/04/04 23/04/04 1 8 6
520657 CPJ P 30/04/04 12/05/04 9 8 6
520657 CPJ A 24/05/04 28/05/04 5 8 6



Les colonnes CP légaux et CP autres ont la même valeur car il
s'agit


du
solde avant le prévisionnel de l'ensemble des lignes présentes ( ces
valeurs

n'ont pas à être rajoutées).
Ce que je souhaiterai en final pour illuster mon propos c'est
çà:




Nbre jours CP légaux CP autres
520657 CPJ 16 8 6


Tout en conservant les données des autres colonnes.


Merci beaucoup pour votre aide














Avatar
E KERGRESSE
Pardon,

-Vider le contenu de la variable Employes avec deux boucles For
Next en initialisant un compteur supllémentaire : i

Activesheet.range("A1").select
For k = Lbound(Employes,2) to Ubound(Employes,2) - 1
for i = 0 to 4
Activecell.offset(k,i).value=Employes(i,k)
next
Next


"E KERGRESSE" a écrit dans le message
de news:

Salut Pascal,

Quel est ton niveau en VBA ?

La création de cette macro n'est pas compliquée mais un peu longue.

Dans ton cas, voilà ce que je ferais :

1- Initialisation d'une variable tableau (par exemple Employes() avec
Public

Employes() as variant) qui contiendra chaque employé et les informations
dont tu as besoin. Ici, 5 champs (NB : je ne sais pas à quoi sert CPJ).

2- Trier la base de données dans l'ordre des codes des employés.

3- Initialiser un compteur pour comptabiliser les numéros d'employés : k
par

exemple. K=0 au départ.

4 - Au moyen d'une boucle for next (depuis la ligne sous le titre jusqu'à
la

dernière ligne), tester la colonne Numéro d'employé.

Pour chaque nouveau numéro d'employé testé avec une instruction if then :

-incrémenter le compteur k
-redimensionner la variable tableau : Rdim Preserve Employes(5,k)

Puis
-remplir la variable :
-Employes(0,k) avec le numéro
d'employé
-Employes(1,k) avec CPJ ?
-Employes(2,k) = Employe(2,K) +
Valeur colonne jours de congés acquis ou prévisionnel
-Employes(3,k) avec Jours CP
légaux,

-Employes(4,k) avec Jours CP
autres


5- Créer une nouvelle feuille (ou classeur)

-Vider le contenu de la variable Employes avec deux boucles For
Next
Activesheet.range("A1").select
For k = Lbound(Employes,2) to Ubound(Employes,2) -
1

for i = 0 to 4

Activecell.offset(i,k).value=Employes(i,k)
next
Next

Est ce suffisant comme explications ?

Cordialement.

"Pascal Manach" a écrit dans le message de
news:


Merci pour ta réponse, mais j'ai besoin d'avoir cette base de données
modifiée, car ensuite j'utilise une autre macro qui sélectionne des
populations prédifinies pour les enregistrer dans des fichiers et les
transmettre aux différents services.

Si tu peux m'aider merci

Cordialement

"E KERGRESSE" a écrit dans le
message

de news:
Salut Pascal,

Est ce qu'un filtre automatique et un sous-total sur la colonne Nbr
Jours


ne
suffiraient pas ?

Pour mettre en euvre le sous-total, tu mets d'abord le filtre sur
520657



(par exemple) et tu mets le sous-total (avec le bouton comme pour une
somme)

dans la première cellule vide dans la colonne Nbr Jours.

Tu corriges les coordonnées dans la formule du sous toital de telle
manière

à prendre en compte toutes les cellules. Je m'explique : Le titre est
en



E1
et la dernière ligne de ton tableau est en ligne 30 par exemple,
logiquement

tu as mis ta fonction sous total dans la cellule E31. Tu modifies les
coordonnées du sous total pour avoir : E2:E30. Cette méthode sera
valable


pour tous les employés.

Tu n'auras pas le formatage comme tu le désirais mais cela devrait
être



plus
simple.


Cordialement.




"Pascal Manach" a écrit dans le message de
news:

#
Bonjour,


Je récupère des infos d'un système de gestion des congés.
C'est un fichier excel qui me donne les soldes à une certaine date.
Mais dans ce fichier j'ai aussi les dates de congés prévisionnels
qui




ne
seront décomptées qu'à la date réelle du calendrier.
En conséquence, chaque personne peut avoir plusieurs ligne
correspondant



à
ces dates.

Je voudrai à l'aide d'une macro pouvoir comptabliser pour chaque
personne


le
nbre de jours correspondant et l'isoler dans une cellule.
Puis je souhaiterai supprimer toutes les lignes correspondant à
chaque



personne tout en conservant la dernière(donc le solde récupéré
précédemment

devrait y être.

Exemple du fichier à sa réception (pour une personne)
Le N° individuel est la référence(520657)
Date Début Date Fin Nbr Jours CP
légaux



CP
Autres
520657 CPJ A 16/04/04 16/04/04 1 8 6
520657 CPJ P 23/04/04 23/04/04 1 8 6
520657 CPJ P 30/04/04 12/05/04 9 8 6
520657 CPJ A 24/05/04 28/05/04 5 8 6



Les colonnes CP légaux et CP autres ont la même valeur car il
s'agit


du
solde avant le prévisionnel de l'ensemble des lignes présentes ( ces
valeurs

n'ont pas à être rajoutées).
Ce que je souhaiterai en final pour illuster mon propos c'est
çà:




Nbre jours CP légaux CP autres
520657 CPJ 16 8 6


Tout en conservant les données des autres colonnes.


Merci beaucoup pour votre aide