VBA : obtenir le début et la fin d'une période

miguelangelo

XLDnaute Occasionnel
Bonsoir à tous,

plus parlant qu'un exemple y a pas, alors .

dans le fichier joint, ma reference est le lot_conges
il correspond à un ensemble de jours d'absence.
j'ai une macro qui alimente une userform

Sub validation_abs()

For Each c In Range("lot_conges") =colonne H
If c.Offset(0, -3) <> Range("mesinitiales") Then GoTo suivant (mes initiales correspond à la colonne E
If c.Offset(0, -1) = "" Then GoTo traitement
suivant:
Next c
MsgBox ("Vous n'avez pas de congés à valider.")
GoTo fin

traitement: validation = nom de USF
validation.Show
validation.demandeur = c.Offset(0, -6)
validation.absence = c.Offset(0, -4)
validation.date_absence = c.Offset(0, 5)
validation.date_fin_absence = c.Offset(0, 5)
validation.date_pose = c.Offset(0, 2)


fin:

End Sub

mon souci : je ne sais pas comment en f(x) de C qu'il me déduise la date de début et de fin de la période ?

Merci d'avance
 

Pièces jointes

  • test.xls
    34.5 KB · Affichages: 65
  • test.xls
    34.5 KB · Affichages: 69
  • test.xls
    34.5 KB · Affichages: 69

smotty

XLDnaute Occasionnel
Re : VBA : obtenir le début et la fin d'une période

Bonjour,

Si j'ai bien compris, voici un code pour déterminer une période de congés en fonction des initiales et du type d'arrêt:

Code:
Sub Conges(ByVal initiales As String, ByVal causes As String)
    Dim Datemin As Date
    Dim Datemax As Date
    Dim D As Date
    Dim C As Range
    Dim l As Long
    
    l = [A65535].End(xlUp).Row
    
    For Each C In Range("B2:B" & l)
        If C.Value = initiales Then
            If C.Offset(0, 2) = causes Then
                D = C.Offset(0, 4)
                Debug.Print D
                If Datemin = "00:00:00" Then Datemin = D
                If Datemax = "00:00:00" Then Datemax = D
                If D < Datemin Then Datemin = D
                If D > Datemax Then Datemax = D
            End If
            
        End If
    Next C
    
    MsgBox initiales & ": absence du " & Datemin & " au " & Datemax
    
End Sub

Sub afficheconges()
    Call Conges("MNS", "Arr.Mal")
End Sub

A adapter

cdt

smotty
 

Discussions similaires

Réponses
5
Affichages
282

Statistiques des forums

Discussions
299 930
Messages
1 980 158
Membres
207 010
dernier inscrit
Setry