j'ai un problème avec une macro, j'ai récupéré cette formule sur un autre site :
sub EssaiComboFillUniq()
RempliComboUnik Sheets("Feuil1").Range("A1:A" & _
Sheets("Feuil1").Range("A65536").End(xlUp).Row), _ Worksheets("BD").ComboBox1
end sub
le soucis c'est que je ne veux pas que la liste soit issue du worksheets mais d'un userform et donc je ne sais pas comment ecrire le code !!!!
J'ai essayé : "nom du userform.nom de ma combo" mais ca ne marche pas
Quelqu'un pourrait m'aider ?
Merci par avance
SKF
Salut SPARKLETOF ,
Tu laisses tomber le ruban ?
Pas sûr d'avoir bien compris ton problème ...
Tu veux que ton USF remplisse un ComboBox sur une feuille ?
Si c'est ça, utilises la propriété AddItem du ComboBox depuis l'USF. Mais ton ComboBox se videras à chaque fois que tu quiteras le fichier...
Un petit bout de ton fichier avec son USF et sa ComboBox nous permettrait certainement de mieux comprendre...
Bonne soirée
comment va ? T'inquiètes j'ai pas laissé tombé les rubans, seulement j'ai une autre priorité sur le feu
Concernant mon problème :
avec un pote on essaie de faire un doc pour gerer les stocks. On a un userform multipage.
En fait lorsqu'on déstocke on veut que dans la combobox du userform n'apparaisse la liste des n° de lot des produits. Seulement il arrive que des produits disposent du même n° de lot, donc nous voulons éviter les doublons ! Mais là ,problème, on arrive pas à marquer la ligne de commande. Avec le code qu'on a trouvé, cela marche mais seulement quand la combobox est dans la feuille.... Nous on veut que ca marche dans le userform mais on ne sait pas comment écrire le code correspondant !
SKF
Salut,
bon je suis à mon taf et j'ai donc des visuels pour m'expliquer....
Donc mon userform ressemble à çà :
ce que je voudrais, c'est qu'une liste de n° de lot apparaisse en évitant les doublons (dans la combobox entourée en rouge). Ma liste originale se trouve sur ma feuille et est comme ceci :
Private Sub UserForm_Initialize()
Dim MonDico As Object, c As Range
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range([F3], [F65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
Next c
Me.boxlot.List = MonDico.items
End Sub
ça devrait le faire (j'ai considéré tes valeurs à partir de F3).
Bon courage
Salut à toi,
désolé pour le retard.... je te remercie donc pour ta précieuse aide car comme d'habitude quand tu conseilles un truc.....CA MARCHE
Nous avançons donc pas mal avec mon pote ! On coince juste sur un truc : quand on rentre en stock un produit ( par ex 6 exemplaire) on voudrait que cela nous copie 6 fois la ligne entourée en rouge.....
Re ,
On avance, mais pas dans la luminosité ...
Je te dégotte un petit code qui élimine les doublons, classe par ordre alphanumérique, et maintenant, tu veux que je multiplie par la quantité ... Quand tu vas en avoir 100 en stock pour une dizaine de produits, je te cause pas de la hauteur du ComboBox ...
Tu crois pas qu'il serait plus simple d'appeler dans un Label la quantité quand tu choisis un produit ?
A te lire
Salut JNP,
tu me fais une remarque judicieuse mais j'y avais déjà pensé....
Le truc en fait c'est qu'en stock cela ne dépasse que très rarement 50... et qu'on s'arrange pour avoir au maximum 6 ou 7 lots différents par an et vu qu'on réagit pas quantité mais en n° de lot mon combo ne sera pas si grand que ca au final
Merci à toi
SKF
Private Sub UserForm_Initialize()
Dim I As Integer, c As Range
For Each c In Range([F3], [F65000].End(xlUp))
For I = 1 To c.Offset(0, -1)
Me.boxlot.AddItem c.Value
Next I
Next c
End Sub
devrait faire l'affaire, mais si tu veux du "trié", il va falloir passer par un tableau. Tu devrais trouver ça sur le forum ou sur le site de JB précité.
Bon courage