[EXCEL] probleme selection cellule

antic80 Messages postés 4877 Statut Contributeur -  
antic80 Messages postés 4877 Statut Contributeur -
bonjour

voila j'ai un calendrier sur excel présenté de la maniere suivante

colonne A : colonne B : colonne C : colonne D
vendredi 1 : jour : mercredi 1 : nuit
samedi 2 : jour : jeudi 2 : nuit
dimanche 3 : nuit : vendredi 3 : nuit
etc...

je donne une periode par exemple du 10 au 20 janvier et je dois compter les cellules n'ont vide pour cette période de ce coté la pas de probleme
par contre pour une période par exemple du 25 janvier au 10 fevrier mon prog en vba n'arrive pas a calculer le nombre en janvier et le nombre en fevrier

comment faire ???

3 réponses

  1. antic80 Messages postés 4877 Statut Contributeur 1 178
     
    je precise que mon code se présente comme suit

    DateFin = Range(mois).Find(what:=jour_fin).Offset(0, 1).Address
    DateDépart = Range(mois).Find(what:=jour_début).Offset(0, 1).Address
    Range(DateDépart, DateFin).Select
    Set période = Range(DateDépart, DateFin)
    For Each plage In Range(DateDépart, DateFin)
    If plage.Interior.ColorIndex = xlNone Then
    compteur = compteur + 1
    End If
    Next
    Date_du_jour = CDate(TXT_du.Value)
    If Date_du_jour < Date Then
    MsgBox ("Attention la date saisie est antérieur à la date du jour")
    GoTo fin
    End If
    If compteur = "" Then
    TXT_TotalJour.Text = 0
    Else
    TXT_TotalJour.Text = compteur
    End If
    0
  2. Lupin
     
    Slt antic80,

    Je ne suis pas sur d'avoir bien compris, des informations manque et j'ai du "assumer" certaines valeurs.

    Sub Test()
        
        Dim DateFin As String
        Dim DateDepart As String
        Dim Plage As Range
        Dim Periode As Range
        Dim Date_Du_Jour As Date
        Dim Compteur As Long
    
    '    DateFin = Range(mois).Find(what:=jour_fin).Offset(0, 1).Address
    '    DateDepart = Range(mois).Find(what:=jour_début).Offset(0, 1).Address
        DateDepart = ("D5")
        DateFin = ("D10")
        Set Periode = Range(DateDepart & ":" & DateFin)
        
        For Each Plage In Periode
            If Plage.Interior.ColorIndex = xlNone Then
                Compteur = Compteur + 1
            End If
        Next
        
        Date_Du_Jour = CDate(Txt_du.Value)
        
        If (Date_Du_Jour < Date) Then
            MsgBox ("Attention la date saisie est antérieur à la date du jour")
            GoTo Fin
        End If
        
        If Compteur = 0 Then
            Txt_TotalJour.Text = 0
        Else
            Txt_TotalJour.Text = Compteur
        End If
    
    Fin:
    
    End Sub
    '
    


    Lupin
    0
  3. antic80 Messages postés 4877 Statut Contributeur 1 178
     
    merci lupin

    en fait si la période entre 2 dates été a cheval sur 2 mois je devais pourvoir faire le total de la période

    mais j'ai trouver une solution certes longue mais qui marche

    j'ai en fait recuperer la date de départ , le dernier jour du mois de départ , le 1ere jour du mois de fin et la date de fin

    ensuite j'ai fais un total pour le 1ere mois , un total pour le 2eme mois et j'ai addittionner les 2 totaux
    0