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 !!
 

ChTi160

XLDnaute Barbatruc
Bonsoir PaulTrax
je pense que
.Rowsource demande une adresse de plage
Avec Dim Rng ad Range
un exemple :
VB:
Set Rng=Range(“A1:A10”)
et
 .RowsSource=Rng.Address
jean marie
 

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:

PaulTrax

XLDnaute Nouveau
On y arrive !!! Presque!!

Un msgBox s'ouvre le voici en image.

Là!! je suis dans le flou complet !! et toujours rien dans ma liste référence..
Je suis navré Jean Marie..Avertissement.jpg
 

ChTi160

XLDnaute Barbatruc
Re
on ne voit pas toute la page.
mais tu doid avoir une ligne qui traine en dehors de toute
procedure donc erreur.
a toi de regarder.
jean marie
 

PaulTrax

XLDnaute Nouveau
Jean marie

merci pour ton aide, je crois que je vais revenir en arrière avec le rowsource = nom

délicat délicat !!
 

ChTi160

XLDnaute Barbatruc
non !
la rien a voir avec ta listbox
tu as du oublier d effacer une ligne de code quelque part dans le module.
jean marie
 

ChTi160

XLDnaute Barbatruc
Bonjour,
il est ou le fichier?pas evident pour nous d apres une image du code incomplete.
jean marie
 

Bebere

XLDnaute Barbatruc
bonjour
PaulTrax suis le conseil de Jean Marie (post #12) tu as une ligne entre Private sub et end sub
qui traîne
 

Discussions similaires


Haut Bas