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 :

Pb. méthode find et dates


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Par défaut Pb. méthode find et dates
    Bonjour à tous,

    Je débute en VBA sous excel et je bute sur un problème de recherche de date (dans une liste comportant toutes les dates du 31/08/1992 au 31/12/2006)...
    Voici le code que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Datedeb1 as date
     
    Set Madatedeb = DateEntrée.Find(Datedeb1)
    If Not Madatedeb Is Nothing Then
    PremAdressedeb = Madatedeb.Address
    End If
    Cela semble fonctionner sauf pour le 01/01/1992. Madatedeb me retourne l'adresse du 01/11/1992 alors qu'il ne devrait rien me retourner !!!
    Merci pour votre aide...Je sèche!!!

  2. #2
    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
    On manque d'infos, (DateEntrée ?) donne un peu plus de code

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Par défaut Méthode find et dates
    Voici un petit plus de code. La date à trouver (ici le 01/01/1992) est récupérée sur une autre feuille dans un variant (avec une mauvaise année) = Datedeb. Ensuite devient Datedeb1 avec la bonne année.
    DateEntrée est la plage de cellule contenant les dates dans laquelle je dois trouver Datedeb1.

    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
    Dim DateEntrée As Range
    Dim Datedeb1 as date
    Dim Datedeb As Variant (=01/01/2006)
     
    Datedeb1 = CDate(Datedeb)
    Jourdeb = CInt(Left(Datedeb1, 2))
    Moisdeb = CInt(Mid(Datedeb1, 4, 2))
    Datedeb1 = DateSerial(Année, Moisdeb, Jourdeb)
     
    Set DateEntrée = Range("B4:B5239")
     
    Set Madatedeb = DateEntrée.Find(Datedeb1)
    If Not Madatedeb Is Nothing Then
    PremAdressedeb = Madatedeb.Address
    End If
    D'avance merci.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour Kriss0909,

    Si vous remplacez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Datedeb As Variant (=01/01/2006)
     
    par
     
    Dim Datedeb As Variant
     
    Datedeb = "01/01/2006"
    normalement cela fonctionne à part la variable Année dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Datedeb1 = DateSerial(Année, Moisdeb, Jourdeb)
    dont on ne sait pas où elle est initialisée.
    Dernière modification par Invité ; 10/09/2007 à 17h09.

  5. #5
    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
    Tu peux aussi tester ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Range("B4:B5239")
          Set Madatedeb = .Find(Datedeb1)
          if not MaMadatedeb is Nothing then
    Mais tout va dépendre du format de date de ta feuille de calculs.
    Ex : si tu as saisi tes dates sous le format "d/m/aaaa" et que le format de la colonne est "dd/mm/aaaa", si tu recherches selon ce dernier format, il y a peu de chances que find retrouve la donnée.
    Tu dis, il y a une solution si tu as ce pb.
    A+

  6. #6
    Futur Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Par défaut
    Un grand merci à tous !
    Le problème venait effectivement du format date de mes données d'origine. Elle étaient en dd/mm/yyyy. Je les ai passées en d/m/yy et ça marche !

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

Discussions similaires

  1. [XL-2007] Méthode Find avec une date
    Par Dragi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/04/2012, 17h41
  2. [XL-2010] Méthode Find sur des dates
    Par silver64 dans le forum Excel
    Réponses: 3
    Dernier message: 16/03/2012, 20h36
  3. Attribut date et méthode find
    Par .mok. dans le forum Ruby on Rails
    Réponses: 0
    Dernier message: 19/06/2008, 20h34
  4. Méthode find sensible aux cellules fusionnées?
    Par spileo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/09/2006, 01h22
  5. Utilisation de la méthode FIND
    Par Jeannot45 dans le forum Access
    Réponses: 3
    Dernier message: 09/01/2006, 15h41

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