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 Find et variable [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 32
    Par défaut fonction Find et variable
    Bonjour,
    je viens encore vers vous pour une autre galère

    je dois faire une recherche de date dans une feuille , mais cette date n'est jamais fixe
    pour mon exemple en "G5" j'ai une date et je lui demande de me la retrouver dans une plage

    j'ai essayé plusieurs choses mais rien ne marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    i = Range("G5").Value
     
    x = [A1:B500].Find(What:=i.Value, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns).Address
    MsgBox x

  2. #2
    Expert confirmé
    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 : 68
    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
    Billets dans le blog
    7
    Par défaut RECHERCHE DATE
    Bonjour et bienvenu sur le Forum,

    La recherche de date est toujour délicate avec la méthode Find.

    En premier lieu,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    i = Range("G5").Value
     
    x = [A1:B500].Find(What:=i.Value,
    Sachant que ta variable i est déjà une valeur, il est redondant de coder

    D'autre part, tu ne précises pas le message d'erreur et l'emplacement d'arrêt du débogueur, soit l'endroit où le code tombe en erreur.

    A plus donc.

  3. #3
    Membre averti
    Inscrit en
    Février 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 32
    Par défaut
    Citation Envoyé par MarcelG Voir le message
    D'autre part, tu ne précises pas le message d'erreur et l'emplacement d'arrêt du débogueur, soit l'endroit où le code tombe en erreur.

    A plus donc.
    alors j'ai l'erruer d'execution 424 , objet requis sur la ligne x = [A1:B500].Find(What...........

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    A essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x = [A1:B500].Find(What:= Cdate(Range("G5").Value), LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns).Address

  5. #5
    Expert confirmé
    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 : 68
    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
    Billets dans le blog
    7
    Par défaut recherche date
    Bonjour Jérôme,

    Ou bien si les 2 éléments (cellule G5 et champ de recherche) sont au format date, alors la recherche peut s'effectuer sur les valeurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Sub ESSAI()
    i = Range("G5").Value
    x = [A1:B500].Find(What:=i, LookIn:=xlValues).Address
    MsgBox x
    End Sub

  6. #6
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    alors j'ai l'erruer d'execution 424 , objet requis sur la ligne x = [A1:B500].Find(What...........
    Cette erreur survient quand Find retourne "Nothing"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim rg as Range
    Set rg = [A1:B500].Find(What:= Cdate(Range("G5").Value), LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns)
    If not Rg is nothing then
        x = Rg.Address
    End if

  7. #7
    Expert confirmé
    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 : 68
    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
    Billets dans le blog
    7
    Par défaut recherche date
    Jérôme,

    J'ai testé ton code.

    Si les 2 champs sont constitués de date, alors ce code tombe en erreur.Par contre, il est bien efectif si la recherche s'effectue non pas sur les formules mais sur les valeurs.

    Merci pour ton retour.

  8. #8
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Si les 2 champs sont constitués de date, alors ce code tombe en erreur.Par contre, il est bien efectif si la recherche s'effectue non pas sur les formules mais sur les valeurs.
    Tu fais bien de remonter ce problème, car je n'ai pas testé avec un range.value dans la recherche, mais avec une variable String.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim rg as Range
    Set rg = [A1:B500].Find(What:= Cdate(Range("G5").Value), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns)
    If not Rg is nothing then
        x = Rg.Address
    End if

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

Discussions similaires

  1. Problème de type de variable avec la fonction find
    Par Sarune dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/11/2008, 17h06
  2. Fonctions constantes et variables constantes
    Par TabrisLeFol dans le forum Langages de programmation
    Réponses: 11
    Dernier message: 13/03/2006, 07h37
  3. [VBA-E]Fonction .find
    Par marie10 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/01/2006, 11h03
  4. [VBA-E] Fonction "FIND"
    Par cinc dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/09/2005, 11h16
  5. Réponses: 1
    Dernier message: 20/07/2005, 09h13

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