Mise en place d'un USERFORM

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

  • fichier test2.xls
    64.5 KB · Affichages: 66
  • fichier test2.xls
    64.5 KB · Affichages: 66
  • fichier test2.xls
    64.5 KB · Affichages: 68
Dernière édition:

mikachu

XLDnaute Occasionnel
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 ?
 

elliotr

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

mikachu

XLDnaute Occasionnel
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

  • fichier_test(1).xls
    63 KB · Affichages: 60
  • fichier_test(1).xls
    63 KB · Affichages: 60
  • fichier_test(1).xls
    63 KB · Affichages: 58
Dernière édition:

elliotr

XLDnaute Junior
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é :)
 

elliotr

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

mikachu

XLDnaute Occasionnel
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

  • fichier_test(1).xls
    64.5 KB · Affichages: 52
  • fichier_test(1).xls
    64.5 KB · Affichages: 59
  • fichier_test(1).xls
    64.5 KB · Affichages: 59

elliotr

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

mikachu

XLDnaute Occasionnel
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
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 051
Messages
2 105 057
Membres
109 242
dernier inscrit
zaboul2