XL 2013 Remplir un formulaire automatiquement avec un tableau

Vincent0804

XLDnaute Nouveau
Bonjour,

J'ai un formulaire que j'ai créé dans la Feuil1, avec nom, prénom et adresse.
Dans la Feuil2, j'ai un tableau avec 3 colonnes, "nom", "prénom" et "adresse" avec une centaine de ligne.

Je souhaiterais savoir, s'il est possible, de remplir le formulaire automatiquement avec la première ligne du tableau de la Feuil2 en filtrant ce même tableau.
Par exemple, si je filtre le tableau pour avoir la personne dans la rue Georges Brassens, est-ce qu'il y a une possibilité que le formulaire de la Feuil1 se remplisse automatiquement avec le nom, prénom et l'adresse "rue Georges Brassens" dans ce cas ?

Merci d'avance pour votre aide.
 

Vincent0804

XLDnaute Nouveau
Bonjour,

Merci pour ce conseil mais je pense que c'est quelque chose de plus simple que dans cette discussion.
Mon formulaire est en excel, tout simple, avec par exemple en A1 "Nom:" et en A2 la cellule où le nom doit être affiché quand je filtre le tableau dans Feuil2.

Cordialement.
 

Dranreb

XLDnaute Barbatruc
Joignez enfin un modèle de votre classeur, qu'on y voie plus clair.
Moi ça ne semble plus simple à l'utilisation de filtrer depuis le formulaire avec l'UserForm jusqu'à trouver le nom qu'on cherche et l'y appliquer en cliquant sur un bouton "OK Appliquer". L'UserForm permettrait en plus d'ajouter, modifier, supprimer une ligne de Feuil2, mais si c'est complètement inutile on peut supprimer tout ça si vous voulez.
 

Vincent0804

XLDnaute Nouveau
Voici un exemple "brut".
D'habitude, pour chaque donnée dans le formulaire, je mets la formule =cellule("contenu";référence), mais cela ne sélectionne que la première ligne du tableau dans Feuil2.
Si je veux filtrer les colonnes, je souhaiterais que le formulaire se remplisse avec la première ligne du tableau filtré.

Merci.
 

Pièces jointes

  • Formulaire de suivi.xlsx
    12.1 KB · Affichages: 45

Dranreb

XLDnaute Barbatruc
Mais pourquoi tenez vous tant à filtrer l'autre feuille ?
Un UserForm de consultation (et mise à jour si ça vous intéresse) vous proposerait dans des ComboBox tous les noms classés par ordre alpha, toutes les référence et toutes les rues, et quand la combinaison des choix effectués n'aboutirait plus qu'à une ligne un bouton "OK | Appliquer" vous permettrait de l'envoyer dans des cellules.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Si vous préférez des formules, c'est possible aussi avec des formules d'intersections entre les différentes colonnes et la ligne choisie, que l'UserForm pourrait définir comme référence d'un nom du classeur.
Par exemple en C4 :
Code:
=Feuil2!$A:$A LigneChoisie
Dans l'UFmMàJ une méthode :
VB:
Public Sub ChoisirLigne(ByVal NomLigne As String)
   CL.Nettoyer
   Appliquer = False
   Me.Show
   If Appliquer Then
      If CL.Colonnes Is Nothing Then
         ThisWorkbook.Names.Add NomLigne, CL.PlgTablo.Rows(LCou)
      Else
         ThisWorkbook.Names.Add NomLigne, CL.Lignes(LCou).Range
         End If: End If
   End Sub
Pour l'invoquer :
VB:
UFmMàJ.ChoisirLigne "LigneChoisie"
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Cela dit, avec les mêmes formules cette procédure dans un module standard le fait aussi, comme vous dites le souhaiter :
VB:
Sub SelectLigne1()
   Dim Rng As Range
   Set Rng = ActiveSheet.AutoFilter.Range
   Set Rng = Rng.Offset(1).Resize(Rng.Rows.Count - 1)
   Set Rng = Rng.SpecialCells(xlCellTypeVisible)
   ThisWorkbook.Names.Add "LigneChoisie", Rng.Areas(1).Rows(1)
   End Sub
Mais c'est beaucoup moins souple qu'avec un UserForm: on est obligé de filtrer dans l'autre feuille et on n'a pas la possibilité de taper simplement le début d'un nom ou d'autre chose, ni de mettre la liste à jour au passage …
 
Dernière édition:

Vincent0804

XLDnaute Nouveau
Pour répondre à votre question, j'ai besoin de filtrer car quelques fois je dois filtrer le tableau pour avoir des données spécifiques recherchées.
Par exemple, si je dois faire un formulaire pour trouver Monsieur Z avec telle adresse et tel numéro de téléphone par exemple, je le fais directement dans le tableau et le formulaire pourrait se remplir avec le résultat de la "filtration".
 

Dranreb

XLDnaute Barbatruc
Mais ça n'explique pas pourquoi vous ne trouveriez pas mieux de pouvoir taper votre "monsieur Z" dans une ComboBox, et s'il en a plusieurs de ce nom choisir l'adresse voulue dans une autre combobox (seules les adresses de ce nom y serait proposées), et s'il n'y est qu'une fois ce seraient tous les champs qui s'en trouveraient immédiatement renseignés.
 

Discussions similaires

Statistiques des forums

Discussions
312 161
Messages
2 085 848
Membres
103 004
dernier inscrit
ponas