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 :

Recherche valeur en vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut Recherche valeur en vba
    Bonjour,
    Je bloque sur un petit truc et j'ai besoin svp de votre aide..Merci

    J'ai dans un fichier excel (Feuille1) une liste de choix avec comme donnée par exemple: toto, maison, appartement.
    Dans une autre feuille: (Feuille2) j'ai des données dans la colonne A dont les valeurs de ma liste de choix
    Je souhaite récupérer dans la feuille1 cellule D1 par exemple le numéro de ligne de la colonne A feuille 2 qui correspond à la valeur choisi dans ma liste de choix
    J'utilise le code suivant qui marche bien si les données sont dans la même feuille mais pas si les données sont dans la feuille2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("Choix_Modele")) Is Nothing Then
     
    Range("D1") = Sheets(Feuille2).Range("A1:A100").Find(Range("Choix_Modele")).Row
     
    End If
     
    End Sub

  2. #2
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 369
    Par défaut
    Bonjour Younes,

    Es-tu sûr de la syntaxe "Feuille2" ? Ne serait-ce pas plutôt "Feuil2" ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut
    Citation Envoyé par révèr Voir le message
    Bonjour Younes,

    Es-tu sûr de la syntaxe "Feuille2" ? Ne serait-ce pas plutôt "Feuil2" ?

    Bonjour,
    Feuille2 c'est juste un exemple, dans mon code réel la feuille 2 a un nom spécifique:"Module"
    donc je ne pense pas que l'erreur vient de la..
    Merci

  4. #4
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 369
    Par défaut
    Dans ce cas, Sheets("Module"). Sans les guillemets, il s'agirait de la variable Module, or ce n'est pas le cas présentement

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut
    Citation Envoyé par révèr Voir le message
    Dans ce cas, Sheets("Module"). Sans les guillemets, il s'agirait de la variable Module, or ce n'est pas le cas présentement
    désolé j'ai déjà essayé avec ou sans les "", mais toujours la même erreur: "incompatibilité type"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("D1") = Sheets(Module).Range("A1:A100").Find(Range("Choix_Modele")).Row

  6. #6
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 369
    Par défaut
    Dans un premier temps, remets les guillemets. Même si tu as toujours l'erreur, c'est la syntaxe à respecter si ton nom de feuille est Module

    Retire le .Row à la fin

    Tu lui demandes à ce qu'une cellule soit égale à une ligne

  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 : 67
    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
    Bonjour à vous, Bonjour au Forum,

    En ce qui concerne la recherche, il vaut mieux s'assurer que celle-ci soit effective

    Ce avant d'utiliser une ou l'autre propriété (ici Row)

    Même si la recherche est effective de façon certaine, c'est une bonne attitude qu'il faudrait adopter.

    En ce qui concerne le retour escompté, la fonction Equiv peut aussi être utilisée.

    En VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WorsheetFunction.Match
    Celle-ci étant, éventuellement, augmentée ou diminuée selon la disposition des plages.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut
    J'ai tout essayé mais rien ne marche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("Choix_Modele")) Is Nothing Then
     
    Range("Q1") = Sheets("Modules").Range("A1:A100").Find(Range("Choix_Modele")).Row
     
     
    End If
     
    End Sub
    Le code fonctionne bien quand mes données sont dans la même feuille:

    Exemple: si tout les données sont dans la feuille : Feuil1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("Choix_Modele")) Is Nothing Then
     
    Range("Q1") = Range("A1:A100").Find(Range("Choix_Modele")).Row
     
     
    End If
     
    End Sub
    me retourne bien dans la cellule Q1 le numéro de ligne de de la cellule qui contient la valeur sélectionnée


    .......désolé mais je deviens fous avec ce truc la.... j'en suis sur que c'est tout bete....

  9. #9
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par younesssoleil Voir le message
    Ceci signifie : la feuille dont le nom est enregistré dans la variable nommée "Feuille2".
    Comme je ne vois aucune déclaration ni affectation de variable portant ce nom, je suppose que tu as oublié les guillemets pour signaler que ce nom est une chaine de caractères désignant le nom de la feuille.

Discussions similaires

  1. Recherche valeur supérieur - VBA
    Par adridech dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/10/2017, 23h44
  2. [XL-2003] Vba : recherche valeur dans tableau
    Par gandalf20000000 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/11/2010, 19h35
  3. Réponses: 1
    Dernier message: 02/09/2010, 16h05
  4. recherche valeur VBA
    Par coco1982 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/04/2009, 16h32
  5. [vba excel] Recherche valeur d'une textbox dans une feuille
    Par vanessaferraz dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/08/2006, 10h55

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