Gestion congés

Fermé
zoe&co Messages postés 1 Date d'inscription lundi 13 août 2012 Statut Membre Dernière intervention 13 août 2012 - 13 août 2012 à 15:03
 zoe&co - 17 août 2012 à 12:05
Bonjour les cracks d'Excel,

Dans une 1ère feuille Excel, je colle une extraction mensuelle des congés des salariés correspondants. Sur une autre feuille, je voudrais qu'un cumul des congés se fasse automatiquement à chaque nouvelle extraction, pour cette fois-ci, tous les salariés (reste à 0 si pas de congés). J'utilise la formule suivante: =RECHERCHEV('extraction_mois'!$A$2;'extraction_mois'!$A$2:$F$118;4;FAUX); la colonne A contenant le nom des salariés et 4 la colonne des congés du mois et le code suivant pour le cumul:

If Target.Column = 4 And Target.Count = 1 Then
Application.EnableEvents = False
ValSaisie = Target
Application.Undo
Target = ValSaisie + Target
Application.EnableEvents = True
End If

Le problème est que je ne sais pas comment intégrer la formule recherchev avec le code de manière à faire une boucle pour la lecture des noms de la 1ère feuile.
Si vous voulez bien m'aider?
En vous remerciant,
A voir également:

1 réponse

Bonjour,

Si je comprends bien, ton extraction récapitule par salarié le nombre de congés pris.
Si une personne à pris plusieurs congé il y a donc plusieurs ligne sur ton extraction pour un même salarié.

Petite question : La colonne 4 te donne le nombre de jour pris ?

Si oui :

T'oublies ta formule rechercheV

Visiblement tu sais programmer en VBA donc tu vas dans ton module et tu rentres le programme suivant :

Sub Test_Cumul()
Sheets("Sheet2").Cells(1, 1) = "NOM"
Sheets("Sheet2").Cells(1, 2) = "Cumul Conge"

'Cacul du nbre de ligne à traiter pour la boucle.
'L'onglet où se trouve l'extract doit se nommer "Sheet1"
'sinon modifies la macro
Nb_Ligne = Sheets("Sheet1").Cells(1, 1).End(xlDown).Row

For i = 2 To Nb_Ligne
Trouve = 0
If Sheets("Sheet2").Cells(2, 1) = "" Then
Trouve = 1
Sheets("Sheet2").Cells(2, 1) = Sheets("Sheet1").Cells(i, 1).Value
Sheets("Sheet2").Cells(2, 2) = Sheets("Sheet1").Cells(i, 4).Value
Else
Nb_Ligne2 = Sheets("Sheet2").Cells(1, 1).End(xlDown).Row
For u = 2 To Nb_Ligne2
If Sheets("Sheet1").Cells(i, 1) = Sheets("Sheet2").Cells(u, 1) Then
Trouve = 1
Sheets("Sheet2").Cells(u, 2) = Sheets("Sheet2").Cells(u, 2).Value + Sheets("Sheet1").Cells(i, 4).Value
Exit For
End If
Next u
End If
If Trouve = 0 Then
Sheets("Sheet2").Cells(1, 1).End(xlDown).Offset(1, 0) = Sheets("Sheet1").Cells(i, 1).Value
Sheets("Sheet2").Cells(1, 2).End(xlDown).Offset(1, 0) = Sheets("Sheet1").Cells(i, 4).Value
End If
Trouve = 0
Next i
End Sub

En le lançant ça devrait de donner le cumul des congé par Salarié
0
Bonjour,

Merci beaucoup pour ta réponse. Tu as bien saisi l'extraction. Pour l'instant, j'ai un message erreur l'indice n'appartient pas à la sélection. Dès que, je regarde ça de plus près pour passer tout en revue. En VBA , je débute. Je n'ai pas dû placer le code correctement.
Je te tiens au courant.
Bonne journée!
0
Merci encore pour ton code. Ca m'a bien aidé.
Bonne journée!
0