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

XL 2016 .RowSource et Combobox

PaulTrax

XLDnaute Nouveau
Bonjour, aujourd'hui je n'arrive pas à alimenter mon combobox (liste_Ref) avec une des formules que j'ai pu trouver sur ce site .
Je dois souvent ajouter à ma feuille "Articles" des mise à jour et donc en ajouter.
Dans cette feuille, je retrouve tous mes articles et la liste alimente la combobox de mon Userform " Bon_de_commande".
voici le dernier code que j'ai essayé :

Private Sub UserForm_Initialize()
Liste_ref.RowSource = .Range("Articles!C2:C") & Sheets("Articles").Range("C1250").End(xlUp).Row
End Sub

pas de résultat!
j'ai écris cette macro aussi, même résultat!

Private Sub UserForm_Initialize()
Dim Art As Integer
Dim feui As String
feui = Sheets("Articles")
Art = "feuil & C2:C" & feuil.Range("C1250").End(xlUp).Row
Me.liste_ref.RowSource = Art
Me.liste_ref.ListIndex = 0

End Sub

merci pour le coup de main !!
 

PaulTrax

XLDnaute Nouveau
Merci jean marie,

j'ai repris ton code , le souci c'est que ma liste est fluctuante, suivant l'ajout de nouveaux articles.
J'ai essayé de varier ton code :

Private Sub Userform_Initialize()
Dim f
Set f = Sheets("Articles")
Set Rng= f.Range("C2:C" & .Range("C1250").End(xlUp).Row).Value
liste_ref.List = Rng.Address

End Sub

Toujours aucun effet !
 

Bebere

XLDnaute Barbatruc
bonjour

PaulTrax
si tu employes la propriété list de combonox ou listbox,il faut employer la propriété value de range
Private Sub Userform_Initialize()
Dim f
Set f = Sheets("Articles")
Set Rng= f.Range("C2:C" & .Range("C1250").End(xlUp).Row).Value
liste_ref.List = Rng.Value'Address

End Sub
 

ChTi160

XLDnaute Barbatruc
Bonjour PaulTrax
Bonjour Bebere ,le Forum
dans mon exemple il n y avait pas de
dans le
VB:
 Set Rng=f.Range(“C2:C”etc)
il faut aussi que tu mettes
VB:
f.Range(“C1250”).End(xlUp).Row
mais bon !
comme le dit Bebere
tu fais
VB:
Set Rng= f.Range("C2:C" & .Range("C1250").End(xlUp).Row)
sans .value
puis
liste_ref.List=Rng.value
non teste(pas d ordi)
jean marie
 
Dernière édition:

PaulTrax

XLDnaute Nouveau
Toujours pas de List sur mon combobox !!

voici ma macro sous tes conseils :

Private Sub Userform_Initialize()
Dim f
Set f = Sheets("Articles")
Set Rng= f.Range(“C1250”).End(xlUp).Row
liste_ref.List = Rng.Value'Address

End Sub
 

Bebere

XLDnaute Barbatruc
PaulTrax
cela veut dire que en tête de module tu as option explicit qui oblige à déclarer les variables
exemple dim rng as range
dans le code set rng=rnage("A1:C103")
touche fonction F1 pour de l'aide (curseur souris sur le mot clé)
 

PaulTrax

XLDnaute Nouveau
Merci pour cette solution
voici mon code

Option Explicit

Const entrees_decimales_permises = ".,0123456789" & vbCr & vbBack
Const Point = "."
Const Virgule = ","
Const entrees_slash = ".,/0'123456789-" & vbCr & vbBack
Dim Rng As Range

Private Sub Userform_Initialize()
Dim f
f = Sheets("Articles")
Set Rng = f.Range("C2:C" & .Range("C1250").End(xlUp).Row).Value
Liste_ref.List = Rng.Value 'Address

End Sub

Toujours rien !!! est ce que le fait d'avoir cette macro dans Liste-ref peut gêner la procédure??

Private Sub liste_ref_Change()

If Liste_ref <> "" Then
TextBox1.Value = Sheets("Articles").Cells(Liste_ref.ListIndex + 1, 4).Value
ajouter.Enabled = True
Else
TextBox1.Value = ""
ajouter.Enabled = False
End If

End Sub

A voir, merci d'avance!
 

ChTi160

XLDnaute Barbatruc
Re
Set Rng
represente une plage pas les valeurs dans cette plage.
et ensuite
.List=Rng.value,on recupere les valeurs de la plage.
tu dois avoir
VB:
Set Rng = f.Range("C2:C" & f.Range("C1250").End(xlUp).Row)
jean marie
 
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…