Probleme/ComboBox
Bonjour à tous,
J'ai un souci sur un projet.
Mes combobox me posent un souci que je n'arrive pas à comprendre.
Je pense avoir bien ciblé mes combobox sur les colonnes appropriées mais quand je clique dessus, ils me donnent effectivement la liste dans la colonne mais il me rajoute une partie de la colonne "A"
Quelqu'un pourrait-il m'aiguiller là dessus
Avec mes remerciements anticipés.
Amicalement
Noel
Hello,
Après quelques soucis pour voir à quelle combobox faisait référence DCI, j'ai trouvé le problème du rajout.
En fait dans la phase d'initialisation de l'userform, tu as mis 2 codes de création liste pour la combobox DCI.
Le 1er code d'appel : DCI.List = Sheets("Pharmacie").Range("a5:a200").Value
Le 2e code d'appel, qui ajoute pour celui-ci une liste en dessous de la ligne 195 (ta 1er liste faisant 195 lignes A5->A200)
For Nm = 4 To Sheets("Pharmacie").Range("A" & Rows.Count).End(xlUp).Row
DCI.AddItem Cells(Nm, 1)
Next
Si on supprime le code d'ajout de liste (dont je ne vois pas trop à quoi il sert), il n'y a plus de rajout.
Private Sub UserForm_Initialize()
ListBox1.RowSource = "Pharmacie!A5: f200"
Dim V As Long
Voie.List = Sheets("Pharmacie").Range("M5:M10").Value
For V = 5 To Sheets("Pharmacie").Range("A" & Rows.Count).End(xlUp).Row
Voie.AddItem Cells(V, 1)
Next
Dim C As Long
Conditionnement.List = Sheets("Pharmacie").Range("N5:N10").Value
For C = 5 To Sheets("Pharmacie").Range("N" & Rows.Count).End(xlUp).Row
Conditionnement.AddItem Cells(C, 1)
Next
Dim Nm As Long
DCI.List = Sheets("Pharmacie").Range("a5:a200").Value
'For Nm = 4 To Sheets("Pharmacie").Range("A" & Rows.Count).End(xlUp).Row '<<<<<<<<<<< Méthode d'ajout de liste en double avec ligne du dessus
'DCI.AddItem Cells(Nm, 1) '<<<<<<<<<<< Méthode d'ajout de liste en double avec ligne du dessus
'Next '<<<<<<<<<<< Méthode d'ajout de liste en double avec ligne du dessus
'RowSource spéciale
Dim i As Integer, j As Integer
Me.ListBox1.RowSource = "Pharmacie!A5: f200"
For i = 5 To Range("A4").End(xlDown).Row
If Range("F" & i).Value < Date Then
Me.ListBox2.AddItem Range("A" & i).Value
For j = 1 To 5
Me.ListBox2.List(Me.ListBox2.ListCount - 1, j) = Cells(i, j + 1).Value
Next j
End If
Next i
End SubVoila
Bonjour Waard,
Merci pour avoir attiré mon attention sur le double code.
J'ai également un problème sur la date de péremption qui se situe sur la ListBox2.
Quand je sélectionne une ligne de la listbox la date de péremption est erronée.
Pourras-tu voir cela.
merci d'avance
Amicalement
Noel
Re:
Ok trouvé, encore un problème de doublon, dans la gestion de la MàJ de la valeur dans la textbox date de péremption DCIR.
Plus un bug de changement d'année quand il fait son doublon, pourquoi, je ne sais pas.
Donc la solution la voici, au lieux de gérer la date de péremption DCIR dans ces 2 macros :
[b]Private Sub DCIR_Change()
Private Sub PremptR_Change()[/b]
1/ Supprimer cette macro
Private Sub PremptR_Change()
PremptR = Format(PremptR.Value, "mmm-yy")
PremptR = Application.Proper(PremptR)
End Sub2/ Modifier la macro Private Sub DCIR_Change() pour gérer la date de péremption dans celle-ci.
Private Sub DCIR_Change()
DCIR = Application.Proper(DCIR)
lig = Range("A4:A" & Range("A" & Rows.Count).End(xlUp).Row).Find(DCIR, SearchOrder:=xlByColumns).Row
CompoR = Cells(lig, 2)
VoieR = Cells(lig, 3)
StkR = Cells(lig, 4)
CondR = Cells(lig, 5)
PremptR = Format(Cells(lig, 6).Value, "mmm-yy") '<<<<<<< reformat valeur cellule pour donner oct-16
End Subwaard a écrit :
Il y'a encore un soucis dans les gestions de date de péremption, j'ai vu que ton code interprétait l'année 2001 comme l'année 2016, je regarde, mais pour les autres années ça à l'air de marcher sans bugs.
Voilà, Voilà
Re,
C'est Ok
Merci
Peux-tu me dire pourquoi quand je clique sur une image il me donne cette formule :
Private Sub Image2_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As MSForms.fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
End SubAlors qu'il devrait me donner ceci :
Private Sub Image2_Click()
End SubJe pense que j'ai du changer quelque chose au niveau d'excel, mais quoi?
Merci d'avance
Amicalement
Noel
Je ne comprend pas ta question, dans ton fichier d'origine, la seule macro pour l'image2 est celle-là :
Private Sub Image2_Click()
Unload Me
End SubQui sert à quitter l'userform
Tu as du supprimé ta macro click et sélectionné par erreur l'event BeforeDragOver qui est un event de gestion de glisser-déplacer.
Donc il remettre cette macro pour pouvoir à nouveau quitter l'userform par ce bouton image.
Private Sub Image2_Click()
Unload Me
End SubRe
Pour avoir le code Click, j'ai du faire un copier coller du code
Sinon quand je double clique sur l'image directement il me donne :
Private Sub Image2_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As MSForms.fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
End SubVoilà mon problème. Faut-il réinstaller excel 2003 sur laquelle version que je travaille dessus pour la programmation.
@+
Amicalement
Noel
Re:
Après recherches sur 2000-2006 dans Google et dans la version VBA 2003 du bouquin papier de Microsoft, je n'ai rien trouvé sur les events objets images (d'après le bouquin ils disent qu'il est relativement simple et ne parle que de la gestion du rattachement de l'image et de la taille du cadre, rien d'autre, peut être qu'il n'y a rien d'autre possible, que ce n'est que cosmétique). Et je n'ai pas 2003 pour chercher plus. Pour info, sur ma version 2010 64bits, j'ai un bug, car je n'ai pas certaines références :
Concernant une réinstallation, je ne vois pas à quoi ça servira et résoudre le problème. Dans mon éditeur VBA, j'ai ça en events pour les objets images (image 2), as-tu la même chose ? Si non, cela veut dire que 2003 n'a pas l'event click.
Après je pense avoir trouvé toutes les propriétés de l'objet control commandbutton 2003 qui semble identique sur 2010, un commandbutton peut prendre une image, étant donné que le command button gére l'event click, ça peut le faire, sinon il faudra abandonner l'idée de mettre des images, autre que pour l'aspect cosmétique.
Bonjour Waard,
Je ne sais pas ce que j'ai fait comme manip ce matin en ré-ouvrant excel ça fonctionne.
Je pense que j'ai coché quelque chose dans macro supplémentaire.
En tout cas merci beaucoup de ton aide.
Amicalement
Noel