Bonjour a tous !!
Voici mon probleme, sur lequel je planche depuis maintenant quelques temps.
Je suis en train de réaliser une étude sur les absences et j'ai besoin en autre de savoir la durée des absences.(pas le nombre d'absences)
Les jours en jaune représente les jours ouvrable
Ceux en rouge les jours fermés.
Les absences s'exprime en jours ouvrables, une absence de 2 semaine,, sera donc de 10jours si la personne ne travaille pas le Samedi et le dimanche
Dans mon fichier,
Pour Julien,ses arrets durent respectivement 2 et 4 jours (car 2 jour fermés lors de la seconde absence)
Pour Marc,son premier arret dure 1 journée,son second 2 jours,et le dernier 1jour (pas de jour fermés dans ce cas)
J'ai fait une petite macro qui compte le nombre de "ATM" ecrit a la suite.
Celle ci marche correctement, mais je n'arrive pas a dire a ma macro de sauter une case (ou plusieurs case) quant elle rencontre une case rouge.
En gros pour le cas de Julien , ma macro renvoi 2 jour, 3 jour et 1 journée.
Sachant que le nombre de case rouge change selon les semaine et les mois etc...
Comment faire ?
Je vous met mon fichier a disposition pour mieux comprendre.
Un grand merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Sub Absence() 'Scanne l'ensemble des colonnes et se positionne a la fin de la ligne For indicecolonne = 3 To 4 indiceligne = 23 'ScAnne une ligne entiere For ligne = 3 To 20 Cells(indicecolonne, ligne).Select 'Fait le test pour savoir si la Case est un ATM! If Cells(indicecolonne, ligne).Value = "ATM" Then compteur = 1 essai = ligne + 1 For comptage = essai To 20 If Cells(indicecolonne, comptage).Value = "ATM" Then compteur = compteur + 1 ligne = ligne + 1 Else: Cells(indicecolonne, indiceligne).Select If compteur <> 0 Then ActiveCell.Value = compteur compteur = 0 indiceligne = indiceligne + 1 ligne = 20 End If End If Next comptage Else compteur = 0 End If Next ligne Next indicecolonne End Sub
Zephirsoul
Partager