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 :

CountIF entre date


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Juillet 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2014
    Messages : 46
    Par défaut CountIF entre date
    Bonjour à tous,

    Je bloque sur la fonction Application.WorksheetFunction.CountIf qui est censée rechercher dans la colonne F les dates supérieures à la date d'ouverture du fichier.

    A chaque modification sur une ligne (via un UF) je rentre la date de modification.

    Countif est censée me permettre de recencer les dates supérieures à la date d'ouverture du fichier afin de les extraires et les envoyer par mail.

    J'ai réussi à le coder sur un PC mais lorsque j'ai mis le fichier sur un autre PC (qui est celui sur lequel le fichier sera explouité) la fonction CountIf ne fonctionne plus.

    J'en appel à vous pour m'indiquer comment rédiger la procédure pour qu'elle fonctionne sur tous les PC.

    Je ne peux pas vous envoyer le fichier mais voici le code utilisé :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Public TimeOuv as Date 
    Public ws As Worksheet
    Public cte, btm
     
     
    Private Sub Workbook_Open() ' Enregistre la date et l'heure d'ouverture du fichier
    TimeOuv = now 
    End Sub
     
     
    Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    If Sh.Name <> "Feuil1" Then Exit Sub
    If Not Intersect(Target, Range(Cells(2, 1), Cells(Cells(2, 2).End(xlDown).Row, 1))) Is Nothing Then
            Cancel = True
            If LCase(Target.Value) = "x" Then
                Target.Value = ""
            Else
                Target.Value = "x"
            End If
            Target.Offset(0, 5) = now             ' C'est ici que j'enregistre la date et l'heure de modification de ma ligne en colonne F
        End If
    End If
    End Sub
     
     
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Set ws = Worksheets("Feuil1")
        btm = ws.Cells(Rows.Count, 3).End(xlUp).Row
        cte = Application.WorksheetFunction.CountIf(ws.Range("F2:F" & btm), ">" & TimeOuv)        ' C'est la partie qui ne fonctionne pas, ou je cherche dans la colonne F toute les dates supérieures à la date d'ouverture
        If cte > 0 Then Envoie_mail
    End Sub
    J'ai lu que cela pouvait être causé par la codifaction anglosaxone des dates et j'ai essayé plusieurs combinaisons en mettant now en cdate, ou cdbl ou même CDbl(CDate(now)) mais je n'y arrive pas.

    J'attends vos recommandations.

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 406
    Par défaut
    Bonjour,

    Eventuellement, contourner le problème en utilisant la fonction Max, du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Application.WorksheetFunction.Max(ws.Range("F2:F" & btm)) > TimeOuv Then
    Cordialement.

  3. #3
    Membre averti
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Juillet 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2014
    Messages : 46
    Par défaut

    Parfait EricDgn ! Merci ça fonctionne.
    Je n'y avait pas pensé.

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

Discussions similaires

  1. [Excel] Nb.Si (countif) entre 2 dates
    Par steps5ive dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/02/2007, 16h29
  2. [Oracle 9] Requête sur une différence entre dates
    Par claralavraie dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/09/2006, 17h42
  3. obtenir toutes les dates valides comprises entre dates
    Par captainamerica75 dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/06/2006, 13h25
  4. [Dates] probleme avec mktime et interval entre dates
    Par steinfield dans le forum Langage
    Réponses: 7
    Dernier message: 18/05/2006, 12h47
  5. différence durée entre date jour/date champ
    Par debdev dans le forum Access
    Réponses: 9
    Dernier message: 30/11/2005, 16h55

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