Comment ca marche: On error GOTO ???

titine06

XLDnaute Junior
Bonsoir à tous !! =)

J'utilise un code (merci JCGL)
En cas d'erreur sur le code, il y a un "On Error GoTo Msg" qui me permet de renvoyer à un msgbox pour afficher le prob et éviter que l'utilisateur se perde dans le code VBA !!
Le problème est qu'il se déclanche automatiquement... ce qui est plutot logique vu qu'il est à la fin du code..

Mais comment faire pour qu'il ne s'enclanche Que si et seulement si il y a une erreur?

Code:
Sub Copie1()

    Dim Emplacement As String, Fichier As String, Feuille As String, Plage, FCible, PCible, NFCible, Msg As String
On Error GoTo Msg
        Application.Calculation = xlAutomatic
        NFCible = Sheets("Données").Cells(2, 4)
        Application.ScreenUpdating = 0
    
    With Workbooks(NFCible)
  
    'Données fixes
        Emplacement = Sheets("Données").Cells(3, 4)
        Feuille = Sheets("Données").Cells(4, 4)
        Plage = Sheets("Données").Cells(5, 4)
        FCible = Sheets("Données").Cells(6, 4)
        
    'Données variables
        PCible = Sheets("Données").Cells(7, 4)
        Fichier = Sheets("Récap").Cells(5, 5)

        Workbooks.Open Filename:=Emplacement & Fichier
        Sheets(Feuille).Visible = True
        Sheets(Feuille).Select
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
        Range(Plage).Copy
        Sheets(Feuille).Visible = False
        Windows(NFCible).Activate
        Sheets("tdc").Visible = True
        Sheets("CA").Visible = True
        Sheets(FCible).Activate
        ActiveSheet.Range(PCible).Select
        ActiveSheet.Paste
        Application.DisplayAlerts = 0
        Windows(Fichier).Close
        Application.DisplayAlerts = 1
        Application.ScreenUpdating = 1
        Sheets("tdc").Select
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
        Sheets("Récap").Select
        Sheets("tdc").Visible = False
        Sheets("CA").Visible = False
        Sheets("Données").Visible = False
    End With
Msg: MsgBox "ca marche pas"
End Sub

merci d'avance

Titine
 

david84

XLDnaute Barbatruc
Re : Comment ca marche: On error GOTO ???

Bonsoir,
tu peux créer une autre étiquette ("Fin" par exemple) que tu placeras après l'étiquette Msg
Juste avant la fin du End with, tu places GoTo Fin. Ainsi, l'étiquette "Msg" sera ignorée.
Dans Fin, tu pourras ainsi remettre en mode voulu tes XlCalculation et autres données.
A+
 

Discussions similaires

Réponses
3
Affichages
607

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 989
dernier inscrit
jralonso