Bonjour !

J'essaie de modifier une macro,

C'est une macro liée à une modification de valeur dans une cellule :

le code de la feuille

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Private Sub Worksheet_Change(ByVal Target As Range)
 
If Not Intersect(Target, Range("A2:A200")) Is Nothing And Target.Count = 1 Then
    If Target.Value <> "" Then
        Application.EnableEvents = False 'au cas où la macro Compraison change des données sur la feuille
        Comparaison Target.Row
        Application.EnableEvents = True
    End If
End If
End Sub

La macro liée

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
Sub Comparaison(ligne As Byte)
 
Dim ean1 As String
Dim Erreur As Boolean 'vrai ou faux
Dim Quantité As Byte   'en espérant qu'il n'y ait pas plus de 255 références sur une palette !!!! ;)
Dim Différence As Integer 'Différence entre le nbre de pdt attendu et le nbr de pdt présent
Dim Nombre As Integer  'insertion d'une fonction pour
'éviter l'erreur du fait que les ean sont stockés sous forme de texte et non de nombre
Dim ligne2 As Integer 'Ligne feuille de contrôle
Dim ligne3 As Integer 'ligne pour feuille extraction
Dim NombreErreur As Byte 'En espérant qu'il n'y ait pas plus de 255 erreurs ??!!! :OO
Dim Total As Integer 'Colis total
 
        Total = 0
        ligne2 = 10
        NombreErreur = 0
        ean1 = Sheets("Douchette").Cells(ligne, 1).Value
 
                                ligne3 = 1
                                Erreur = True  'on démarre avec une erreur qu'on enlève si le pdt est bien présent/attendu
 
 
                                    'On démarre une boucle pour voir si les gencodes sont bien dans extraction cia flu
 
                                    While Sheets("Extraction cia flu").Cells(ligne3, 1).Value <> "" And Erreur = True
                                    ligne3 = ligne3 + 1
 
 
                                                If Sheets("Extraction cia flu").Cells(ligne3, 1).Value = ean1 Then
                                                Erreur = False  'si il le trouve, il n'y a pas d'erreur
                                                End If
 
                                    'On termine la boucle quand on a la réponse
 
                                    Wend
 
                         'On va demander la quantité que le gencode soit manquant ou non pour comptabiliser dans le tableau feuille de contrôle
 
                         Quantité = Application.InputBox("Quelle quantité?", "Produit  " & ean1)
 
                                    Select Case Quantité
                                            Case False
                                                MsgBox "Vous avez annulé"
                                                Exit Sub
                                            Case Else
                                                MsgBox "Quantité entrée " & Quantité
 
                                    End Select
 
                         Sheets("Douchette").Cells(ligne, 18).Value = Quantité
 
                                                'si il n'y a pas d'erreur alors on fait la différence entre la quantité entrée et la quantité attendue
                                                If Erreur = False Then
                                                Nombre = Sheets("Extraction cia flu").Cells(ligne3, 6).Value
                                                Différence = Quantité - Nombre
 
                                                        'Si la différence n'est pas égale à zéro on mets une alerte
                                                        If Différence = 0 Then
 
                                                        MsgBox ("Quantité Ok")
                                                        Sheets("Douchette").Cells(ligne, 19).Value = Quantité
 
                                                        Else: MsgBox ("Quantité attendue " & vbCrLf & vbTab & Nombre)
 
                                                                If Différence < 0 Then
                                                                'Note la quantité manquante (0 - Différence permet de noter la valeur absolue du nombre)
                                                                Sheets("Douchette").Cells(ligne, 22).Value = 0 - Différence
                                                                Sheets("Douchette").Cells(ligne, 19).Value = Quantité
                                                                Else:
                                                                'Note la quantité en excédent
                                                                Sheets("Douchette").Cells(ligne, 21).Value = Différence
                                                                Sheets("Douchette").Cells(ligne, 19).Value = Quantité - Différence
                                                                End If
                                                        End If
 
                                                Else: NombreErreur = NombreErreur + 1
                                                MsgBox (" Produit Non attendu : " & vbCrLf & vbTab & ean1 & vbCrLf & "!!!")
 
                                                'Reporte la quantité en excédent(Si le gencode n'est pas du tout attendu)
                                                Sheets("Douchette").Cells(ligne, 20).Value = Quantité
 
                                                End If
 
 
 
 
 
 
 
End Sub
Voilà donc quand je "m'amuse" à modifier et que je test pour voir si ça fonctionne. Si je fais une erreur le debug s'affiche et même en corrigeant l'erreur, la macro ne se relance plus ...
C'est un peu "lourd", je dois relancer le fichier :s

Est-ce qu'il y a un petit bouton magique pour eviter ça ? é_è


Merci d'avanceee !