On Error goto

Résolu
Bonjour,
je vous mets ci-dessous mon code.

Il semble que mon passage "on error goto Err" ne soit pas pris en compte puisque le message d'erreur s'affiche quand même et que la macro s'arrête. Je ne vois pas où se trouve mon erreur....
Merci d'avance pour votre aide.

2 ème question un petit peu HS: grâce à l'enregistreur de macro, j'ai trouvé la fonction array qui me permet de filtrer avec comme critère le mois. Je n'arrive pas vraiment à saisir comment elle fonctionne. Merci d'avance pour vos explications.


Sub RFQ_déclinée_soldé()

Workbooks("Suivi RFQ - verison ruben").Sheets("Demande de chiffrage").Activate
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData

Dim derlig As Long
Dim dercol As Integer
Dim tableau As Variant
Dim mymonth
Dim myyear

mymonth = InputBox("Quel mois dois-je filtrer?", "Définir le mois")
myyear = InputBox("Quelle année dois-je filtrer?", "Définir l'année")

         derlig = Range("C" & Rows.Count).End(xlUp).Row 
         dercol = Cells(2, Cells.Columns.Count).End(xlToLeft).Column 
         Set tableau = Range([A2], Cells(derlig, dercol)) 



tableau.AutoFilter Field:=18, Operator:= _
        xlFilterValues, Criteria2:=Array(1, mymonth & "/24/" & myyear)

                Workbooks.Open ("C:\Users\ruben\Documents\suivi des RFQ.xlsx")

                Workbooks("suivi des RFQ").Sheets("Feuil1").Activate
                Cells(mymonth + 7, 3).Value = Workbooks("Suivi RFQ - verison ruben").Sheets("Demande de chiffrage").Range("C3:C" & derlig).SpecialCells(xlVisible).Count


Workbooks("Suivi RFQ - verison ruben").Sheets("Demande de chiffrage").Activate


tableau.AutoFilter Field:=25, Criteria1:="Déclinée" _
        , Operator:=xlOr, Criteria2:="=Soldé"
                 Workbooks("suivi des RFQ").Sheets("Feuil1").Activate
                 Cells(mymonth + 7, 4).Value = Workbooks("Suivi RFQ - verison ruben").Sheets("Demande de chiffrage").Range("C3:C" & derlig).SpecialCells(xlVisible).Count

       On Error GoTo Err

       ActiveWorkbook.Close SaveChanges:=True

Workbooks("Suivi RFQ - verison ruben").Sheets("Demande de chiffrage").Activate


ActiveSheet.ShowAllData

Exit Sub
Err:
MsgBox "Pas de RFQ déclinée ce mois"
Cells(mymonth + 7, 4).Value = 0
ActiveWorkbook.Close SaveChanges:=True

End Sub

2 réponses

  1. Bonjour,

    Il faut placer le "On Error Goto" avant l'instruction susceptible de provoquer l'erreur

    Et pour désactiver ce gestionnaire d'erreur personnalisé, il faut placer la ligne suivante après l'instruction susceptible de provoquer l'erreur :
    On Error Goto 0
    0
    1. PS : mets le texte de la macro incomprise .
      0
    2. Bonjour,
      Merci pour ta réponse sur la gestion des erreurs.
      En fait, pour ma deuxième question, c'est dans la même macro:

      tableau.AutoFilter Field:=18, Operator:= _
              xlFilterValues, Criteria2:=Array(1, mymonth & "/24/" & myyear)


      Cela me permet de filtrer les données dans ma colonne suivant le critère du mois et de l'année. Alors d'après ce que j'ai compris, la fonction array correspondrait à un tableau non? J'ai lu l'aide microsoft sur cette fonction mais je comprends pas vraiment la syntaxe.
      Array(1, mymonth & "/24/" & myyear) : j'ai obtenu ça avec l'enregistreur de macro. Ca marche bien, mais je ne comprends pas comment le "24" arrive là. La fonction marche avec d'autre nombre (20,19 etc...) mais pas avec 30 ou 31 par exemple. Je soupçonne un lien avec le nombre de jours en février mais bon....

      Merci pour ton aide.

      Megatron
      0
  2. Quel noob, je viens de me rendre compte de mon erreur. J'avais le nez dessus. Le "On error goto err" doit être placé à la ligne d'avant....
    Par contre si vous avez des idées pour la fonction array je suis preneur.

    Merci
    0