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

401pharmacie.zip (93.37 Ko)

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 Sub

Voila

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 Sub

2/ 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 Sub

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.


waard 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.

Ok trouvé, en fait dans le tableur Excel, la date est entré en format texte Janv-01 et non en format date comme les autres cellules 01/2001, d'où le bug, la macro interprète la date la plus proche à l'année en cours.

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 Sub

Alors qu'il devrait me donner ceci :

Private Sub Image2_Click()

End Sub

Je 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 Sub

Qui 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 Sub

Re

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 Sub

Voilà 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 :

pb ref vba

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.

barre event image

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.

commandbutton

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

Rechercher des sujets similaires à "probleme combobox"