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?
merci d'avance
Titine
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