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 :

FIND sur DATE incompréhensible.


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut FIND sur DATE incompréhensible.
    Bonjour tout le monde,

    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
     
    WMemo_Date = CDate("01/" & G_MOIS & "/" & G_ANNEE)
    WTrouve = False
    WLig_Trouve = 0
    Dim OBJ_FICCOM As Object
    'cherche l'occurence dans la colonne 1
    Set OBJ_FICCOM = Columns(1).Find(WMemo_Date, LookIn:=xlValues)
    'Si elle est trouvé, renseigne WLig_Trouve avec le N° de ligne
    If Not OBJ_FICCOM Is Nothing Then
    WTrouve = True
    WLig_Trouve = OBJ_FICCOM.Row
    Else
    WTrouve = False
    WLig_Trouve = 0
    End If
    Voici donc le code que j'utilise pour retrouver une date dans la première colonne de ma feuille.
    La variable G_MOIS contient "01", donc je cherche le 01/01/2011.
    Mais, en mode débuggage, le SET me positionne systématiquement sur le 01/11/2011.
    (La colonne est bien au format DATE).
    Incompréhensible, vous dis-je
    Bon, bref, j'espère que vous allez pouvoir m'aider, parce que je suis entrain de craquer.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    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
    Dim WMemo_Date As Date
    Dim OBJ_FICCOM As Range
    Dim WTrouve As Boolean
    Dim WLig_Trouve As Long
    Dim G_MOIS As Byte
    Dim G_ANNEE As Integer
     
    G_MOIS = 1
    G_ANNEE = 2011
     
    WMemo_Date = CDate("01/" & G_MOIS & "/" & G_ANNEE)
    'cherche l'occurence dans la colonne 1
    Set OBJ_FICCOM = Worksheets("Feuil1").Range("A:A").Find(WMemo_Date, LookIn:=xlFormulas)
    'Si elle est trouvé, renseigne WLig_Trouve avec le N° de ligne
    If Not OBJ_FICCOM Is Nothing Then
        WTrouve = True
        WLig_Trouve = OBJ_FICCOM.Row
        Set OBJ_FICCOM = Nothing
    Else
        WTrouve = False
        WLig_Trouve = 0
    End If

  3. #3
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Merci, mais ça ne fonctionne pas.
    Avec ta méthode, ça me renvoie systématiquement "Nothing" alors que la valeur existe bien.

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Tes dates en colonne A sont issues de formules ou écrites en dur et quel est leur format?

  5. #5
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    C'est un fichier CSV que je charge, donc elles sont bien en dur et quand je regarde le format des cellules, j'ai bien "Date".

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu...!!!
    bonjour

    a tout hazard

    si tu a mi ta date dans ta cellule avec l'outil formule


    tu a peut etre un espace devant la date
    j'ai le meme probleme chez moi avec 2007

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set OBJ_FICCOM = Worksheets("Feuil1").Range("A:A").Find(" " & WMemo_Date, LookIn:=xlFormulas
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Nan, j'ai vérifié à tout hasard, mais je n'ai pas d'espace, ni avant, ni après.

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re

    ta variable si comme dans l'exemple de mercatog est egale à "1" il est possible que ca ne marche pas c'est "01" selon le format utilisé dans ta cellule

    a regarder

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    J'y ai pensé aussi, mais vérification faite, il y a bien "01".

    Je viens de tester ça qui fonctionne nickel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    i = 1
    WTrouve = False
    WLig_Trouve = 0
    While i <= ActiveCell.SpecialCells(xlLastCell).Row And WTrouve = False
        WDate_Lue = Cells(i, 1).Value
        If WDate_Lue = WMemo_Date Then
            WTrouve = True
            WLig_Trouve = i
        End If
        i = i + 1
    Wend
    Mais c'est quand même bourrin comme méthode et surtout, je pense que ça va ralentir les traitements.
    De plus, je voudrai bien comprendre pourquoi la première méthode ne fonctionne pas car j'utilise très souvent la méthode FIND de la même manière et je voudrai pouvoir lui faire confiance ou alors corriger ce qui ne va pas.

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re

    comment se presente ta date en dur chez toi


    ecrit la moi tel qu'elle se presente chez toi

    je vais faire des tests

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #11
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Lorsque je vérifie le format de cellule, c'est le premier format noté "*14/03/2001" qui est bien sélectionné.
    La feuille se compose de 2 colonnes : DATES et VALEURS, fait 307 lignes de 01/01/2011 à 03/11/2011 dans la première colonne.

    01/01/2011 0
    02/01/2011 0
    03/01/2011 29
    04/01/2011 18
    05/01/2011 23
    06/01/2011 39
    07/01/2011 18
    ...
    ...
    ...
    27/10/2011 35
    28/10/2011 34
    29/10/2011 0
    30/10/2011 0
    31/10/2011 6
    01/11/2011 0
    02/11/2011 29
    03/11/2011 0

  12. #12
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    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
    Sub Description3()
    Dim WMemo_Date As Date
    Dim OBJ_FICCOM As Range
    Dim WTrouve As Boolean
    Dim WLig_Trouve As Long
    Dim G_MOIS As Byte
    Dim G_ANNEE As Integer
     
    G_MOIS = 2
    G_ANNEE = 2011
     
    WMemo_Date = CDate("01/" & G_MOIS & "/" & G_ANNEE)
    'cherche l'occurence dans la colonne 1
    Set OBJ_FICCOM = Worksheets("Feuil1").Range("A:A").Find(Format(WMemo_Date, "m/d/yyyy"), LookIn:=xlValues, lookat:=xlWhole)
    'Si elle est trouvé, renseigne WLig_Trouve avec le N° de ligne
    If Not OBJ_FICCOM Is Nothing Then
        WTrouve = True
        WLig_Trouve = OBJ_FICCOM.Row
        Set OBJ_FICCOM = Nothing
    Else
        WTrouve = False
        WLig_Trouve = 0
    End If
    End Sub

  13. #13
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Bon, je ne comprend rien à rien et encore moins que ça.
    Tout refonctionne normalement.
    Je n'ai pourtant rien touché.
    Le code que j'ai mis en premier post fonctionne impec.

    Voila les 3 tests que j'ai fait :
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    WMemo_Date = CDate("01/" & G_MOIS & "/" & G_ANNEE)
    WTrouve = False
    WLig_Trouve = 0
    Dim OBJ_FICCOM As Object
    'cherche l'occurence dans la colonne 1
    Set OBJ_FICCOM = Columns(1).Find(WMemo_Date, LookIn:=xlValues)
    'Si elle est trouvé, renseigne WLig_Trouve avec le N° de ligne
    If Not OBJ_FICCOM Is Nothing Then
        WTrouve = True
        WLig_Trouve = OBJ_FICCOM.Row
    Else
        WTrouve = False
        WLig_Trouve = 0
    End If
    -----------------------------------------------------------------
    Dim WMemo_DateZZ As Date
    Dim OBJ_FICCOMZZ As Range
    Dim WTrouveZZ As Boolean
    Dim WLig_TrouveZZ As Long
    Dim G_MOISZZ As Byte
    Dim G_ANNEEZZ As Integer
     
    G_MOISZZ = 1
    G_ANNEEZZ = 2011
     
    WMemo_DateZZ = CDate("01/" & G_MOISZZ & "/" & G_ANNEEZZ)
    'cherche l'occurence dans la colonne 1
    Set OBJ_FICCOMZZ = Worksheets("TEMP").Range("A:A").Find(Format(WMemo_DateZZ, "m/d/yyyy"), LookIn:=xlValues, lookat:=xlWhole)
    'Si elle est trouvé, renseigne WLig_Trouve avec le N° de ligne
    If Not OBJ_FICCOMZZ Is Nothing Then
        WTrouveZZ = True
        WLig_TrouveZZ = OBJ_FICCOMZZ.Row
        Set OBJ_FICCOMZZ = Nothing
    Else
        WTrouveZZ = False
        WLig_TrouveZZ = 0
    End If
    -----------------------------------------------------------------
    i = 1
    WTrouve = False
    WLig_Trouve = 0
    While i <= ActiveCell.SpecialCells(xlLastCell).Row And WTrouve = False
        WDate_Lue = Cells(i, 1).Value
        If WDate_Lue = WMemo_Date Then
            WTrouve = True
            WLig_Trouve = i
        End If
        i = i + 1
    Wend
    Si quelqu'un a une explication du pourquoi du comment, je suis preneur.
    Je vais quand même quitter totalement Excel et refaire les tests, on ne sait jamais.

    Edit : bon, fausse alerte, après avoir quitter et relancer Excel, la méthode 1 recherche toujours le 01/11/2011 au lieu du 01/01/2011 demandé, mais les méthode 2 et 3 fonctionnent.

    Je met un point d'arrêt et je trace. Au premier coup, après avoir lrenacer Excel, ça ne fonctionne pas. Je stoppe et je relance directement, sans rien faire d'autre et là, ça fonctionne !!!

    Rhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Au secours !

    (@Mercatog : pour mon info, est-ce que tu peux m'expliquer pourquoi tu déclare G_MOIS en Byte, stp ?)

  14. #14
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Citation Envoyé par Zebulon777
    Si quelqu'un a une explication du pourquoi du comment, je suis preneur.
    Ton code a toujours fait ce que tu lui a demandé

    01/01/2011 est "compris" dans 01/11/2011 si on considère que tu as mis des jokers (?) dans ta recherche ce que tu fais explicitement en spécifiant dans les paramètres LookAt:=xlPart ou en le faisant implicitement car c'est le paramètre par défaut ou bien celui mémorisé dans la dernière recherche qui peut ne pas être du VBA.

    Si, comme conseillé dans l'aide, tu mets de façon explicite touts les paramètres, tu te protèges contre les phénomènes d'incompréhension.
    en notifiant , tu lui imposes une recherche sans joker et tu as le résultat escompté.

    et surtout, il faut se souvenir que :
    Les paramètres des arguments RechercherDans, Regarder, OrdreRecherche et RespecterNbreOctets sont enregistrés chaque fois que vous utilisez cette méthode. Si vous ne spécifiez aucune valeur pour ces arguments lors du prochain appel à la méthode, les valeurs enregistrées sont utilisées. Le fait de définir ces arguments modifie les paramètres de la boîte de dialogue Rechercher, ce qui a pour effet de changer les paramètres enregistrés qui sont utilisés lorsque vous ne spécifiez pas les arguments. Pour éviter toute ambiguïté, définissez ces arguments explicitement chaque fois que vous utilisez cette méthode.
    donc une bonne syntaxe, selon finalité voulue serait du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set OBJ_FICCOM = Columns(5).Find(What:=WMemo_Date, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, _
    SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=True)

    à noter l'emploi de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SearchOrder:=xlByColumns
    cordialement,

    Didier

  15. #15
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Ho purée ! CQFD !

    J'ai utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Set OBJ_FICCOM = Columns(1).Find(What:=WMemo_Date, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, _
    SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=True)
    Tous les derniers tests semblent fonctionner.

    Et question surement très bête, mais est-ce qu'il faut mettre systématiquement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set OBJ_FICCOM = Nothing
    ?

  16. #16
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Citation Envoyé par Zebulon777 Voir le message
    Et question surement très bête, mais est-ce qu'il faut mettre systématiquement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set OBJ_FICCOM = Nothing
    ?
    Oui, dirons nous, tu détruit de façon volontaire le pointeur vers l'objet, ce qui se ferait automatiquement selon le contexte en sortie de portée, fin de procédure etc...

    Mais c'est une très bonne pratique de le faire de façon explicite, ça montre que tu maîtrise ton code et ce que tu fais et donc t'économise bien plus de temps en maintenance et débogage que ça t'en a coûté à l'écrire. Surtout dans le cas de code plus complexe ou tu travailles sur diverses instances de programmes Office etc...

    cordialement,

    Didier

  17. #17
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Super.
    Merci beaucoup à tous les 3 pour le coup de main.
    Y a pas à dire, on sait où sont les bons...

  18. #18
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Je relance le sujet car je viens de me rendre compte que dans certains cas, je me retrouve avec une "incompatibilité de type".

    Je pense que c'est du au fait que dans la colonne, après traitement, il y a des lignes qui contiennent du texte, mais je n'en suis pas certain.

    Est-ce qu'il y a un moyen d'éviter l'erreur ?

    Voila 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
     
        Sheets(P_FeuilleTraficAnnuel).Select
    'Recherche si la date a déjà été traitée.
        WMemo_Date = CDate("01/" & G_MOIS & "/" & G_ANNEE)
        WTrouve = False
        WLig_Trouve = 0
        Dim OBJ_TRAFIC As Object
        'cherche l'occurence dans la colonne 2
    ''''''''''    Set OBJ_TRAFIC = Columns(2).Find(WMemo_Date, LookIn:=xlValues)
        Set OBJ_TRAFIC = Columns(2).Find(What:=WMemo_Date, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, _
        SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=True)
     
        'Si elle est trouvé, renseigne WLig_Trouve avec le N° de ligne
        If Not OBJ_TRAFIC Is Nothing Then
            WTrouve = True
            WLig_Trouve = OBJ_TRAFIC.Row
        Else
            WTrouve = False
            WLig_Trouve = 0
        End If
        Set OBJ_TRAFIC = Nothing
    Je précise que lorsque j'utilise la ligne en commentaire ('''''''''' Set OBJ_TRAFIC = Columns(2).Find(WMemo_Date, LookIn:=xlValues)), ça fonctionne, je n'ai pas l'erreur.

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re bonjour

    j'ai fait les test sur les 307 lignes avec la formule n°1 des dates et ecrites en dur dans les cellules et chez moi ca fonction comme ca

    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
     
    Sub truc_machin()
    Dim WMemo_Date As Date, G_MOIS As Variant, G_ANNEE As Variant
    G_MOIS = 1
    G_ANNEE = "2011"
     
    WMemo_Date = CDate("01/" & G_MOIS & "/" & G_ANNEE)
     
    With Sheets(1).Range("a1:a" & Sheets(1).Range("a65530").End(xlUp).Row)
        Set c = .Find(WMemo_Date, LookIn:=xlFormulas)
        If Not c Is Nothing Then
            firstAddress = c.Address
    MsgBox c.Address
    End If
    End With
    End Sub
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  20. #20
    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
    Citation Envoyé par patricktoulon Voir le message
    (...)

    j'ai fait les test sur les 307 lignes avec la formule n°1 des dates et ecrites en dur dans les cellules et chez moi ca fonction comme ca
    (...)
    peu-être aujourd'hui mais as tu compris :
    Citation Envoyé par Ormonth Voir le message
    (...)
    et surtout, il faut se souvenir que :
    Les paramètres des arguments RechercherDans, Regarder, OrdreRecherche et RespecterNbreOctets sont enregistrés chaque fois que vous utilisez cette méthode. Si vous ne spécifiez aucune valeur pour ces arguments lors du prochain appel à la méthode, les valeurs enregistrées sont utilisées. Le fait de définir ces arguments modifie les paramètres de la boîte de dialogue Rechercher, ce qui a pour effet de changer les paramètres enregistrés qui sont utilisés lorsque vous ne spécifiez pas les arguments. Pour éviter toute ambiguïté, définissez ces arguments explicitement chaque fois que vous utilisez cette méthode.
    (...)
    ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2010] Méthode Find sur des dates
    Par silver64 dans le forum Excel
    Réponses: 3
    Dernier message: 16/03/2012, 20h36
  2. [Toutes versions] Confusion de résultats dans recherche des occurrences d'une valeur avec Find sur des dates
    Par iperkut dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/11/2011, 19h07
  3. [Debutant(e)]operation sur dates
    Par sUrTr dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 11/10/2004, 15h58
  4. Resutlat de calcul sur date formaté
    Par neness dans le forum SQL
    Réponses: 6
    Dernier message: 16/06/2004, 15h34
  5. Calcul sur date
    Par Thomad dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/09/2003, 08h55

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