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

6 réponses

  1. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    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
  2. 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
  3. 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
  4. eric2027 Messages postés 296 Statut Membre 6
     
    personne pour regarder si il y a une solution
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

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

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

    Michel
    0
  7. 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
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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