IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E] Comptage de cellules contenant des dates


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 89
    Par défaut [VBA-E] Comptage de cellules contenant des dates
    Bonjour,

    Je souhaiterais utiliser le même code que dans cette discussion mais il y a quelque chose qui bloque car je souhaiterais que la condition soit sous forme de date et non de texte ...

    En gros, désolé pour la dégradation du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Public Sub Command4_Click()
     
    Dim Compteur As Integer
    Dim Ok1, Ok2, Ok3 As Boolean
    Dim n As Integer
     
    Compteur = 0
     
    For n = 2 To 1000
     
            Ok = False
     
            If InStr("win", Range("I" & n).Value) > 0 Then Ok1 = True
            If InStr( 'Entre le 01/04/2007 et le 31/06/2007' , Range("J" & n).Value) > 0 Then Ok2 = True
             If Ok1 = True & Ok2 = True Then Compteur = Compteur + 1
     
    Next n
     
    MsgBox (Compteur)
     
    End Sub
    Merci d'avance mais je sais pas si c'ets possible ...

    Arnaud

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Voir pour inStr...

    pour tester une date... modifie ta ligne par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ok2 = (Range("J" & n).Value >= DateSerial(2007, 4, 1) And Range("J" & n).Value <= DateSerial(2007, 6, 30))

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Regarde aussi la fonction IsDate dans l'aide

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 89
    Par défaut
    Merci de cette aide, Isdate me parait bien !

    J'ai quand même un problême car j'ai créé une liste toute bête de 2 collone pour tester ma macro dans le but de compter uniquement les lignes qui en B sont = à 1 et en C à "win". mais quoique je fasse le MsgBox affiche toujours 0 !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub comptage()
     
    Dim Compteur As Integer
    Dim Ok1, Ok2 As Boolean
    Dim n As Integer
     
    For n = 2 To 50
     
            Ok = False
     
            If InStr("win", Sheets("sheet1").Range("C" & n).Value) > 0 Then Ok1 = True
            If InStr(1, Sheets("sheet1").Range("B" & n).Value) > 0 Then Ok2 = True
            If Ok1 = True & Ok2 = True Then Compteur = Compteur + 1
     
    Next n
     
    Sheets("sheet1").Range("D21").Value = Compteur
     
    End Sub
    Y a quelque truc qui me paraisse bizare comme par exemple le ">0" mais quoique je fasse ça ne fonctionne pas...

    Je continue à chercher mais c'est bizare ...

    Merci @+

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    pour le >0 tjrs:
    Citation Envoyé par bbil
    Voir pour inStr...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 89
    Par défaut
    BHa jsutement je n'aurais pas pris la peine de poster un message si j'avais compris l'aide !

    Je prefère toujours me débrouiller mais là je suis dans l'impasse, surtout que si je créé un code pour une seul collone ca marche bien mais dès qu'il y en à deux ca foire ...

    Pour info l'aide me dit ça :

    Settings

    The compare argument settings are:

    Constant Value Description
    vbUseCompareOption -1 Performs a comparison using the setting of the Option Compare statement.
    vbBinaryCompare 0 Performs a binary comparison.
    vbTextCompare 1 Performs a textual comparison.
    vbDatabaseCompare 2 Microsoft Access only. Performs a comparison based on information in your database.



    Return Values

    If InStr returns
    string1 is zero-length 0
    string1 is Null Null
    string2 is zero-length start
    string2 is Null Null
    string2 is not found 0
    string2 is found within string1 Position at which match is found
    start > string2 0
    Et je ne vois pas à quel 0 ça fais référence ...

    Enfin pour l'isntant je me suis débrouiller en faisant des IF + IF est si ça affiche 2 c'est que j'ai bien une ligne ave cmes deux conditions donc je fais un coutinf avec comme condition 2 mais bon y a quand même mieux car je dois le faire pour beaucoup de fichier !

    @+

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    et bien InStr te donne la position d'une chaîne de caractère dans une autre ...elle retourne 0 si la chaîne cherchée n'existe pas ...

    I-E. Renvoyer la position de la première occurrence d'une chaîne dans une autre chaîne

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 89
    Par défaut
    MERCI !! c'ets vrai que toute de suite c'est plus claire !!

    Donc mon erreur est ailleurs, c'est déjà une avancée maitenant il ne me reste plus qu'à savoir l' trouver,

    merci bbil

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Formulaire VBA problème avec cellules contenant des dates
    Par Sudeki dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/10/2013, 12h54
  2. Réponses: 1
    Dernier message: 24/03/2010, 11h49
  3. [VBA-E] Protéger une feuille- contenant des macros
    Par nkhalidy dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/03/2007, 10h32
  4. Réponses: 3
    Dernier message: 18/09/2006, 20h55
  5. Verrouiller cellule contenant des formules
    Par zouille dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 19/12/2005, 11h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo