[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
    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
    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
      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