Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion luke3300
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

luke3300

XLDnaute Impliqué
Bonjour à tous,

je suis en train de me confectionner un fichier de coordonnées et il me manque le code pour que ma userform soit complètement opérationnelle.

Ce que j'aimerais, c'est que quand je clic sur "recherche rapide", une userform s'ouvre (ça j'ai déjà fait et c'est OK) et que je puisse sélectionner ou trouver en entrant les 1eres lettres dans la listbox "Nom" le nom de la personne que je recherche (ça aussi je suis parvenu à faire), en même temps, les autres champs TXT de la userform se rempliront suivant les coordonnées enregistrées dans la base de données qui s'y rapporte.

Je mets mon fichier en joint afin d'avoir plus facile.

Si quelqu'un pouvait me dépanner, j'en serais ravi parce que je sèche dessus depuis ce matin :-(

Un grand merci d'avance et bon samedi.
 

Pièces jointes

Re : Userform

Rebonsoir le forum,

je vais donner un peu de précision sur le code que j'utilise.

En fait jusqu'à présent, la sélection du Nom/prénom fonctionne dans ma userform mais ce que je n'arrive pas à trouver c'est comment activer ma LST_nom pour que les informations liées au nom sélectionné s'affiche correctement dans les cases TXT de la userform.

Voici mon code pour la userform:

Code:
Private Sub UserForm_Activate()
Worksheets("BD").Select
    Range("A1").CurrentRegion.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

    Range("A2").Select
    If ActiveCell.Value = "" Then
        Range("A1").Select
        Worksheets("Consultation").Select
        MsgBox ("Pas de nom à rechercher")
        FRM_recherche.Hide
        Exit Sub
    End If
    LST_nom.Clear
    Do While ActiveCell.Value <> ""
        LST_nom.AddItem (ActiveCell.Value & " " & ActiveCell.Offset(0, 1).Value)
        ActiveCell.Offset(1, 0).Select
    Loop
    LST_nom.ListIndex = 0
    Worksheets("Consultation").Select
    
    Worksheets("BD").Select
    If ActiveCell.Value = "Nom" Then
        FRM_consulter.Hide
        Worksheets("Consultation").Select
        Exit Sub
    End If
    LST_nom = ActiveCell.Value
    TXT_telephone.Value = ActiveCell.Offset(0, 8).Value
    TXT_gsm.Value = ActiveCell.Offset(0, 9).Value
    TXT_rue.Value = ActiveCell.Offset(0, 2).Value
    TXT_numero.Value = ActiveCell.Offset(0, 3).Value
    TXT_cp.Value = ActiveCell.Offset(0, 5).Value
    TXT_localite.Value = ActiveCell.Offset(0, 6).Value
    Worksheets("Consultation").Select
End Sub

Voici celui de mon bouton "valider": (qui ne fonctionne pas)

Code:
Private Sub BTN_valider_Click()
Dim Nom_BD As Value
   Dim Choix, Intitule_BD As String
   
   Choix = LST_nom.Value
   Nom_BD = Value(Left(Choix, InStr(Choix, "#") - 1))
   Intitule_BD = Right(Choix, Len(Choix) - InStr(Choix, "#"))
   Worksheets("BD").Select
   Range("A2").Select
   Do Until (ActiveCell.Value = Non_BD) And (ActiveCell.Offset(0, 1).Value = Intitule_BD)
        ActiveCell.Offset(1, 0).Select
   Loop
End Sub

Quelqu'un peut-il me renseigner?

Merci d'avance et bon dimanche.

PS: je remets ici mon fichier au fomat xls pour eux qui n'utilisent pas la ersion 2007
 
Re : Userform

Salut,

Connaissant un peu ton fichier, j'ai jeté un oeil, et il faut que tu m'expliques ce qu'est Choix dans le code du bouton Vadlider parce que j'ai beau cherché, je ne vois pas du tout.

En espérant quelques info supplémentaires,

@+
 
Re : Userform

Bonsoir Porcinet,

en fait choix ce n'est rien en rapport avec le fichier. C'est un code que j'ai récupéré d'un autre fichier et je n'arrive pas à l'adapter.

Merci pour ta réponse.
 
Re : Userform

Bonsoir JeanPierre,

je vais de ce pas l'effacer du forum Excel 2007 car ce fichier doit être utilisé sur Excel 2003, c'est moi qui me suis trompé lorsque je l'ai posté ce midi.

Désolé de l'erreur.

Merci de me l'avoir fait remarqué.

Bonne soirée.
 
Re : Userform

Salut tout le monde,

Salut Luke3300, tu trouveras ci-joint ton fichier modifié 😀

J'ai changé ton code de remplissage de ta liste, qui évite de faire des allers/retours sur la feuille "BD", visuellement pas top 😉

A+
 

Pièces jointes

Re : Userform

Bonour BrunoM45 et les autres,

tout d'abord merci pour le temps que vous consacrez à aider les âmes perdues comme moi lol

En ce qui concerne le fichier, le débogueur s'est manifesté lorsque j'ai cliqué sur "Valider". Les données se sont affichées mais directement j'ai été orienté dans la fenêtre de VB et l'erreur me dit:

"Erreur de compilation.

Type défini par l'utilisateur non défini"

Et c'est à cet endroit qu'il me l'erreur:

Code:
[color=red]Private Sub BTN_valider_Click()[/color]
[color=blue]Dim Nom_BD As Value[/color]
   Dim Choix, Intitule_BD As String
   
   Choix = LST_nom.Value
   Nom_BD = Value(Left(Choix, InStr(Choix, "#") - 1))
   Intitule_BD = Right(Choix, Len(Choix) - InStr(Choix, "#"))
   Worksheets("BD").Select
   Range("A2").Select
   Do Until (ActiveCell.Value = Non_BD) And (ActiveCell.Offset(0, 1).Value = Intitule_BD)
        ActiveCell.Offset(1, 0).Select
   Loop
  ' Effacer l'objet SBdD
  Set SBdD = Nothing
End Sub

Quelqu'un a une idée de ce que cela peut être?

Bonne journée.
 
Re : Userform

Salut Luke3300,

Je n'avais pas testé ton bouton "Valider", change le code par
Code:
Private Sub BTN_valider_Click()
  Dim Choix
  Choix = LST_nom.ListIndex
  With Worksheets("BD")
    .Select
    .Range("A" & 1 + Choix + 1).Select
  End With
End Sub

Puisque tu remplis ta liste déroulante à partir de ta BdD, le nom sélectionné se trouve sur la ligne : A(1 + Index + 1)

L'index commence toujours à Zéro donc il faut rajouter 1

Voilà 😉
 
Re : Userform

Rebonjour BrunoM45,

impeccable!!!
Tout fonctionne à merveille 🙂

Je me suis juste permis d'ôter cette partie du code afin de rester sur la page en cours:

Code:
With Worksheets("BD")
    .Select
    .Range("A" & 1 + Choix + 1).Select
  End With

Un grand merci à toi pour ton aide et encore une bonne journée.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
723
L
  • Question Question
2
Réponses
18
Affichages
2 K
X
Réponses
0
Affichages
1 K
X
K
Réponses
38
Affichages
10 K
kinders59
K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…