Intégrer une gestion des erreurs

titiborregan5

XLDnaute Accro
Bonjour à tous,
j'ai créé une macro, pas hyper complexe mais assez longue qui permet de pallier à l'absence d'états de suivi au sein du logiciel comptable de ma boite...
Cette macro étant destinée aux utilisateurs, nombreux et pas forcément toujours à l'aise avec Excel, j'aimerais intégrer une gestion des erreurs mais je ne sais comment m'y prendre...
Il y a beaucoup de cas d'erreurs possibles, notamment lors de l'ouverture des fichiers...

Je vous joins le fichier vierge qui a pour but de :
1/ ouvrir un 1er fichier, copier sa feuille 1 dans le fichier de la macro et ensuite faire tout un tas de retraitements afin de fournir des données sous forme "base de données".
2/ même chose mais avec un autre fichier, les retraitements étant différents
3/récupérer les différentes infos afin d'en faire des listes pour liste de choix
4/ selon liste de choix l'utilisateur peut faire ses recherches...


Autant d'étapes qui à mon avis démultiplient le nombre d'erreurs potentiel...

Merci à tous pour votre aide, et si l'exemple ou les explications ne sont pas claires, dites-le moi et j'essaierai d'améliorer cela!

Tibo
 

Pièces jointes

  • Macro V5 Dépenses.xls
    783 KB · Affichages: 38
Dernière édition:

adel53

XLDnaute Occasionnel
Re : Intégrer une gestion des erreurs

Bonjour

Il faudrait que tu évalues les codes pouvant générer des erreurs et mettre en place des msg box avec un message explicites pour gérer chacune des erreurs. A savoir que tu peux déjà ajouter Application.DisplayAlerts = False pour éviter quelques affichage d'alertes.
 

titiborregan5

XLDnaute Accro
Re : Intégrer une gestion des erreurs

Bonjour Adel, le forum,

merci pour ta réponse.

Je pense que les application.displayalerts=false ne sont pas la réponse adéquate...
Je m'en sers déjà dans mon code mais dans des cas bien précis.

J'ai répertorié les cas de "bug" possible et j'en compte 4 de sûrs...
2 au moment de la sélection du fichier (1 par fichier) et 2 au moment du retravail de ses données (1 par fichier également)...
Plus peut-être quelques petits autres mais je ne vois pas pour le moment.

Du coup, je le fais pointer comment et vers quoi mon on error si je veux refaire la sélection du fichier par exemple? parce que je ne peux pas sauter l'étape, ça déclencherait d'autres erreurs après!

Merci à tous

Tibo
 

adel53

XLDnaute Occasionnel
Re : Intégrer une gestion des erreurs

Bonjour Tibo

Comment fais tu pour vérifier s'il s'agit du bon fichier?
Quand tu transformes les données quels sont les erreurs que tu peux trouver par exemple?

Suite à la consultation de ton code tu peux déjà faire une vérification sur le nom des onglets et les contenus que tu importes. Ainsi tu peux afficher un msgbox veuillez sélectionner un fichier valide
 
Dernière édition:

titiborregan5

XLDnaute Accro
Re : Intégrer une gestion des erreurs

Re Adel,
une nouvelle fois merci pour ta réponse.
Pour le fichier je ne fais pas encore de vérif, car il peut provenir du même export mais avec qq petites subtilités qui font que son format sera le bon mais n'aura pas le même titre... Par contre, si le fichier n'est pas au bon format là -->erreur...
La question de la sélection du fichier porte plutôt sur le fait qu'un utilisateur peut cliquer sur Annuler au moment de choisir le fichier dans la fenêtre, et dans ce cas, la macro déconne (c'est ma principale crainte effectivement)!
 

adel53

XLDnaute Occasionnel
Re : Intégrer une gestion des erreurs

J'ai édité mon post avant au moment où tu as écris le dernier

pour ce qui est de cliquer sur annuler c'est toi qui as choisis ce fonctionnement là

Code:
    If Not nf = False Then
        Workbooks.Open Filename:=nf
    Else
    End If
tu peux modifier ce bout de code pour gérer déjà cette erruere
 

titiborregan5

XLDnaute Accro
Re : Intégrer une gestion des erreurs

J'ai édité mon post avant au moment où tu as écris le dernier

pour ce qui est de cliquer sur annuler c'est toi qui as choisis ce fonctionnement là

Code:
    If Not nf = False Then
        Workbooks.Open Filename:=nf
    Else
    End If
tu peux modifier ce bout de code pour gérer déjà cette erruere

Oui je l'ai choisi car assez souple pour choisir le fichier mais, si je clique sur annuler, ça bug car ça continue la procédure...
J'aimerai que ça la stoppe pour le 1er choix et je ne sais pas encore quoi faire dans le cas du 2ème choix...
J'écris quoi du coup? et où???

Code:
on error goto ??

J'ai "réussi" à faire en sorte qu'on puisse annuler lors du 1er choix
Code:
On Error GoTo Fin
nf = Application.GetOpenFilename("fichiers Xls,*.xls")
    If Not nf = False Then
        Workbooks.Open Filename:=nf
    Else
    End If
Fin: 'MsgBox "erreur, fin de la macro, veuillez recommencer!"
    Exit Sub
Set R = ActiveWorkbook
reste à faire dans le 2ème maintenant!
 
Dernière édition:

adel53

XLDnaute Occasionnel
Re : Intégrer une gestion des erreurs

RE

Pour l'annulation voici comment annuler sans poser de problèmes

Code:
Sub recup()
Application.ScreenUpdating = False

nf = Application.GetOpenFilename("fichiers Xls,*.xls")
    If Not nf = False Then
        Workbooks.Open Filename:=nf
   
Set R = ActiveWorkbook
    ActiveWorkbook.Sheets(1).Copy after:=ThisWorkbook.Sheets(2)
    R.Close
Call créaTion_FeuiLLe
Call titres
Call copie_num_EJ
Call paraMetres
MsgBox "Veuillez sélectionner l'export Lignes Chrono Mdt", vbOKOnly, "Saisie Lignes Chrono Mdt"

Call ManDats
For f = 3 To Sheets.Count
Sheets(f).Visible = False
Next

Sheets("Récap").Activate
MsgBox "Macro terminée, vous pouvez procéder à vos recherches!"
Else
MsgBox ("veuillez sélectionner un fichier valide")
End If
End Sub
 

Discussions similaires

Réponses
5
Affichages
247

Statistiques des forums

Discussions
314 663
Messages
2 111 652
Membres
111 246
dernier inscrit
Jeanluis87