[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 ???
A voir également:

3 réponses

antic80 Messages postés 4877 Statut Contributeur 1 161
 
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
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
antic80 Messages postés 4877 Statut Contributeur 1 161
 
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