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 -
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
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:
- Macro + liste déroulante
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste code ascii - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
6 réponses
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
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
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
Un exemple de recherche progressive (avec les >=36700 communes de France)
http://www.cjoint.com/c/EFnihxquc4A
Michel
Un exemple de recherche progressive (avec les >=36700 communes de France)
http://www.cjoint.com/c/EFnihxquc4A
Michel
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
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