Bonjour !
Voici mon problème ;
Ma macro utilise en plusieurs points un système de recherche et, dans le cas
ou aucune correspondance n'a été trouvé, le débogueur s'active (erreur "91")
Le but de mon gestionnaire d'erreur serais de scanner toute mon application
(faite de plusieurs procédures et userforms) qui s'activerais à l'ouverture
du classeur et se fermerais à la fermeture, sans passer par "on error" dans
chaque procédure et, dans le cas de l'erreur "91" proposer de re-renseigner
la recherche et de propôser de reprendre la macro au début en cas de toutes
autres erreurs.
Bonjour ! Voici mon problème ; Ma macro utilise en plusieurs points un système de recherche et, dans l e cas ou aucune correspondance n'a été trouvé, le débogueur s'active (e rreur "91") Le but de mon gestionnaire d'erreur serais de scanner toute mon applicati on (faite de plusieurs procédures et userforms) qui s'activerais à l'ouv erture du classeur et se fermerais à la fermeture, sans passer par "on error" dans chaque procédure et, dans le cas de l'erreur "91" proposer de re-rensei gner la recherche et de propôser de reprendre la macro au début en cas de toutes autres erreurs.
Merci à tout le monde par avance !
Emilien
Que demandes tu exactement ? J'ai relu deux fois et je ne comprends pas ce que tu cherches.
On 1 mar, 09:11, Lepaic07 <Lepai...@discussions.microsoft.com> wrote:
Bonjour !
Voici mon problème ;
Ma macro utilise en plusieurs points un système de recherche et, dans l e cas
ou aucune correspondance n'a été trouvé, le débogueur s'active (e rreur "91")
Le but de mon gestionnaire d'erreur serais de scanner toute mon applicati on
(faite de plusieurs procédures et userforms) qui s'activerais à l'ouv erture
du classeur et se fermerais à la fermeture, sans passer par "on error" dans
chaque procédure et, dans le cas de l'erreur "91" proposer de re-rensei gner
la recherche et de propôser de reprendre la macro au début en cas de toutes
autres erreurs.
Merci à tout le monde par avance !
Emilien
Que demandes tu exactement ? J'ai relu deux fois et je ne comprends
pas ce que tu cherches.
Bonjour ! Voici mon problème ; Ma macro utilise en plusieurs points un système de recherche et, dans l e cas ou aucune correspondance n'a été trouvé, le débogueur s'active (e rreur "91") Le but de mon gestionnaire d'erreur serais de scanner toute mon applicati on (faite de plusieurs procédures et userforms) qui s'activerais à l'ouv erture du classeur et se fermerais à la fermeture, sans passer par "on error" dans chaque procédure et, dans le cas de l'erreur "91" proposer de re-rensei gner la recherche et de propôser de reprendre la macro au début en cas de toutes autres erreurs.
Merci à tout le monde par avance !
Emilien
Que demandes tu exactement ? J'ai relu deux fois et je ne comprends pas ce que tu cherches.
Lepaic07
En bref : - Mon application se compose de plusieurs modules et userforms. - Il est possible que des erreurs "attendues" se produisent (comme une recherche avec un mot erroné ou inexistant (erreur "91" - Des utilisateurs "de base" doivent travailler sur cette application
Je voudrais créé un gestionnaire des erreur "centralisé" qui m'éviterai d'utiliser la fonction On Error dans chaques procédures et ainsi rediriger les utilisateur selon les erreurs (après ca je gère)
Ma question : - Quel est le code me permettant d'activer le controle d'erreur des le lancement de l'application et fonctionnat tout au long de l'application (sans utiliser On Error dans chaque procédure !) ?
Merci d'avance
En bref :
- Mon application se compose de plusieurs modules et userforms.
- Il est possible que des erreurs "attendues" se produisent (comme une
recherche avec un mot erroné ou inexistant (erreur "91"
- Des utilisateurs "de base" doivent travailler sur cette application
Je voudrais créé un gestionnaire des erreur "centralisé" qui m'éviterai
d'utiliser la fonction On Error dans chaques procédures et ainsi rediriger
les utilisateur selon les erreurs (après ca je gère)
Ma question :
- Quel est le code me permettant d'activer le controle d'erreur des le
lancement de l'application et fonctionnat tout au long de l'application (sans
utiliser On Error dans chaque procédure !) ?
En bref : - Mon application se compose de plusieurs modules et userforms. - Il est possible que des erreurs "attendues" se produisent (comme une recherche avec un mot erroné ou inexistant (erreur "91" - Des utilisateurs "de base" doivent travailler sur cette application
Je voudrais créé un gestionnaire des erreur "centralisé" qui m'éviterai d'utiliser la fonction On Error dans chaques procédures et ainsi rediriger les utilisateur selon les erreurs (après ca je gère)
Ma question : - Quel est le code me permettant d'activer le controle d'erreur des le lancement de l'application et fonctionnat tout au long de l'application (sans utiliser On Error dans chaque procédure !) ?
Merci d'avance
Modeste
Bonsour® Lepaic07 avec ferveur ;o))) vous nous disiez :
Je voudrais créé un gestionnaire des erreur "centralisé" qui m'éviterai d'utiliser la fonction On Error dans chaques procédures et ainsi rediriger les utilisateur selon les erreurs (après ca je gère)
une erreur se gère à la source !!!!!! le On Error est donc necessaire dans chaque proc c'est ce On Error qui pourra alors transmettre à un module spécialisé les conditions et circonstances de cette erreur ainsi que tout les parametres utiles à ce traitement centralisé.
dans une application industrialisée, la partie traitement des erreurs, correction ou interruption représente en général 20 à 25% du code !!!!
-- -- @+ ;o)))
Bonsour® Lepaic07 avec ferveur ;o))) vous nous disiez :
Je voudrais créé un gestionnaire des erreur "centralisé" qui m'éviterai
d'utiliser la fonction On Error dans chaques procédures et ainsi rediriger
les utilisateur selon les erreurs (après ca je gère)
une erreur se gère à la source !!!!!!
le On Error est donc necessaire dans chaque proc
c'est ce On Error qui pourra alors transmettre à un module spécialisé les
conditions et circonstances de cette erreur
ainsi que tout les parametres utiles à ce traitement centralisé.
dans une application industrialisée, la partie traitement des erreurs,
correction ou interruption représente en général 20 à 25% du code !!!!
Bonsour® Lepaic07 avec ferveur ;o))) vous nous disiez :
Je voudrais créé un gestionnaire des erreur "centralisé" qui m'éviterai d'utiliser la fonction On Error dans chaques procédures et ainsi rediriger les utilisateur selon les erreurs (après ca je gère)
une erreur se gère à la source !!!!!! le On Error est donc necessaire dans chaque proc c'est ce On Error qui pourra alors transmettre à un module spécialisé les conditions et circonstances de cette erreur ainsi que tout les parametres utiles à ce traitement centralisé.
dans une application industrialisée, la partie traitement des erreurs, correction ou interruption représente en général 20 à 25% du code !!!!
-- -- @+ ;o)))
Lepaic07
Merci Modeste pour ta réponse. Je conçois bien qu'une erreur doit etre gérée à la source, mais dans une application "industrialisée", 25% du code c'est lourd... Je connais la gestion d'erreur dans les procédures avec "On Error", et je l'utilise mais ma question est :
N'est il pas possible d'utiliser un AUTRE moyen (que je ne connaitrais pas) pour éviter justement d'alourdir le code et donc le ralentir ? Comme une sorte de système de gestion "centralisé" ?
A vos avis !
Emilien
Merci Modeste pour ta réponse.
Je conçois bien qu'une erreur doit etre gérée à la source, mais dans une
application "industrialisée", 25% du code c'est lourd...
Je connais la gestion d'erreur dans les procédures avec "On Error", et je
l'utilise mais ma question est :
N'est il pas possible d'utiliser un AUTRE moyen (que je ne connaitrais pas)
pour éviter justement d'alourdir le code et donc le ralentir ? Comme une
sorte de système de gestion "centralisé" ?
Merci Modeste pour ta réponse. Je conçois bien qu'une erreur doit etre gérée à la source, mais dans une application "industrialisée", 25% du code c'est lourd... Je connais la gestion d'erreur dans les procédures avec "On Error", et je l'utilise mais ma question est :
N'est il pas possible d'utiliser un AUTRE moyen (que je ne connaitrais pas) pour éviter justement d'alourdir le code et donc le ralentir ? Comme une sorte de système de gestion "centralisé" ?
A vos avis !
Emilien
Lepaic07
Le deuxième soucis avec On Error GoTo, c'est qu'il est capable de gérer qu'une seule erreur ! Cad :
Private Sub recherche()
Retour: piece = InputBox("Veuillez indiquer la désignation de la pièce", Titre)
Range(Cells(3, 2), Cells(12, 2)).Select 'définie la zone de recherche
Erreur: Select Case Err.Number Case 91 x = MsgBox("Le paramètre entré n'est pas valide, merci de recommencer", vbCritical + vbOKOnly) GoTo Retour
Case Else Resume End Select
End Sub
Dans cette configuration, et dans le cas ou les parametres d'entrés sont erronés 2 fois de suite, le débogueur s'execute...
Alors si vous avez la solution, je suis preneur !
Merci ! Emilien
JB
Bonjour,
Sub recherche() On Error Resume Next ' Une erreur peut se produire dans la séquence suivante Do Err = 0 piece = InputBox("Veuillez indiquer la désignation de la pièce", Titre) [A:A].Find(What:=piece, After:¬tiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse).Activate If Err <> 0 Then MsgBox "Inconnu" Loop While Err <> 0 '--suite On Error GoTo 0 ' annule la gestion des erreurs ' ' End Sub
Sur cet exemple, il est possible de ne pas utiliser la gestion d'erreur.
Sub recherche2() Do piece = InputBox("Veuillez indiquer la désignation de la pièce", Titre) Set result = [A:A].Find(What:=piece, LookIn:=xlValues, LookAt:=xlWhole) If result Is Nothing Then MsgBox "Inconnu" Else result.Select End If Loop While result Is Nothing '--suite ' ' End Sub
JB
On 2 mar, 12:05, Lepaic07 wrote:
Le deuxième soucis avec On Error GoTo, c'est qu'il est capable de gér er qu'une seule erreur ! Cad :
Private Sub recherche()
Retour: piece = InputBox("Veuillez indiquer la désignation de la pièce", Ti tre)
Range(Cells(3, 2), Cells(12, 2)).Select 'définie la zone de recherche
Erreur: Select Case Err.Number Case 91 x = MsgBox("Le paramètre entré n'est pas valide, merci de recommencer", vbCritical + vbOKOnly) GoTo Retour
Case Else Resume End Select
End Sub
Dans cette configuration, et dans le cas ou les parametres d'entrés sont erronés 2 fois de suite, le débogueur s'execute...
Alors si vous avez la solution, je suis preneur !
Merci ! Emilien
Bonjour,
Sub recherche()
On Error Resume Next ' Une erreur peut se produire dans la
séquence suivante
Do
Err = 0
piece = InputBox("Veuillez indiquer la désignation de la pièce",
Titre)
[A:A].Find(What:=piece, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, _
MatchCase:=False).Activate
If Err <> 0 Then MsgBox "Inconnu"
Loop While Err <> 0
'--suite
On Error GoTo 0 ' annule la gestion des erreurs
'
'
End Sub
Sur cet exemple, il est possible de ne pas utiliser la gestion
d'erreur.
Sub recherche2()
Do
piece = InputBox("Veuillez indiquer la désignation de la pièce",
Titre)
Set result = [A:A].Find(What:=piece, LookIn:=xlValues,
LookAt:=xlWhole)
If result Is Nothing Then
MsgBox "Inconnu"
Else
result.Select
End If
Loop While result Is Nothing
'--suite
'
'
End Sub
JB
On 2 mar, 12:05, Lepaic07 <Lepai...@discussions.microsoft.com> wrote:
Le deuxième soucis avec On Error GoTo, c'est qu'il est capable de gér er
qu'une seule erreur !
Cad :
Private Sub recherche()
Retour:
piece = InputBox("Veuillez indiquer la désignation de la pièce", Ti tre)
Range(Cells(3, 2), Cells(12, 2)).Select 'définie la zone de recherche
Sub recherche() On Error Resume Next ' Une erreur peut se produire dans la séquence suivante Do Err = 0 piece = InputBox("Veuillez indiquer la désignation de la pièce", Titre) [A:A].Find(What:=piece, After:¬tiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse).Activate If Err <> 0 Then MsgBox "Inconnu" Loop While Err <> 0 '--suite On Error GoTo 0 ' annule la gestion des erreurs ' ' End Sub
Sur cet exemple, il est possible de ne pas utiliser la gestion d'erreur.
Sub recherche2() Do piece = InputBox("Veuillez indiquer la désignation de la pièce", Titre) Set result = [A:A].Find(What:=piece, LookIn:=xlValues, LookAt:=xlWhole) If result Is Nothing Then MsgBox "Inconnu" Else result.Select End If Loop While result Is Nothing '--suite ' ' End Sub
JB
On 2 mar, 12:05, Lepaic07 wrote:
Le deuxième soucis avec On Error GoTo, c'est qu'il est capable de gér er qu'une seule erreur ! Cad :
Private Sub recherche()
Retour: piece = InputBox("Veuillez indiquer la désignation de la pièce", Ti tre)
Range(Cells(3, 2), Cells(12, 2)).Select 'définie la zone de recherche