[EXCEL] probleme selection cellule

Fermé
antic80 Messages postés 4785 Date d'inscription lundi 30 mai 2005 Statut Contributeur Dernière intervention 9 septembre 2009 - 17 janv. 2006 à 10:34
antic80 Messages postés 4785 Date d'inscription lundi 30 mai 2005 Statut Contributeur Dernière intervention 9 septembre 2009 - 17 janv. 2006 à 16:56
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

antic80 Messages postés 4785 Date d'inscription lundi 30 mai 2005 Statut Contributeur Dernière intervention 9 septembre 2009 1 159
17 janv. 2006 à 11:04
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
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 4785 Date d'inscription lundi 30 mai 2005 Statut Contributeur Dernière intervention 9 septembre 2009 1 159
17 janv. 2006 à 16:56
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