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-E]Editer UserForm Recherche


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Mai 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 36
    Par défaut [VBA-E]Editer UserForm Recherche
    Bonsoir à toutes et à tous,

    Dans une feuille Excel, j'ai dans la colonne A des noms de gares.
    Dans la colonne B les codes correspondants.
    L'ensemble de ces données représente environ 10 000 noms de gares.
    Ex : Colonne A : LONGUEAU - Colonne B : FRCQL

    Totalement dédutant en VBA, je souhaite éditer un UserForm qui permette à partir d'un champ à renseigner, de renvoyer la réponse correspondante.

    Je m'explique : si je tape FRCQL, j'obtiens comme réponse LONGUEAU et inversement.

    J'espère avoir était assez explicite ;-)

    D'avance merci pour les réponses qui me seront apportées et longue vie au forum.

    Bien cordialement.

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Par défaut
    Fais 2 combobox contenant :
    - le 1er : l'ensemble des gares
    - le 2nd : l'ensemble des codes

    Récupère dans une variable le choix qui aura été fait (dans mon cas, tu peux faire un choix sur les gares ou bien sur les codes).
    Ensuite grace à cette variable (ex : on a choisi Longueau), on parcourt la colonne A grace à un while.
    (Exemple : la ligne est la 10ème)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    i = 0
    while feuil.range("A" & i).text <> "Longueau"
    i = i + 1
    wend
    Tu n'as plus qu'à faire feuil.range("B" & i) et tu récupères le code correspondant à ton choix.

  3. #3
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    Un petit truc tout simple serait de faire une combobox (zone de liste déroulante) dans ton userform.

    Modifier quelques propriétés :
    • Match Required = True
    • ColumnCount = 2
    • ColumnWidths = ;0
    • (Name) = cboGares
    par exemple ...


    Faire un code qui remplisse ta liste à l'ouverture du Userform :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub UserForm_Initialize()
        Me.MonCombobox.RowSource=MaFeuille.Range(CelluleEnHautADroite).currentRegion.Address(false,false,xlA1,true) 
    End Sub
    Donc, maintenant, tu as une liste avec deux colonnes, mais une seule visible : celle des codes.
    Pour faire apparaitre la gare à côté, tu peux, par exemple, faire une étiquette... un label quoi


    Création d'un label
    • (Name) = lblGare
    • Value=""
    Maintenant, tu peux créer la procédure d'évènements sur cboGares :
    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
     
    Private Sub cboGares_Change()
        on error goto cboGares_Err
        lblGare.Caption=cboGares.Columns(1)
    FinProg:
        Exit Sub
    cboGares_Err:
        Select case err.number
            Case 381
                lblGare.Caption ="Code invalide"
            Case else
                msgbox "Erreur n°" & err.number & vbcrlf & err.description, vbCritical,"Oups !"
        End Select
        resume Finprog
    End Sub
    C'était juste un exemple !
    A toi d'adapter

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

Discussions similaires

  1. [VBA-E] effectuer une recherche dans un autre classeur
    Par sebneb dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 07/01/2007, 11h47
  2. [VBA-Excel] Effectuer une recherche dans une liste view
    Par Miles Raymond dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/11/2006, 17h21
  3. [VBA-E] Recupéré une recherche par find
    Par comme de bien entendu dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/11/2006, 14h58
  4. [SQL]vs[VBA] dans formulaire de recherche
    Par alex.a dans le forum Access
    Réponses: 3
    Dernier message: 28/07/2006, 16h20
  5. [VBA-E] PROBLEME de recherche entre colonnes
    Par july92 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/02/2006, 09h35

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