Error handler
Bonjour tout le monde,
J'ai un fichier qui me permet de mettre a jours plusieurs autre workbooks mais j'aimerai mettre en place un petit gestionnaire d'erreur afin de savoir sur quel fichier exactement l'erreur est survenu (si une erreur survient un jour)
je vous envoi mon fichier auquel j'ai essayé de mettre un error handler mais qui ne me dit pas sur quel fichier il y a eu une erreur
si quelqu'un aurait un idée svp ?
Merci infiniment
Bonjour
L'erreur est (généralement) sur le fichier que tu as ouvert ou que tu veux ouvrir
ET dans ton code ce fichier s'appelle "Filtre.xls"
Bonjour Banzai64,
merci de votre réponse,
en faite mon fichier de base permet d'ouvrir plusieurs fichier consécutif afin de mettre à jours ces différents fichiers avant de les fermer,
du coup si une erreur j'aimerai trouver un moyen pour que excel m'indique sur quel fichier exactement il a rencontré une erreur (par un msgbox par exemple), afin que je sache sur quel fichier il faut que je revoie
merci
Bonjour
Banzai64 a écrit :L'erreur est (généralement) sur le fichier que tu as ouvert ou que tu veux ouvrir
A toi d'indiquer dans le msgbox le nom du fichier que tu as ouvert ou que tu veux ouvrir
Ton code pourrait ressembler à celui-ci
Sub ouvrir_fichier()
Dim TCD As Range
Dim Plage As Range
Dim wb As Workbook, wb1 As Workbook, wb2 As Workbook
Dim Fichier As String
'
' MsgBox ("on va ouvrir le fichier")
' With Worksheets("Feuil1")
'
'
' MsgBox ("on va ouvrir le fichier")
'
With Workbooks("tableau de bord.xlsm").Worksheets("Feuil1")
On Error GoTo ErrHandler:
Fichier = "Planning optimal.xlsm"
Set wb = Workbooks.Open(Fichier)
MsgBox ("on a pas encore lancé la macro")
Application.Run ("'Planning optimal.xlsm'!ThisWorkbook.Recup")
MsgBox ("on a lancé la macro")
Workbooks(Fichier).Close True
MsgBox ("ca fonctionne")
.Cells(3, 3) = "fichier mis à jour"
' wb.Close
Fichier = "filtre.xls"
Set wb1 = Workbooks.Open("C:\Users\\Desktop\" & Fichier)
Set TCD = Workbooks("filtre.xls").Worksheets("Feuil1").Range("A1:B" & Workbooks("filtre.xls").Worksheets("Feuil1").Range("A65536").End(xlUp).Row)
If Format(Date, "dddd") = "samedi" Then
TCD.AutoFilter Field:=1, Criteria1:="=" & Date - 3
Set Plage = TCD.Offset(1, 0).Resize(TCD.Rows.Count - 1, TCD.Columns.Count).SpecialCells(xlCellTypeVisible)
Else
TCD.AutoFilter Field:=1, Criteria1:="=" & Date - 1
Set Plage = TCD.Offset(1, 0).Resize(TCD.Rows.Count - 1, TCD.Columns.Count).SpecialCells(xlCellTypeVisible)
End If
.Cells(4, 3) = "fichié mis à jour"
Workbooks(Fichier).Close True
Application.ScreenUpdating = True
Fichier = "TCD A ACTUALISER.xlsx"
Set wb2 = Workbooks.Open("C:\Users\\Desktop\" & Fichier)
MsgBox ("fichier ouvert trankilou et prêt a etre actualiser")
Workbooks(Fichier).RefreshAll
Workbooks(Fichier).Close True
.Cells(5, 3) = "TCD actualisés"
Exit Sub
End With
ErrHandler:
MsgBox "on est sur l'erreur : " & Fichier
'Workbooks("Planning optimal.xlsm").Worksheets("Feuil1").Cells(3, 3) = "Problème survenu, veuillez vérifier le fichier"
End Sub
Mais comme il manque beaucoup d'informations je ne garanti pas le résultat
Excellente idée !
merci!