XL 2019 Erreur de compilation

BEDO

XLDnaute Nouveau
Bonjour a tous
J"ai cherché le moyen de faire un logiciel pour la gestions de produit et j'ai pu avoir un que je désir modifier
Mais lorsque je veux rentrer une entrée et que je clique sur validé j'ai cette affirmation qui vient.
Besoin de votre aide svp.
J'ai essayé d"envoyer le fichier mais il est trop volumineux
Ci joint une capture du message d'erreur

Voici le code:

Private Sub Valider_Click()
Dim reponse As Variant
Dim dl1 As Long
Dim cellule As Range
Dim trouve As Boolean
If Type_fourn.ListIndex = -1 Then Exit Sub
If Désignation.ListIndex = -1 Then
With Sheets(Type_fourn.Value)
'
'expression.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextId, Type)
Do
reponse = Application.InputBox(Prompt:="Veuillez indiquer le stock minimum", Type:=1, Default:="")
Select Case reponse
Case ""
MsgBox "vous n'avez pas indiquez le stock mini!" & Chr(2) & "recommencez!", vbCritical, ""
Case False
Exit Sub
Case 0 ' à modifier si le stock mini est obligatoire
'Call MsgBox("Réponse erronée", vbExclamation, "")
Exit Do
Case Else
Exit Do
End Select
Loop

dl1 = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Range("a" & dl1).Value = Désignation.Value
.Range("b" & dl1).Value = reponse
.Range("c" & dl1).Value = Qté_entrée.Value

End With
With Désignation
If .ListIndex = -1 Then
Call MsgBox("Vous devez sélectionner un produit", vbInformation, Application.Name)
.SetFocus
Exit Sub
End If
End With

With Type_fourn
If .ListIndex = -1 Then
Call MsgBox("Vous devez sélectionner un type de fourniture", vbInformation, Application.Name)
.SetFocus
Exit Sub
End If
End With

With Date_entrée
If .Value = "" Or Not IsDate(.Value) Then
Call MsgBox("Vous devez indiquer une date valide", vbInformation, Application.Name)
.SetFocus
Exit Sub
End If
End With

With Qté_entrée
If .Value = "" Or Not IsNumeric(.Value) Then
Call MsgBox("Vous devez indiquer une quantité valide", vbInformation, Application.Name)
.SetFocus
Exit Sub
End If
End With
With Qté_entrée
If .Value = "" Or Not IsNumeric(.Value) Then
Call MsgBox("Vous devez indiquer une quantité valide", vbInformation, Application.Name)
.SetFocus
Exit Sub
End If
End With

Else
With Sheets(Type_fourn.Value)
.Range("c" & lig).Value = .Range("c" & lig).Value + Qté_entrée.Value
End With
End If



With Sheets("Mouvements")
dl1 = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
For Each cellule In .Range("a1:a" & dl1)
If cellule = Désignation.Value Then
dl1 = cellule.Row
trouve = True
Exit For
End If
Next cellule
'dercol = [IV3].End(xlToLeft).Column
If trouve = True Then ' mise à jour du stock
.Range("B" & dl1).Value = Qté_entrée.Value
.Range("C" & dl1).Value = Date_entrée.Value
Else ' ajout d'une désignation
.Range("A" & dl1).Value = Type_fourn.Value
.Range("B" & dl1).Value = Désignation.Value
.Range("C" & dl1).Value = Label2.Caption
.Range("D" & dl1).Value = Qté_entrée.Value
.Range("E" & dl1).Value = Date_entrée.Value
.Range("j" & dl1).Value = CCur(Label3.Caption) + CCur(Qté_entrée.Value)
End If
End With
' mise à jour stock

Unload Me

End Sub

MercI!!
 

Pièces jointes

  • Capture.PNG
    Capture.PNG
    33.4 KB · Affichages: 31
Solution
Bonjour,
Dans le menu de l'éditeur de macros, section "Outils" puis "Références", voyez si, parmi les références cochées, une ou plusieurs ne sont pas indiquées comme "MANQUANT". Dans ce cas, décochez ces références et tout devrait rentre dans l'ordre.

Une autre hypothèse, plus gênante, votre fichier est peut-être corrompu, après une succession de "récupérations" par Excel.

Bonne journée.

Gégé-45550

XLDnaute Accro
Bonjour,
Dans le menu de l'éditeur de macros, section "Outils" puis "Références", voyez si, parmi les références cochées, une ou plusieurs ne sont pas indiquées comme "MANQUANT". Dans ce cas, décochez ces références et tout devrait rentre dans l'ordre.

Une autre hypothèse, plus gênante, votre fichier est peut-être corrompu, après une succession de "récupérations" par Excel.

Bonne journée.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Dans les options générales rubrique Récupération d'erreurs cochez Arrêt dans le module de classe pour savoir quelle instruction de l'UserForm est en cause.
Il se pourrait qu'en mettant Option Explicit en tête du module le message soit plus clair.
Il ne tenterait pas l'exécution dans ce cas.
Il est assez probable que vous tentiez d'utiliser un nom de contrôle qui n'existe pas.
Mais l'hypothèse de la référence portée MANQUANT n'est pas à écarter non plus.
 
Dernière édition:

BEDO

XLDnaute Nouveau
Bonjour.
Dans les options générales rubrique Récupération d'erreurs cochez Arrêt dans le module de classe pour savoir quelle instruction de l'UserForm est en cause.
Il se pourrait qu'en mettant Option Explicit en tête du module le message soit plus clair.
Il ne tenterait pas l'exécution dans ce cas.
Il est assez probable que vous tentiez d'utiliser un nom de contrôle qui n'existe pas.
Mais l'hypothèse de la référence portée MANQUANT n'est pas à écarter non plus.


Merci pour ta réponse rapide et efficace

j'ai fait comme tu as dis j'ai décoché les 2 qui marquais "MANQUANT"

Ca marche bien
 

Pièces jointes

  • Capture.PNG
    Capture.PNG
    14.7 KB · Affichages: 13

Gégé-45550

XLDnaute Accro
Bonjour @Gégé-45550.
J'avoue, je suis gêné, bien qu'en l'absence de plus d'informations accessibles par mes conseils le MANQUANT n'était pas forcément la plus probable hypothèse, parce que c'est quand même toi qui l'a suggérée en premier, alors que c'était apparemment la bonne.
No pb d'autant que tu es bien plus Excel'lent que moi.
Simplement, sur ce forum, comme dans le reste de la vie courante d'ailleurs, il y en a qui viennent simplement "pêcher" la solution à leur problème, souvent sans trop se fouler à chercher d'ailleurs, puis qui s'en vont sans même prendre la peine, soit de remercier, ce qui n'a pas été le cas ici puisque que tu l'as été (et, encore une fois, c'est largement mérité), soit de marquer le sujet comme "résolu" afin de permettre à d'autres de gagner du temps dans leur recherche.
C'est ce manque d'attention aux autres qui me dérange.
Bien amicalement,