identifier code et dates correspondantes

mix770

XLDnaute Impliqué
Bonjour à vous,

J'adore Excel et mon appétit me conduit encore à faire appel à vous pour avancer :)

j'ai un tableau de présence remplie par des tiers avec des codes d'absences "cpc / rtt / ...." (janvier dans fichier joint), je souhaiterai que dans l'onglet CMA il sache:
- reconnaitre les codes, ceux ci s’affichant dans la colonne "codes"
- pour la colonne "absence" pas de problème il va chercher l'intitulé en fonction du code
- qu'il affiche dans la colonne "période" la date de début et de fin pour le code.
- pour la colonne nombre pas de problèmes.
cela veut dire qu'il doit créer un ligne pour chaque code inscrit, reconnaitre les dates de début et fin, pour 1 journée date unique et différencier si un rtt à été posé le 10 juillet et un autre le 20 cela fait 2 lignes

j'espère avoir été clair ....
j'ai mis le fichier en PJ

un grand merci à vous tous
bien cordialement
 

Pièces jointes

  • construction cma.xls
    116.5 KB · Affichages: 52
  • construction cma.xls
    116.5 KB · Affichages: 57
  • construction cma.xls
    116.5 KB · Affichages: 58

Dranreb

XLDnaute Barbatruc
Re : identifier code et dates correspondantes

Bonjour ce code dans le module "Feuil106 (CMA 1)" semble faire l'affaire :
VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$7" Then Collecte
End Sub

Private Sub Collecte()
Dim Cel As Range, Déb As Date, Te(), Codes(), Périodes(), L As Long, J As Long 'Code As String
With ThisWorkbook.Worksheets(1)
   Déb = .[C8].Value - 1
   Set Cel = .[A9:A505].Find(What:=Me.[C7].Value, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder _
   :=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False): End With
If Cel Is Nothing Then MsgBox Feuil106.[C7].Value & " inexistant": Exit Sub
Te = Cel.Offset(, 2).Resize(, 32).Value
ReDim Codes(1 To 19, 1 To 1), Périodes(1 To 19, 1 To 2)
L = 0
If Te(1, 1) <> "" Then L = 1: Codes(L, 1) = Te(1, 1): Périodes(1, 1) = Déb + 1
For J = 2 To 32
   If Te(1, J) <> Te(1, J - 1) Then
      If Te(1, J - 1) <> "" Then Périodes(L, 2) = Format(Déb + J - 1, "dd mmm yyyy")
      If Te(1, J) <> "" Then L = L + 1: Codes(L, 1) = Te(1, J): Périodes(L, 1) = Format(Déb + J, "dd mmm yyyy")
      End If
   Next J
Me.[A13].Resize(19, 1).Value = Codes
Me.[C13].Resize(19, 2).Value = Périodes
End Sub
 

mix770

XLDnaute Impliqué
Re : identifier code et dates correspondantes

Bonjour Dranreb,
merci beaucoup de ta réponse, J'ai copié sur la cma1 cela ne marche pas, ai je oublié quelque chose ?, normalement si je marqu "RTT du 5 au 8 janvier" dans la ligne "Nom 1" cela devrai renvoyer dans la colonne code du cma, le code "RTT" et compter le NB de jours.
j'ai oublié de supprimer la validation dans les cellules de janvier si tu veux faire des tests
merci pour le temps que tu me consacres
cordialement
 

Dranreb

XLDnaute Barbatruc
Re : identifier code et dates correspondantes

En fait je ne me suis pas très polarisé sur les conditions qui doivent déclencher l'exécution de la macro, je me suis borné à écrire une Sub Collecte qui fait le boulot. J'avais sûrement vaguement en tête la possibilité d'appeler cette procédure aussi dans une Worksheet_Activate pour que la mise à jour soit faite en activant la feuille et non seulement quand on change la personne.
 

Dranreb

XLDnaute Barbatruc
Re : identifier code et dates correspondantes

Boujour.
Eh bien vous implantez une Worksheet_Activate et vous y appelez cette procédure Collecte. Ce n'est pas encore fait ?
VB:
Option Explicit

Private Sub Worksheet_Activate()
Collecte
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$7" Then Collecte
End Sub
 

mix770

XLDnaute Impliqué
Re : identifier code et dates correspondantes

Bonjour Dranreb,
désolé pour le temps de réaction et mon manque de maitrise, j'aime beaucoup Excel mais j'ai beaucoup de choses à apprendre.
j'ai fait ce que tu m'as indiqué, j'ai une Msgbox " 1 inexistant "
donc je ne vois pas ou ça coince forcément
merci beaucoup
 

mix770

XLDnaute Impliqué
Re : identifier code et dates correspondantes

si cela peut aider,

dans mon outil j'ai un onglet CMA par salarié et sur chaque onglet 12 tableau "empilés" pour chaque mois, donc un tableau sera dédié par salarié et par mois, cela permet de garder un historiques.
merci du temps consacré
cordialement
 

mix770

XLDnaute Impliqué
Re : identifier code et dates correspondantes

re bonjour,
le nom apparait bien dans la cellule A9 sur la plage et correspond au nom C7 du cma j'ai mis en nom "test nom"
et mon MsgBox m'indique test nom inexistant
merci pour la réactivité
bien cordialement
 

Dranreb

XLDnaute Barbatruc
Re : identifier code et dates correspondantes

Si la macro doit pouvoir jouer sur d'autres feuilles que la 1ère faites un exemple avec au moins 2 feuille et précisez bien ce qui définit dans quelle feuille on doit taper. C'est bien toujours une seule ligne du tableau qu'il faut récapituler ?
Joignez un exemple exact de ce que vous voulez.
 

mix770

XLDnaute Impliqué
Re : identifier code et dates correspondantes

!!!
ça marche !!
géniale
je mets un modèle avec la configuration voulue

exemple: janvier j'ai 30 noms et ce pour chaque mois (février, mars, etc)
sur chaque nom il y à un onglet CMA sur cet onglet je mets les 12 cma empilés sur le même onglet, donc:
- pour le nom 1 il y à une ligne par mois janvier L9, février L9 etc.. et un onglet cma 1 avec un tableau par mois ex: janvier reprend toute la ligne 9 du nom 1 du mois de janvier.

dans la saisie il y a des heures (ex 7.30) est ce qu'il peux ignorer des informations qui ne seraient pas dans une base de codes, comme à droite du cma (colonnes U et V)

autre question si ce n'est pas abuser, est ce possible une fois vérifier de créer un bouton verrouillage qui fige le tableau et interdit toute modif

merci à vous et bravo pour le niveau
 

Pièces jointes

  • construction cma.xls
    240 KB · Affichages: 46
  • construction cma.xls
    240 KB · Affichages: 44
  • construction cma.xls
    240 KB · Affichages: 47
Dernière édition:

Discussions similaires

Réponses
10
Affichages
234
Réponses
93
Affichages
3 K
Réponses
2
Affichages
230

Statistiques des forums

Discussions
314 023
Messages
2 104 741
Membres
109 124
dernier inscrit
Bilouwal