On Error goto

Résolu/Fermé
megatronnbjja Messages postés 63 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 avril 2020 - 19 juil. 2013 à 13:44
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 25 juil. 2013 à 14:45
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

megatronnbjja Messages postés 63 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 avril 2020
19 juil. 2013 à 13:53
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
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
19 juil. 2013 à 14:02
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
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
19 juil. 2013 à 14:04
PS : mets le texte de la macro incomprise .
0
megatronnbjja Messages postés 63 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 avril 2020
25 juil. 2013 à 12:32
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
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
25 juil. 2013 à 14:45
Bonjour,

Désolé, mais jusqu'à Excel 2003, cette syntaxe de filtre automatique ne fonctionne pas.
Peut-être un début d'explication à la fin de ce chapitre :
http://boisgontierjacques.free.fr/pages_site/FiltreAuto.htm#FiltreDates
0