Macro + liste déroulante

eric2027 Messages postés 296 Statut Membre -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour le Forum,

Est-il possible de faire une macro avec une liste déroulante,

Je m'explique sur feuil2 j'ai des noms, prénoms, age.
Sur la feuil 1, j'ai un tableau.
Un userform serait nécessaire, pour que quand je clique sur un nom, le nom, le prénom et l'age apparaissent sur 3 cellules d'une ligne

Par avance, merci pour votre investissement et vos connaissances

Cordialement

eric2027
A voir également:

6 réponses

PHILOU10120 Messages postés 6511 Date d'inscription   Statut Contributeur Dernière intervention   826
 
Bonjour

Pourquoi une macro
Une liste déroulante et 2 rechercherV devraient faire l'affaire
1 cellule liste déroulante (choisir le nom)
2 cellule =Recherchev(la cellule nom;a1:c20;2;faux) renvoie le prénom
3 cellule =Recherchev(la cellule nom;a1:c20;3;faux) renvoie l'âge
le champ A1:c20 contient les noms, prénoms, âges
0
eric2027 Messages postés 296 Statut Membre 6
 
Pourquoi une macro, parce que j'ai plusieurs centaines de personnes à gérer et pour moi cela été plus simple juste de taper la première lettre d'un nom et d'avoir le reste
0
eric2027 Messages postés 296 Statut Membre 6
 
J'ai trouvé un code qui correspond à ce que je cherche, mais le problème quand je veux aller à la cellule 5 il me prend la cellule 4 et 5
J'ai beau chercher à comprendre, rien n'y fait
Pourriez vous m'aider svp

je vous envois le code

Dim L As Long
Dim derlign As Long, i As Integer, col

Public Sub Noms_Click()
L = Noms.ListIndex
If Noms = "" Then
Exit Sub
End If
Cells(4, 1) = Noms.Value
Cells(4, 2) = Sheets("soi").Cells(L + 2, 2)
Cells(4, 3) = Sheets("soi").Cells(L + 3, 3)
Unload Me
Cells(5, 1) = Noms.Value
Cells(5, 2) = Sheets("soi").Cells(L + 2, 2)
Cells(5, 3) = Sheets("soi").Cells(L + 3, 3)
Unload Me

End Sub

Public Sub UserForm_Initialize()
Sheets("soi").Select
derlign = Range("A65536").End(xlUp).Row
Set plage = Range("A2:B" & derlign)
With Noms
.Width = 20 + plage.Width
col = ""
.ColumnCount = plage.Columns.Count
.RowSource = plage.Address
For i = 1 To .ColumnCount
col = col & plage.Columns(i).Width & ";"
Next
.ColumnWidths = col
.ListIndex = -1
End With
Sheets("attestation").Select
End Sub

et le code feuil1
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$A$4" Then Saisie.Show
If Target.Address = "$A$5" Then Saisie.Show
End Sub
0
eric2027 Messages postés 296 Statut Membre 6
 
personne pour regarder si il y a une solution
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour

Un exemple de recherche progressive (avec les >=36700 communes de France)
http://www.cjoint.com/c/EFnihxquc4A

Michel
0
eric2027 Messages postés 296 Statut Membre 6
 
Bonjour,

Cela correspond partiellement, parce que ça reste sur une seule ligne, en ce qui me concerne, il faudrait sur plusieurs dizaines de lignes ou je pourrais noter les personnes sans à chercher avec un menu déroulant.
Comme le code ci-dessus, je me galère à trouver la solution, je vais me concentrer sur le votre, et essayer de trouver la solution.
Encore, merci pour votre code.
Cordialement.
eric2027
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Essaie, pour la 1° fois de la discussion de faire l'effort d'^tre clair et précis dans ta demande
et de définir tes variables
0