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 de Rowsource


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
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Par défaut Recherche valeur de Rowsource
    Bonjour,

    Comment puis je faire une recherche dans la rowsource (colonne 1) d'une combobox à partir de sa valeur saisie par un utilisateur.
    Merci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ComboBox1_Exit()
    
    
    If ComboBox1.Value = ComboBox1.RowSource Then
    	textbox1.Value = Combobox1.column(2)
    Else
    	textbox1.Value = ""
    End If
    
    End Sub]

  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
    Si tu utilises Rowsource, la ComboBox reprendra toutes les modifs de ta source. Si bien que ton test "If ComboBox1.Value = ComboBox1.RowSource Then" ne sert à rien.
    Pour obtenir la valeur de la colonne 2 après sélection dans ta liste, tu dois définir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ComboBox1.BoundColumn = 2
    Valeur que tu récupères en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textbox1.Value = Combobox1.value
    Pour définir l'affichage (1 par défaut) tu dois définir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ComboBox1.TextColumn = 1, 2, ou 3 ou 4 ...
    Enfin, pour récupérer le texte affiché après sélection, tu dois utiliser
    Bonne journée

  3. #3
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Par défaut
    je suis tout a fait d'accord avec toi et merci de ton aide mais si l'utilisateur saisie une donnée qui ne se trouve pas dans la liste moi je voudrais que cette valeur soit recherché dans la liste de ma combobox

  4. #4
    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
    Citation Envoyé par Jeyjey1 Voir le message
    mais si l'utilisateur saisie une donnée qui ne se trouve pas dans la liste
    Tu veux dire : "Si l'utilisateur saisit une donnée dans la textbox qui n'est pas dans la Combobox ?"

  5. #5
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Par défaut
    non non, si l'utilisateur saisie une donnée dans la combobox qui ne se trouve pas dans la rowsource de celle-ci (j'ai mal a la tête).....en fait la textbox n'est q'un conteneur suivant la condition

  6. #6
    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
    Si tu as défini RowSource, tu connais la colonne correspondante dans la feuille de calculs, à la colonne 2 de la Combobox
    Tu te contentes donc, avec Find, de chercher dans la colonne de ta feuille de calculs si la valeur saisie existe pour cette colonne.

    Edit
    Je crois comprendre ton problème. Au lieu de chercher dans la liste, l'utilisateur tape un mot...
    Si c'est ça, alors définis la propriété MatchEntry. Pour ça consulte l'aide en ligne sur cette propriété :
    Citation Envoyé par l"aide en ligne
    fmMatchEntryFirstLetter 0 Correspondance de base. Le contrôle recherche l'entrée suivante qui commence par le caractère saisi. La frappe répétée de la même lettre parcourt toutes les entrées commençant par cette lettre.
    fmMatchEntryComplete 1 Correspondance étendue. Pour la frappe de chaque caractère, le contrôle recherche une entrée correspondant à tous les caractères saisis (par défaut).
    fmMatchEntryNone 2 Aucune correspondance.

  7. #7
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Par défaut
    Voici mon vrai code je l'avais simplifier pour la compréhension.



    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
    20
    21
    22
    23
     Private Sub ComboBox2_exit(ByVal Cancel As MSForms.ReturnBoolean)
     
    if combobox2.value = 'se trouve bien dans le rowsource de ma combobox then
     
    New_desfr.Text = ComboBox2.Column(2)
    New_adddesfr.Text = ComboBox2.Column(1)
    New_desan.Text = ComboBox2.Column(4)
    New_adddesan.Text = ComboBox2.Column(3)
     
    Cells(ActiveCell.Row, 12).value = ComboBox2.Text
    Cells(ActiveCell.Row, 28).value = New_desfr.Text
    Cells(ActiveCell.Row, 27).value = New_adddesfr.Text
    Cells(ActiveCell.Row, 30).value = New_desan.Text
    Cells(ActiveCell.Row, 29).value = New_adddesan.Text
    Else
    New_desfr.Text = ""
    New_adddesfr.Text = ""
    New_desan.Text = ""
    New_adddesan.Text = ""
     
    End If
    end sub
    ]

Discussions similaires

  1. Excel fonction si+recherche valeur
    Par zoukah dans le forum Excel
    Réponses: 11
    Dernier message: 16/06/2008, 08h58
  2. Recherche Valeur d'un enregistrement
    Par Daniel MOREAU dans le forum Access
    Réponses: 7
    Dernier message: 11/04/2006, 13h39
  3. Recherche valeur dans table Access
    Par Stefloulou dans le forum Access
    Réponses: 1
    Dernier message: 05/11/2005, 08h45
  4. [Tableaux] Recherche valeur dans tableaux
    Par Kaimann dans le forum Langage
    Réponses: 10
    Dernier message: 21/10/2005, 11h57
  5. recherche valeur maximale entre deux champs
    Par maysa dans le forum Langage SQL
    Réponses: 6
    Dernier message: 25/05/2005, 09h40

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