[EXCEL] probleme selection cellule

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. Contributeur
    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
    1. 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
      1. Contributeur
        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