XL 2016 Formulaire pour afficher et saisir des données

MarineV

XLDnaute Nouveau
Bonjour à tous,

Je suis bloquée sur un fichier comportant un formulaire et une macro associée que je n’arrive pas à programmer.

J’ai un fichier Excel avec un tableau comportant des informations sur des clients. Chaque client est associé à un identifiant permettant de le retrouver et comporte également des informations classiques (telle que l’adresse). Les deux dernières colonnes de mon tableau comportent des informations sur les rendez-vous ou des remarques diverses.

Ce tableau est amené à comporter énormément de lignes et de colonne et je souhaitais donc créer un formulaire pour faciliter la saisie de données.

Or c’est là qu’est tout mon problème : j’aimerais que le formulaire serve à la fois à saisir des données (assez simple grâce à un bouton qui permet d’enregistrer les informations dans les cellules concernées) mais également à retrouver de façon plus lisible les informations de mon tableau. Je souhaitais donc faire apparaître, grâce à une liste déroulante qui comporterait l’ensemble (ajouts constants de nouveaux clients) de mes identifiants clients, l’ensemble des informations de celui-ci.

Par exemple :

Je souhaite voir les informations de mon client 1. J’ouvre donc mon formulaire et je sélectionne dans la liste déroulante le numéro 1. L’ensemble des informations de mon client (Nom, Adresse, Remarques, Historique) s’affiche alors en dessous. Si je souhaite rajouter une remarque supplémentaire, je modifie manuellement dans la zone de texte et je clique sur « enregistrer les mises à jour » qui s’enregistrent alors dans la cellule D2 de mon tableau.

J’espère avoir été assez claire, je vous mets mon fichier exemple en pièce jointe pour aider à la compréhension.

Merci d’avance aux personnes qui pourront m’aider !

Très bonne fin de journée,

Marine.
 

Pièces jointes

  • Exemple_formulaire_client.xlsm
    21.4 KB · Affichages: 35

Papou-net

XLDnaute Barbatruc
Bonjour Marine,

Voici en PJ ma réponse à ta demande que j'espère avoir bien comprise.

Bonne journée.

Cordialement.

Edit: salut vgendron, et bonne journée à toi aussi.
 

Pièces jointes

  • Copie de Exemple_formulaire_client.xlsm
    24 KB · Affichages: 30

Dranreb

XLDnaute Barbatruc
Bonjour.
Essayez ça :
VB:
Option Explicit
Dim PlgTablo As Range, LCou As Long, TVLgn()

Private Sub UserForm_Initialize()
Actualiser
End Sub

Private Sub Actualiser()
Dim T(), L As Long
Set PlgTablo = [Tableau3]
T = PlgTablo.Columns(1).Value
For L = 1 To UBound(T, 1): T(L, 1) = CStr(T(L, 1)): Next L
ComboBox1.List = T
End Sub

Private Sub ComboBox1_Change()
LCou = ComboBox1.ListIndex + 1
If LCou = 0 Then ReDim TVLgn(1 To 1, 1 To 5) Else TVLgn = PlgTablo.Rows(LCou).Value
Garnir
End Sub

Private Sub Garnir()
Dim C As Long
For C = 2 To 5: Me("TextBox" & C - 1).Text = TVLgn(1, C): Next C
End Sub

Private Sub CommandButton1_Click()
Dim C As Long
For C = 2 To 5: TVLgn(1, C) = Me("TextBox" & C - 1).Text: Next C
If LCou = 0 Then
   LCou = PlgTablo.Rows.Count + 1
   TVLgn(1, 1) = WorksheetFunction.Max(PlgTablo.Columns(1)) + 1: End If
PlgTablo.Rows(LCou).Value = TVLgn
Actualiser
End Sub
 

vgendron

XLDnaute Barbatruc
Hello All

Ci jointe une autre version avec un second formulaire - le meme.
sauf que les TextBox ont tous le nom qui commence par "TB" puis un numéro.. 1 2 3. Ce numéro devant etre obligatoirement le numéro de colonne (+1) de la data que tu souhaites récuperer
ex:
TB1 = Nom Client
TB2 = Adress
TB3=Remarques... etc etc

comme ca. si tu ajoutes 20 colonnes. tu devra ajouter 20 Tb numérotés dans l'ordre de tes colonnes..
et le code sera toujours bon
 

Pièces jointes

  • Exemple_formulaire_client (1).xlsm
    26.5 KB · Affichages: 52