Compter des cellule avec un format date excel

zeb -  
NicoDisso Messages postés 231 Statut Membre -
Bonjour,

j ai une colonne avec des dates , je souhaite compter les cellules qui contiennent la date que je rentre grace à une boite de message.

quand je mets un prénom dans la boite de message et que mes cellules contiennent ce prénom je n'est aucun problème, mais quand je rentre une date le comptage est de 0

pouvez vous me dépanner

voici ma macro

Sub daterecu()

Sheets("Feuil1").Select

Dim Message, Titre, ddr, réponse

Titre = "Date de réception"

Message = "Entrez la date du début au format jj/mm/aaaa :"

ddr = InputBox(Message, Titre)

If ddr <> Format(ddr, "dd/mm/yyyy") Or ddr = "" Then
MsgBox "Votre date n'est pas valide! Recommencez ?"
Exit Sub
End If

ddr = Format(ddr, "mm/dd/yyyy")

Dim celule As Range
total = 0

Range("a7:a5000").Select 'colonne ou j'ai mes dates

For Each celule In Selection
If cellule = ddr Then
total = total + celule.Count
End If
Next

Range("g2") = "NOMBRE DE JOURS : " & total 'affiche le total

End sub
Configuration: Windows Vista Internet Explorer 7.0

3 réponses

  1. Captain47 Messages postés 13 Statut Membre 1
     
    Bonjour,

    Eh bien si c'est le cas, tu sélectionne la colonne où se trouvent les dates et fait un clic droit pour avoir le men déroulant - tu peux aussi utiliser celui figurant en haut de ta page. Tu choisis "format des cellules" puis dans la fenêtre qui apparait l'onglet "nombre" et sélectionne dans la liste proposée "date". T n'as plus qu'à choisir le type de date que tu veux voir afficher et valider.
    Maintenant, est-ce que cela solutionnera ton problème, je ne sais, mais ça vaut le coup d'essayer...
    1
  2. Captain47 Messages postés 13 Statut Membre 1
     
    Bonsoir,
    Cela ne proviendrait-il pas d'une question de formatage de tes cellules contenant la date ? Si celles-ci ne sont pas "officiellement" considérées comme des dates, même si elles en ont la forme, peut-être ne sont-elles pas prises en compte.

    Ceci n'est qu'une suggestion ou une piste de recherche, pas une certitude, mais je crois que j'aurais commencé par vérifier cela.

    Bon courage à toi en attendant peut-être une réponse plus affirmative quant aux causes de ton soucis.
    0
    1. zeb
       
      bonsoir,

      je pense que tu as raison ,mais je ne sais vraiment pas comment faire

      merci
      0
  3. NicoDisso Messages postés 231 Statut Membre 32
     
    Moi c'est au niveau de la déclaration des tes variables que ca peche.
    Tu compares des carottes avec des patates ( on se croirait à l'école, non ;-) )

    en fait quand tu fais ca Dim Message, Titre, ddr, réponse
    tu déclares des variables, mais tu ne donnes pas leur type ( carotte... )

    Donc au vue de ce que tu veux faire
    Dim Message as string
    Dim Titre as string
    Dim ddr as date
    réponse ne sert à rien et évite les accents dans tes variables

    ensuite ton code irait à condition qu'il n'y ait pas d'erreur de saisie de date

    ton test final serait

    cdate(cellule.value) = cdate(ddr)

    cdate() te permet de convertir un texte en date, comme ca on est sur que ca compare les meme choses...
    Le probleme est que si tu a autre chose qu'une date dans ta cellule, tu auras une erreur
    DOnc il faudra mettre en place une gestion d'erreur...
    0