IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Relancer une macro après debug [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Apprentie ingénieure
    Inscrit en
    Avril 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprentie ingénieure
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2011
    Messages : 51
    Par défaut Relancer une macro après debug
    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 !


  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Parce que tu n'arrive pas à réactiver les évènements.
    Pour le test crée une macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Reactive()
    Application.EnableEvents = True
    End Sub

  3. #3
    Membre confirmé
    Femme Profil pro
    Apprentie ingénieure
    Inscrit en
    Avril 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprentie ingénieure
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2011
    Messages : 51
    Par défaut
    D'accord merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lancement d'une macro après mise à jour d'une cellule
    Par Mukade dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/10/2007, 11h52
  2. relancer une fonction après un reload
    Par cijez dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/06/2007, 13h36
  3. Réponses: 5
    Dernier message: 25/03/2007, 06h06
  4. [WORD]lier une macro après publipostage
    Par Raylemon dans le forum VBA Word
    Réponses: 1
    Dernier message: 25/03/2007, 01h01
  5. executer une macro apres validation d'une cellule
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/01/2007, 19h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo