![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
Bonsoir à tous,
Après avoir consulté la recherche, "épluché les userforms d'@+thierry (excellent soit dit en passant) et bien d'autres, je m'en remet à vous et à vos innombrables connaissances d'excel pour me dire ou remplir la plage de cellule d'une listbox modifiable. Je n'arrive à trouvé dans les différents fichiers que j'ai ouverts. Tout est expliqué dans le fichier joint. Merci de votre aide. Jacques |
| ANNONCES | |||
|
|
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
Salut ChTi'160,
Tout d'abord, merci pour ta réponse, en fait il n'existe pas de zone de saisie du genre de celles utilisées pour les listes de validation normales. Je vais essayer d'adapter ta solution à mon problème. @ plus Jacques |
|
|
#4 (permalink) |
|
Guest
Messages: n/a
|
Salut"Jacques"
je ne comprends pas ce que tu veux dire "en fait il n'existe pas de zone de saisie du genre de celles utilisées pour les listes de validation normales. expliques nous,mets un exemple on pourra peut être t'aider ? A+++ Jean Marie |
|
|
#5 (permalink) |
|
Guest
Messages: n/a
|
Re ChTi'160,
En fait dans une liste de validation, tu as une case source ou tu peux mettre au choix le nom de ta liste, éventuellement une formule ou autre, je pensais que pour les combobox c'était la même chose. Et c'est ce que je cherchais, apparement il faut passer par un code dans le genre de celui que tu m'as proposé. J'espère avoir répondu à ta question. @ plus Jacques |
|
|
#6 (permalink) |
|
Guest
Messages: n/a
|
tout simple : intercale la ligne UserForm1.Repaint
à chaque fois ComboBox2.RowSource = Range(Cells(2, 1), Cells(derlgn, 1)).Address UserForm1.Repaint ComboBox2.ListIndex = 0 Tu peux remplacer ComboBox2.ListIndex = 0 par ComboBox2.Text = "" pour que la 2e liste soit vide quand tu selectinne dans la 1e (exemple ClientB) zano le gaumais (from Belgique) |
|
|
#8 (permalink) |
|
Guest
Messages: n/a
|
Bonsoir à tous,
Je reviens sur ce fil toujours avec le même problème, Jean marie, j'ai essayé d'adapter ta macro dans tous les sens pour que ça colle à ce que je souhaite, j'ai oublié de signaler que le nombre de client pouvait augmenter et donc que le nombre de colonne aussi. Pour le nom des client c'est OK mais pour la suite je n'y arrive pas. j'ai essayé le code suivant mais ça ne marche pas pourtant je ne le trouvais pas si déconnant que ça... Private Sub ComboBox1_Change() With UserForm1 .ComboBox2.RowSource = userform1.combobox1.value End With End Sub Private Sub UserForm_initialize() With UserForm1 .ComboBox1.RowSource = "feuil1!(D2 7)"End With End Sub En nommant bien sur toutes mes listes par le nom du client fait en automatique par ailleurs. Souhaitant que quelqu'un puisse m'aider, je vous souhaite à tous une très bonne st valentin. Jacques |
|
|
#9 (permalink) |
|
Guest
Messages: n/a
|
Private Sub ComboBox1_Change()
Dim derlgn As Integer Dim dercol As Integer Dim i As Integer dercol = Feuil2.Range("A5").Value For i = 1 To dercol If i = ComboBox1.ListIndex Then Feuil2.Cells(1, i + 1).FormulaR1C1 = "=DCOUNTA(Feuil1!C,1,R[1]C:R[2]C)" derlgn = Feuil2.Cells(1, i + 1).Value ComboBox2.RowSource = Range(Cells(2, i + 1), Cells(derlgn + 1, i + 1)).Address UserForm1.Repaint ComboBox2.ListIndex = 0 End If Next End Sub Private Sub UserForm_Initialize() Dim cel As Range Dim dercol As Byte With Worksheets("Feuil1") dercol = .Range("IV1").End(xlToLeft).Column For Each cel In .Range(Cells(1, 1), Cells(1, dercol)) Me.ComboBox1.AddItem cel.Value Next End With Feuil2.Range("A5").Value = dercol End Sub en passant par des valeurs "temporaires" un peu compliqué mais ça marche ... |
| Liens sociaux |
| Outils de la discussion | |
|
|