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 :

Fonction Range.Find en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 14
    Points : 26
    Points
    26
    Par défaut Fonction Range.Find en VBA
    Bjr à tous,

    Je suis dubitatif avec la fonction .Find de l'objet Range.
    Quand il s'agit de rechercher des 'strings' dans une feuille ou un colonne de Strings, pas de pb.
    Pour les dates, c'est déjà plus coton : il semble qu'il faille tenir compte du .NumberFormat de la colonne
    Ex /
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set le_Range=Sheet.range("A1:A20")
    ' La première ligne est celle d'un libellé
    Form=le_Range.cells(2).Numberformat
    Set cellule=le_Range.Find(What:=Format(la_date,Form), etc ...)
    Ce qui semble fonctionner
    En revanche, pour rechercher une valeur numérique dans une colonne, l'action manuelle fonctionne, mais la même chose en VBA ne fonctionne pas. Je tiens le code à la disposition de ceux qui savent ...

    Cordialement
    FB

  2. #2
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Il faut utiliser Find avec xlFormulas et rechercher une valeur de type date (Short Date).
    vWhat = cdate(vardata) ou vWhat = Format(varData, "Short Date")


    Il trouve alors toutes les cellules au format date (qu'importe le format date).

    Si tu cherches avec xlValues, il trouvera seulement dans les cellules au format Short Date



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim vWhat As Variant
     Dim varData As Variant
     varData = InputBox(Prompt:="Taper la valeur recherchée!")
     
     If IsDate(varData) Then
       vWhat = CDate(varData) ' ou Format(varData, "Short Date")
       ElseIf IsNumeric(varData) Then
        vWhat = CDbl(varData)
       Else
      vWhat = varData
     End If
     
    Set cell = Cells.Find(What:=(vWhat), After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder _
    :=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
    Cordialement

    Docmarti.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 14
    Points : 26
    Points
    26
    Par défaut
    Bjr,
    Merci de cette réponse

    Mais après quelques tests, j'ai l'impression que le pb est plus complexe, selon que l'on fait des recherches sur des valeurs entières ou partielles, etc ...
    Dès que j'aurai tout investiguer à partir de ce que tu m'as indiquer, je reviendrai vers le forum

    Cdlt
    FB

  4. #4
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut recherche date
    Bonjour,

    Une recherche Google avec par exemple Excel chercher (rechercher) date devrait te fournir de nombreuse pistes

    D'autre part, j'avais lu un exposé intéressant à ce sujet.

    Je n'arrive pas à le retrouver. Et je me permets de le mettre en pièce jointe.
    Fichiers attachés Fichiers attachés

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Voir aussi la discussion Impossible de trouver des date existantes
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

Discussions similaires

  1. Recherche la fonction équivalente à Find de VBA en VB6
    Par VBAG38 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 21/12/2012, 09h54
  2. Création graph sous vba avec fonction Range
    Par chrystobale dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/03/2009, 13h33
  3. [E-03] Aide sur la Fonction .Find dans VBA
    Par Gunsx dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/01/2009, 22h36
  4. [VBA-E]Probleme avec la fonction Range
    Par pec dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2006, 11h36
  5. [VBA-E]Fonction Range
    Par LE MEAUX dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/02/2006, 07h50

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