Mise en place d'un USERFORM

  • Initiateur de la discussion Initiateur de la discussion elliotr
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

elliotr

XLDnaute Junior
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.
 

Pièces jointes

Dernière édition:
Re : Mise en place d'un USERFORM

Salut !

Pour mieux comprendre,

La "feuil1" est une base de données ?
Tu veux remplir les différentes cases de ta userform en fonction de la base de données quand tu sélectionne le code ?

Exactement


EDIT: J'ai mis un autre fichier en pièce jointe avec des numéros à la place du code plutôt qu'une seul et même lettre. Ca sera plus clair.
 
Re : Mise en place d'un USERFORM

Ok, alors j'ai donné un exemple pour textbox1 et textbox 2 pour exemple, il te restera à affecter les bonnes cases aux bon textbox.

Je te laisse le reste, c'est du copier / coller / corriger

mikachu

PS: je l'ai fait à partir du premier fichier

modif,nouveau fichier que j'ai refait avec clé iban et code banque histoire que ça veuille dire quelque chose.
 

Pièces jointes

Dernière édition:
Re : Mise en place d'un USERFORM

Ok, alors j'ai donné un exemple pour textbox1 et textbox 2 pour exemple, il te restera à affecter les bonnes cases aux bon textbox.

Je te laisse le reste, c'est du copier / coller / corriger

mikachu

PS: je l'ai fait à partir du premier fichier


Ok je vais aller manger, et je regarde ce que tu as fais. Merci.
J'aurai sans doute des questions je pense, j'espère que tu seras encore connecté 🙂
 
Re : Mise en place d'un USERFORM

Pas de problème. je serai là en principe. ps reprend le nouveau fichier


Hello,

Bon j'ai regardé le fichier en détails, je ne pige rien. (Désolé je ne connais pas le VBA donc un peu chaud).
Les deux premières cases que tu as faites marchent bien et il faut donc remplir les autres.
Mais le seul endroit où je trouve du "code" c'est en double cliquant dans les textbox . Là j'ai :

Private Sub ComboBox1_Change()
With Sheets("feuil1")
For a = 1 To .Range("A65536").End(xlUp).Row
If ComboBox1.Text = .Cells(a, 1).Value Then
TextBox2.Text = .Cells(a, 2).Value
TextBox1.Text = .Cells(a, 11).Value
'et ainsi de suite
End If
Next a
End With

End Sub

Private Sub CommandButton1_Click()
Unload UserForm1
End Sub

Private Sub Label3_Click()

End Sub

Private Sub Label5_Click()

End Sub

Private Sub TextBox1_Change()

End Sub

Private Sub TextBox2_Change()

End Sub



Le problème c'est que même dans les cases ou tu n'as rien fait, ce code apparaît..
Je ne trouve donc pas je pense l'endroit où tu as écris le code.
 
Re : Mise en place d'un USERFORM

Le morceau de code qui t'interesse est celui-ci:

VB:
Private Sub ComboBox1_Change() 
With Sheets("feuil1") 
For a = 1 To .Range("A65536").End(xlUp).Row
If ComboBox1.Text = .Cells(a, 1).Value Then 
TextBox6.Text = .Cells(a, 29).Value
TextBox2.Text = .Cells(a, 11).Value
'et ainsi de suite
End If
Next a
End With

End Sub

With Sheets("feuil1")
For a = 1 To .Range("A65536").End(xlUp).Row
If ComboBox1.Text = .Cells(a, 1).Value Then
...
End if

vérifie chaque ligne afin de savoir si la valeur de la combobox existe dans la feuille

TextBox6.Text = .Cells(a, 29).Value
TextBox2.Text = .Cells(a, 11).Value

Si c'est le cas, alors les valeurs seront recopiées dans les textbox

De ton coté, la seule chose que tu as à rajoputer est
TextBoxXX.Text = .Cells(a, YY).Value
en remplaçant les XX et YY

Par exemple: Pour le code guichet, il s'agit de la textbox5 et de la folonne 30 du tableau (colonne AD)
Du coup ça donne
Textbox5.Text = Cells(a, 30).Value
à ajouter en dessous de Textbox1.Text... du coup le code devient:

VB:
Private Sub ComboBox1_Change() 
With Sheets("feuil1") 
For a = 1 To .Range("A65536").End(xlUp).Row
If ComboBox1.Text = .Cells(a, 1).Value Then 
TextBox6.Text = .Cells(a, 29).Value
TextBox2.Text = .Cells(a, 11).Value
Textbox5.Text = .Cells(a, 30).Value
'et ainsi de suite
End If
Next a
End With

End Sub

Je te joins le nouveau fichier
 

Pièces jointes

Re : Mise en place d'un USERFORM

Le morceau de code qui t'interesse est celui-ci:

VB:
Private Sub ComboBox1_Change() 
With Sheets("feuil1") 
For a = 1 To .Range("A65536").End(xlUp).Row
If ComboBox1.Text = .Cells(a, 1).Value Then 
TextBox6.Text = .Cells(a, 29).Value
TextBox2.Text = .Cells(a, 11).Value
'et ainsi de suite
End If
Next a
End With

End Sub

With Sheets("feuil1")
For a = 1 To .Range("A65536").End(xlUp).Row
If ComboBox1.Text = .Cells(a, 1).Value Then
...
End if

vérifie chaque ligne afin de savoir si la valeur de la combobox existe dans la feuille

TextBox6.Text = .Cells(a, 29).Value
TextBox2.Text = .Cells(a, 11).Value

Si c'est le cas, alors les valeurs seront recopiées dans les textbox

De ton coté, la seule chose que tu as à rajoputer est
TextBoxXX.Text = .Cells(a, YY).Value
en remplaçant les XX et YY

Par exemple: Pour le code guichet, il s'agit de la textbox5 et de la folonne 30 du tableau (colonne AD)
Du coup ça donne
Textbox5.Text = Cells(a, 30).Value
à ajouter en dessous de Textbox1.Text... du coup le code devient:

VB:
Private Sub ComboBox1_Change() 
With Sheets("feuil1") 
For a = 1 To .Range("A65536").End(xlUp).Row
If ComboBox1.Text = .Cells(a, 1).Value Then 
TextBox6.Text = .Cells(a, 29).Value
TextBox2.Text = .Cells(a, 11).Value
Textbox5.Text = .Cells(a, 30).Value
'et ainsi de suite
End If
Next a
End With

End Sub

Je te joins le nouveau fichier




Ahhhhh ! Donc en fait je dois rajouter autant de ligne correspondant au nombre de textbox c'est bien ça ?
Et pour chaque numéro de textbox j'assigne les valeurs qu'il faut.
C'est bien ça ?

Par contre mon fichier original comporte des vrais codes.
Y a-t-il donc qqch à changer pour appliquer la macro à ce fichier ?

Et est ce que je peux exporter le USERFORM du fichier test vers l'autre fichier en changeant les données du code si il le faut ?
 
Re : Mise en place d'un USERFORM

tu clic droit dur "userform1" dans le menu de gauche puis "export file", tu l'enregistre (format .frm)

Dans ton fichier, tu vas dans le code et tu fais file / import file...

autre solution, tu ouvres tes deux fichiers, tu vas dans vba et tu fais un simple glisser/déposer du userform dans ton fichier
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
352
Réponses
12
Affichages
625
Réponses
3
Affichages
155
Réponses
6
Affichages
164
Réponses
7
Affichages
179
Retour