Bonjour
Voici mon code :
on va s'occuper que du UserForm1.
Mon pb :
Sur ma feuille excel, je click sur le bouton "envoi reparation", sur mon formulaire je tape un n° de série, dans mon listbox s'affiche plusieurs n° de série, je click sur l'un d'eux, cela affciche si la pieces a + ou - ou = à six mois ;
Lorsque je click sur un autre n° de série dans le list box, cela m'affiche a chaque fois en double le MsgBox. et ainsi de suite.
Je pense que l'erreur vient de cette partie du code :
Private Sub ListBox1_Click()
Dim Dlig As String
Dim X As Long
Dim nbJour As Long
Dim mois As Single
Dim valConst As Single
With Worksheets("Feuil1")
Dlig = .Cells(Rows.Count, "E").End(xlUp).row 'derniere ligne non vide
For X = 11 To Dlig
If CInt(Me.ListBox1.List(Me.ListBox1.ListIndex, 0)) = .Cells(X, "A").Value Then
Me.Label10.Caption = .Cells(X, "k").Value 'date de retour
nbJour = DateDiff("d", Me.Label10.Caption, Now) 'différence entre date du jour et retour
'sachant que 1 jour = 0,0328767 mois
'on fait le calcul
valConst = 0.0328767
mois = nbJour * valConst
Select Case mois ' <= la valeur à tester (ici, mois)
Case Is = 6 ' <= si la valeur = 6
MsgBox "Egale à 6 mois donc garantie !"
Case Is < 6 ' <= si la valeur < 6
MsgBox "Inférieur à 6 mois, donc Garantie"
Case Is > 6 ' <= si la valeur > 6
MsgBox "Supérieur à 6 mois, donc régie"
'Case Else ' <= si la valeur n'est égale à aucune des valeurs ci-dessus
'commentaire = "Aucun résultat"
End Select
Me.ListBox1.ListIndex = -1
Exit For
End If
Next
End With
End Sub