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 faire une recherche de date


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut VBA faire une recherche de date
    Bonjour à tous,

    je suis sur un code en VBA pour réaliser une recherche sur une ligne dans un document excel.

    Le terme de recherche est 30/10/2016 ou 10/2016, mais avec mon code vba il arrive pas à le retrouver.
    Par contre (pour tester) je recherche le caractère "toto" il me le trouve bien.

    Donc je pense que c'est le terme ou le format de la cellule qui pose un problème, mais je ne vois pas lequel:


    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 Cherche()
    'déclaration des variables :
    Dim Trouve As Range, PlageDeRecherche As Range
    Dim Valeur_Cherchee As String, AdresseTrouvee As String
     
    '********* à adapter ***********
    'affectation de valeurs aux variables :
        'on cherche le mot "Trouve"
    Valeur_Cherchee = "a"
        'dans la première colonne de la feuille active
        Sheets("Cumul-Stock-mort").Select
        Rows("1:1").Select
     
        Dim x As Range
    Set x = Range("1:1").Find("01/10/2016", LookIn:=Values, lookat:=xlWhole)
    If Not x Is Nothing Then MsgBox x.Column
     
    End Sub
    Quelle erreur est-je commis dans code?

    Merci d'avance pour votre aide

    guigui69

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set x = Range("1:1").Find("2016-10-01", LookIn:=Values, lookat:=xlWhole)

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour à tous,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set x = Range("1:1").Find(DateValue("30/10/2016"), LookIn:=xlFormulas, lookat:=xlWhole)
    devrait trouver ta date qq soit le format d'affichage.
    eric

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set X = Range("1:1").Find(CDate("30/10/2016"), , xlValues, xlWhole)

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    A noter qu'avec xlValues on est tributaire du format d'affichage, la valeur cherchée String doit correspondre.
    Avec xlFormulas la recherche est sur le numéro de série et est insensible au format d'affichage.
    eric

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Tout à fait Eric, si la colonne ou ligne contient des dates avec un format de date valide, CDate() permet de transformer un String en format de date valide et les deux doivent correspondre bien sûr, ce qui pose une contrainte contrairement à ton exemple !

Discussions similaires

  1. [XL-2010] VBA : mémoriser une information et faire une recherche
    Par LizLisonLisette dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/05/2016, 13h59
  2. [XL-2007] Comment faire une recherche via VBA
    Par medino55 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/03/2012, 12h13
  3. [XL-2007] Faire une recherche avec VBA ou fonction
    Par matinho dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/08/2010, 11h01
  4. faire une recherche sans tenir compte de la casse
    Par richard038 dans le forum SQL
    Réponses: 5
    Dernier message: 11/10/2005, 09h07
  5. cherche une fonction qui permet de faire une recherche
    Par vbcasimir dans le forum Langage
    Réponses: 7
    Dernier message: 01/09/2005, 17h24

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