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!

Rechercher des sujets similaires à "error handler"