Mise en place d'un USERFORM

Bonjour à tous,

Je vous joins en pièce jointe le "fichier test" pour que vous puissiez suivre ma demande pas à pas sans trop perdre de temps.

J'ai donc un fichier excel avec un très grand tableau (colonne A à AQ, et ligne 1 à 476).

Le but étant de créer un USERFORM que j'ai déjà mis en place: il suffit de cliquer sur le bouton FORMULAIRE pour le faire apparaître.

En effet, chacune des colonnes de mon tableau correspondent à des données sur des comptes bancaires, des sociétés, etc....

Ma demande:

Dans l'onget "Compte bancaire" du USERFORM il y a une liste modifiable : le Code.

Le but est de sélectionner le code voulu et que dans tous les champs vides de TOUS les onglets du USERFORM apparaîssent les données correspondants au code choisi.

Exemple: Si on sélectionne le code 23, il faudra que dans l'onglet compte bancaire se remplissent tous les champs de la ligne du code 33 (soit les infos de la ligne 24) mais que les infos correspondantes des autres onglets (société, agence bancaire) se remplissent aussi.

Pour compte bancaire , les infos correspondent aux colonnes D, K, J, L, AC, AD, AE, AF

Pour agence bancaire, les nfos correspondent aux colonnes F, G, H, AG, AH, AJ

etc, etc...

A chaque fois que je sélectionnes un code, les données doivent se rafraichir (automatiquement ou à l'aide d'un bouton, peu importe même si l'automatisation reste plus agréable).

Mon soucis est donc lié à la mise en place des macros, car je n'y connais rien et j'aurai besoin d'une aide d'utilisateurs confirmés/experts.

54fichier-test2.zip (16.12 Ko)

Salut,

Voici un exemple - probablement parmi d'autres possibilités - de comment tu peux récupérer le code Clé Iban dans le champ concerné :

Private Sub ComboBox1_Change()
TextBox2 = WorksheetFunction.VLookup(ComboBox1 * 1, Range("A2:AQ" & Range("A65000").End(xlUp).Row), 11, True)
End Sub

Est-ce que tu peux avancer avec ça ?

Cordialement.

50fichier-test-v1.zip (19.81 Ko)

Salut,

Autre exemple:

Private Sub ComboBox1_Change()
Dim result As Range
Set result = Range("A2", "A" & Range("A55536").End(xlUp).Row).Find(UserForm1.ComboBox1.Text)
'Peuple les champs
'Clé IBAN
TextBox2.Text = result.Offset(0, 10).Value  'La clé IBAN se trouve a 10 colonnes de la colonne A
'code Banque
TextBox6.Text = result.Offset(0, 5).Value 'La Banque se trouve a 5 colonnes de la colonne A
'etc....
end Sub

Sinon, pense a initiliser ta liste de façon dynamique (si tu ajoutes des lignes la combo ne les proposera pas dans ton cas)

Private Sub UserForm_Initialize()
UserForm1.ComboBox1.RowSource = "Feuil1!A2: A" & Range("A55536").End(xlUp).Row
End Sub

Damien

Bonjour

Dans ton userform onglet Agence bancaire, pourquoi utilises tu des listbox au lieu de textbox ??

Sinon déjà une chose à modifier

  • Supprime le Rowsource dans ton usf
  • place ce code dans l'USF
Private Sub UserForm_Initialize()
'MAcro Dan
Dim dlg As Integer
dlg = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
ComboBox1.List = Sheets("Feuil1").Range("A2:A" & dlg).Value
End Sub

A te relire

Edit : Doublon de post

Bonjour à tous !

Merci de vos réponses.

En effet, comme je découvre la "partie cachée" d'excel, j'ai mis des listbox au lieu de textbox... Je vais corriger ça, et je vais attaquer vos propositions.

En effet aussi, pour le rowSource, je vais élargir le champ pour que les codes qui s'éjouteront par le futur soit pris en considération.

Rechercher des sujets similaires à "mise place userform"