Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Donc si je résume, lorsque tu choisis une banque dans la combobox3, tu veux que dans la listbox apparaisse l'ensemble des données de la ligne correspondante? J'avais compris qu'il pouvait y avoir plusieurs lignes avec la même banque et que du coups la listbox te permettrait de faire un choix entre les différentes lignes...

Du coup ça donnerait un truc du genre de ça:

VB:
Private Sub ComboBox3_Change()
listbox1.clear
With Sheets("Base de données")
For a = 1 To .Range("A65536").End(xlUp).Row
If ComboBox3.Text = .Cells(a, 39).Value Then
for b = 1 to 43
ListBox1.AddItem .Cells(a, b).Value
next b
end if
next a
end sub
 

mikachu

XLDnaute Occasionnel
Re : Mise en place d'un USERFORM

Si il s'agit juste d'afficher l'ensemble des éléments, utilise une textbox plutot que la listbox, ça peut donner un truc comme ça (en changeant le numéro de la textbox à chaque occurence:

VB:
Private Sub ComboBox3_Change()
TextBox1.MultiLine = True
TextBox1.Text = ""
With Sheets("Base de données")
For a = 1 To .Range("A65536").End(xlUp).Row
     If ComboBox3.Text = .Cells(a, 39).Value Then
          For b = 1 To 43
               If TextBox1.Text = "" Then
                    TextBox1.Text = .Cells(a, b).Value
               Else: TextBox1.Text = TextBox1.Text & (Chr(10)) & .Cells(a, b).Value
               End If
          next b
     End If
Next a
End With
End Sub
 

elliotr

XLDnaute Junior
Re : Mise en place d'un USERFORM

Bonjour,

J'ai terminé la recherche par banque.
Maintenant j'ai un autre obstacle:

J'ai mes 3 Combobox dans le userform qui permettent de trier par code/société/banque.

Il faudrait que je mette en place sur ces combobox un filtrage. Je m'explique:
Si par exemple je veux trier par sociétés, il y a plusieurs comptes pour cette même société.
Il y aura donc dans le menu déroulant plusieurs fois le même nom de société.
Es-il possible donc de filtrer dans la combobox1 (codes) seulement les codes des comptes de la société sélectionnée dans la combobox 2 ?


Exemple: Combobox 2: Société X (Il y a 6X Société X dans le menu donc 6 comptes)
Il faudrait que les codes A,B,C,D,E,F apparaissent dans la combobox1 SANS les autres codes.

Est-ce possible ?
 

mikachu

XLDnaute Occasionnel
Re : Mise en place d'un USERFORM

Si si, c'est juste que je n'ai pas eu le temps de m'en occuper aujourd'hui...
essaye ça:

VB:
Private Sub ComboBox2_Change()
ComboBox1.RowSource = ""
With Sheets("Base de données")
For A = 1 To .Range("A65536").End(xlUp).Row
If ComboBox2.Text = .Cells(A, 5).Value Then
ComboBox1.AddItem .Cells(A, 1).Value
End If
Next A
End With
End Sub

En partant du principe que dans la combobox2 Tu choisis la société en colonne E et que le code est recherché en colonne A
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…