Bonjour!
J'ai construis un programme vba qui va être utilisé par beaucoup de p ersonne
et il est possible qu'il reste des erreurs dans mon code. (c'est impossib le
de tout tester) Je me demandais qu'elle est la meilleure façon de trava iller
avec celles-ci.
Le programme contient une vingtaine de modules avec des Sub qui call d'au tre
Sub. Avec des "On error Resume Next" et "On error Goto 0" un peu partout.
1) S'il y a erreur, y-a-t-il arrêt de la macro automatiquement? Si oui, je
voudrais dire: On error Call MsgErreur mais avec les "On error Resume Nex t",
est-ce que ça veut dire qu'il faut écrire On error Call MsgErreur par tout
après les "On error goto 0" et au début de chaque macro?
2) Le code VBA va être verrouillé. Je pense qu'en cas d'erreur, il n' y aura
aucun déboguage possible. Y-a-t-il une façon de savoir où le progra mme plante
et d'inscrire un code à l'utilisateur?
Merci !
Alex
--
Alex St-Pierre
S'il y a erreur, y-a-t-il arrêt de la macro automatiquement?
il est possible qu'il reste des erreurs dans mon code. (c'est impossible
de tout tester)
Bonjour!
J'ai construis un programme vba qui va être utilisé par beaucoup de p ersonne
et il est possible qu'il reste des erreurs dans mon code. (c'est impossib le
de tout tester) Je me demandais qu'elle est la meilleure façon de trava iller
avec celles-ci.
Le programme contient une vingtaine de modules avec des Sub qui call d'au tre
Sub. Avec des "On error Resume Next" et "On error Goto 0" un peu partout.
1) S'il y a erreur, y-a-t-il arrêt de la macro automatiquement? Si oui, je
voudrais dire: On error Call MsgErreur mais avec les "On error Resume Nex t",
est-ce que ça veut dire qu'il faut écrire On error Call MsgErreur par tout
après les "On error goto 0" et au début de chaque macro?
2) Le code VBA va être verrouillé. Je pense qu'en cas d'erreur, il n' y aura
aucun déboguage possible. Y-a-t-il une façon de savoir où le progra mme plante
et d'inscrire un code à l'utilisateur?
Merci !
Alex
--
Alex St-Pierre
S'il y a erreur, y-a-t-il arrêt de la macro automatiquement?
il est possible qu'il reste des erreurs dans mon code. (c'est impossible
de tout tester)
Bonjour!
J'ai construis un programme vba qui va être utilisé par beaucoup de p ersonne
et il est possible qu'il reste des erreurs dans mon code. (c'est impossib le
de tout tester) Je me demandais qu'elle est la meilleure façon de trava iller
avec celles-ci.
Le programme contient une vingtaine de modules avec des Sub qui call d'au tre
Sub. Avec des "On error Resume Next" et "On error Goto 0" un peu partout.
1) S'il y a erreur, y-a-t-il arrêt de la macro automatiquement? Si oui, je
voudrais dire: On error Call MsgErreur mais avec les "On error Resume Nex t",
est-ce que ça veut dire qu'il faut écrire On error Call MsgErreur par tout
après les "On error goto 0" et au début de chaque macro?
2) Le code VBA va être verrouillé. Je pense qu'en cas d'erreur, il n' y aura
aucun déboguage possible. Y-a-t-il une façon de savoir où le progra mme plante
et d'inscrire un code à l'utilisateur?
Merci !
Alex
--
Alex St-Pierre
S'il y a erreur, y-a-t-il arrêt de la macro automatiquement?
il est possible qu'il reste des erreurs dans mon code. (c'est impossible
de tout tester)
On 3 fév, 04:45, Alex St-Pierre
wrote:Bonjour!
J'ai construis un programme vba qui va être utilisé par beaucoup de personne
et il est possible qu'il reste des erreurs dans mon code. (c'est impossible
de tout tester) Je me demandais qu'elle est la meilleure façon de travailler
avec celles-ci.
Le programme contient une vingtaine de modules avec des Sub qui call d'autre
Sub. Avec des "On error Resume Next" et "On error Goto 0" un peu partout.
1) S'il y a erreur, y-a-t-il arrêt de la macro automatiquement? Si oui, je
voudrais dire: On error Call MsgErreur mais avec les "On error Resume Next",
est-ce que ça veut dire qu'il faut écrire On error Call MsgErreur partout
après les "On error goto 0" et au début de chaque macro?
2) Le code VBA va être verrouillé. Je pense qu'en cas d'erreur, il n'y aura
aucun déboguage possible. Y-a-t-il une façon de savoir où le programme plante
et d'inscrire un code à l'utilisateur?
Merci !
Alex
--
Alex St-Pierre
S'il y a erreur, y-a-t-il arrêt de la macro automatiquement?
Si la gestion des erreurs n'est pas activée par On Error Resume Next
ou On error Goto 0, l'exécution du pgm est stoppée.il est possible qu'il reste des erreurs dans mon code. (c'est impossible
de tout tester)
Il n'y a pas de miracle, Il faut prévoir tous les cas d'erreurs. En
cas d'erreur imprévue, il faut stopper l'exécution du pgm.
Sub essai()
'....
'....
On Error Resume Next ' si erreur continuer
onglet = "Toto"
Sheets(onglet).Select
Select Case err.Number
Case 9
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = onglet
Case Is > 0
finPgm
End Select
On Error GoTo 0 ' on désactive la gestion d'erreur
'suite du pgm
'....
End Sub
Sub finPgm()
MsgBox "Erreur non prévue"
Sheets("log").[A65000].End(xlUp).Offset(1, 0) > Environ("Username")
Sheets("log").[A65000].End(xlUp).Offset(0, 1) = Now
Sheets("log").[A65000].End(xlUp).Offset(0, 2) = err.Number
Sheets("log").[A65000].End(xlUp).Offset(0, 3) = err.Description
ActiveWorkbook.Save
Stop
End Sub
JB
On 3 fév, 04:45, Alex St-Pierre
<AlexStPie...@discussions.microsoft.com> wrote:
Bonjour!
J'ai construis un programme vba qui va être utilisé par beaucoup de personne
et il est possible qu'il reste des erreurs dans mon code. (c'est impossible
de tout tester) Je me demandais qu'elle est la meilleure façon de travailler
avec celles-ci.
Le programme contient une vingtaine de modules avec des Sub qui call d'autre
Sub. Avec des "On error Resume Next" et "On error Goto 0" un peu partout.
1) S'il y a erreur, y-a-t-il arrêt de la macro automatiquement? Si oui, je
voudrais dire: On error Call MsgErreur mais avec les "On error Resume Next",
est-ce que ça veut dire qu'il faut écrire On error Call MsgErreur partout
après les "On error goto 0" et au début de chaque macro?
2) Le code VBA va être verrouillé. Je pense qu'en cas d'erreur, il n'y aura
aucun déboguage possible. Y-a-t-il une façon de savoir où le programme plante
et d'inscrire un code à l'utilisateur?
Merci !
Alex
--
Alex St-Pierre
S'il y a erreur, y-a-t-il arrêt de la macro automatiquement?
Si la gestion des erreurs n'est pas activée par On Error Resume Next
ou On error Goto 0, l'exécution du pgm est stoppée.
il est possible qu'il reste des erreurs dans mon code. (c'est impossible
de tout tester)
Il n'y a pas de miracle, Il faut prévoir tous les cas d'erreurs. En
cas d'erreur imprévue, il faut stopper l'exécution du pgm.
Sub essai()
'....
'....
On Error Resume Next ' si erreur continuer
onglet = "Toto"
Sheets(onglet).Select
Select Case err.Number
Case 9
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = onglet
Case Is > 0
finPgm
End Select
On Error GoTo 0 ' on désactive la gestion d'erreur
'suite du pgm
'....
End Sub
Sub finPgm()
MsgBox "Erreur non prévue"
Sheets("log").[A65000].End(xlUp).Offset(1, 0) > Environ("Username")
Sheets("log").[A65000].End(xlUp).Offset(0, 1) = Now
Sheets("log").[A65000].End(xlUp).Offset(0, 2) = err.Number
Sheets("log").[A65000].End(xlUp).Offset(0, 3) = err.Description
ActiveWorkbook.Save
Stop
End Sub
JB
On 3 fév, 04:45, Alex St-Pierre
wrote:Bonjour!
J'ai construis un programme vba qui va être utilisé par beaucoup de personne
et il est possible qu'il reste des erreurs dans mon code. (c'est impossible
de tout tester) Je me demandais qu'elle est la meilleure façon de travailler
avec celles-ci.
Le programme contient une vingtaine de modules avec des Sub qui call d'autre
Sub. Avec des "On error Resume Next" et "On error Goto 0" un peu partout.
1) S'il y a erreur, y-a-t-il arrêt de la macro automatiquement? Si oui, je
voudrais dire: On error Call MsgErreur mais avec les "On error Resume Next",
est-ce que ça veut dire qu'il faut écrire On error Call MsgErreur partout
après les "On error goto 0" et au début de chaque macro?
2) Le code VBA va être verrouillé. Je pense qu'en cas d'erreur, il n'y aura
aucun déboguage possible. Y-a-t-il une façon de savoir où le programme plante
et d'inscrire un code à l'utilisateur?
Merci !
Alex
--
Alex St-Pierre
S'il y a erreur, y-a-t-il arrêt de la macro automatiquement?
Si la gestion des erreurs n'est pas activée par On Error Resume Next
ou On error Goto 0, l'exécution du pgm est stoppée.il est possible qu'il reste des erreurs dans mon code. (c'est impossible
de tout tester)
Il n'y a pas de miracle, Il faut prévoir tous les cas d'erreurs. En
cas d'erreur imprévue, il faut stopper l'exécution du pgm.
Sub essai()
'....
'....
On Error Resume Next ' si erreur continuer
onglet = "Toto"
Sheets(onglet).Select
Select Case err.Number
Case 9
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = onglet
Case Is > 0
finPgm
End Select
On Error GoTo 0 ' on désactive la gestion d'erreur
'suite du pgm
'....
End Sub
Sub finPgm()
MsgBox "Erreur non prévue"
Sheets("log").[A65000].End(xlUp).Offset(1, 0) > Environ("Username")
Sheets("log").[A65000].End(xlUp).Offset(0, 1) = Now
Sheets("log").[A65000].End(xlUp).Offset(0, 2) = err.Number
Sheets("log").[A65000].End(xlUp).Offset(0, 3) = err.Description
ActiveWorkbook.Save
Stop
End Sub
JB
On 3 fév, 04:45, Alex St-Pierre
wrote:Bonjour!
J'ai construis un programme vba qui va être utilisé par beaucoup de personne
et il est possible qu'il reste des erreurs dans mon code. (c'est impossible
de tout tester) Je me demandais qu'elle est la meilleure façon de travailler
avec celles-ci.
Le programme contient une vingtaine de modules avec des Sub qui call d'autre
Sub. Avec des "On error Resume Next" et "On error Goto 0" un peu partout.
1) S'il y a erreur, y-a-t-il arrêt de la macro automatiquement? Si oui, je
voudrais dire: On error Call MsgErreur mais avec les "On error Resume Next",
est-ce que ça veut dire qu'il faut écrire On error Call MsgErreur partout
après les "On error goto 0" et au début de chaque macro?
2) Le code VBA va être verrouillé. Je pense qu'en cas d'erreur, il n'y aura
aucun déboguage possible. Y-a-t-il une façon de savoir où le programme plante
et d'inscrire un code à l'utilisateur?
Merci !
Alex
--
Alex St-Pierre
S'il y a erreur, y-a-t-il arrêt de la macro automatiquement?
Si la gestion des erreurs n'est pas activée par On Error Resume Next
ou On error Goto 0, l'exécution du pgm est stoppée.il est possible qu'il reste des erreurs dans mon code. (c'est impossible
de tout tester)
Il n'y a pas de miracle, Il faut prévoir tous les cas d'erreurs. En
cas d'erreur imprévue, il faut stopper l'exécution du pgm.
Sub essai()
'....
'....
On Error Resume Next ' si erreur continuer
onglet = "Toto"
Sheets(onglet).Select
Select Case err.Number
Case 9
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = onglet
Case Is > 0
finPgm
End Select
On Error GoTo 0 ' on désactive la gestion d'erreur
'suite du pgm
'....
End Sub
Sub finPgm()
MsgBox "Erreur non prévue"
Sheets("log").[A65000].End(xlUp).Offset(1, 0) > Environ("Username")
Sheets("log").[A65000].End(xlUp).Offset(0, 1) = Now
Sheets("log").[A65000].End(xlUp).Offset(0, 2) = err.Number
Sheets("log").[A65000].End(xlUp).Offset(0, 3) = err.Description
ActiveWorkbook.Save
Stop
End Sub
JB
On 3 fév, 04:45, Alex St-Pierre
<AlexStPie...@discussions.microsoft.com> wrote:
Bonjour!
J'ai construis un programme vba qui va être utilisé par beaucoup de personne
et il est possible qu'il reste des erreurs dans mon code. (c'est impossible
de tout tester) Je me demandais qu'elle est la meilleure façon de travailler
avec celles-ci.
Le programme contient une vingtaine de modules avec des Sub qui call d'autre
Sub. Avec des "On error Resume Next" et "On error Goto 0" un peu partout.
1) S'il y a erreur, y-a-t-il arrêt de la macro automatiquement? Si oui, je
voudrais dire: On error Call MsgErreur mais avec les "On error Resume Next",
est-ce que ça veut dire qu'il faut écrire On error Call MsgErreur partout
après les "On error goto 0" et au début de chaque macro?
2) Le code VBA va être verrouillé. Je pense qu'en cas d'erreur, il n'y aura
aucun déboguage possible. Y-a-t-il une façon de savoir où le programme plante
et d'inscrire un code à l'utilisateur?
Merci !
Alex
--
Alex St-Pierre
S'il y a erreur, y-a-t-il arrêt de la macro automatiquement?
Si la gestion des erreurs n'est pas activée par On Error Resume Next
ou On error Goto 0, l'exécution du pgm est stoppée.
il est possible qu'il reste des erreurs dans mon code. (c'est impossible
de tout tester)
Il n'y a pas de miracle, Il faut prévoir tous les cas d'erreurs. En
cas d'erreur imprévue, il faut stopper l'exécution du pgm.
Sub essai()
'....
'....
On Error Resume Next ' si erreur continuer
onglet = "Toto"
Sheets(onglet).Select
Select Case err.Number
Case 9
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = onglet
Case Is > 0
finPgm
End Select
On Error GoTo 0 ' on désactive la gestion d'erreur
'suite du pgm
'....
End Sub
Sub finPgm()
MsgBox "Erreur non prévue"
Sheets("log").[A65000].End(xlUp).Offset(1, 0) > Environ("Username")
Sheets("log").[A65000].End(xlUp).Offset(0, 1) = Now
Sheets("log").[A65000].End(xlUp).Offset(0, 2) = err.Number
Sheets("log").[A65000].End(xlUp).Offset(0, 3) = err.Description
ActiveWorkbook.Save
Stop
End Sub
JB
On 3 fév, 04:45, Alex St-Pierre
wrote:Bonjour!
J'ai construis un programme vba qui va être utilisé par beaucoup de personne
et il est possible qu'il reste des erreurs dans mon code. (c'est impossible
de tout tester) Je me demandais qu'elle est la meilleure façon de travailler
avec celles-ci.
Le programme contient une vingtaine de modules avec des Sub qui call d'autre
Sub. Avec des "On error Resume Next" et "On error Goto 0" un peu partout.
1) S'il y a erreur, y-a-t-il arrêt de la macro automatiquement? Si oui, je
voudrais dire: On error Call MsgErreur mais avec les "On error Resume Next",
est-ce que ça veut dire qu'il faut écrire On error Call MsgErreur partout
après les "On error goto 0" et au début de chaque macro?
2) Le code VBA va être verrouillé. Je pense qu'en cas d'erreur, il n'y aura
aucun déboguage possible. Y-a-t-il une façon de savoir où le programme plante
et d'inscrire un code à l'utilisateur?
Merci !
Alex
--
Alex St-Pierre
S'il y a erreur, y-a-t-il arrêt de la macro automatiquement?
Si la gestion des erreurs n'est pas activée par On Error Resume Next
ou On error Goto 0, l'exécution du pgm est stoppée.il est possible qu'il reste des erreurs dans mon code. (c'est impossible
de tout tester)
Il n'y a pas de miracle, Il faut prévoir tous les cas d'erreurs. En
cas d'erreur imprévue, il faut stopper l'exécution du pgm.
Sub essai()
'....
'....
On Error Resume Next ' si erreur continuer
onglet = "Toto"
Sheets(onglet).Select
Select Case err.Number
Case 9
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = onglet
Case Is > 0
finPgm
End Select
On Error GoTo 0 ' on désactive la gestion d'erreur
'suite du pgm
'....
End Sub
Sub finPgm()
MsgBox "Erreur non prévue"
Sheets("log").[A65000].End(xlUp).Offset(1, 0) > Environ("Username")
Sheets("log").[A65000].End(xlUp).Offset(0, 1) = Now
Sheets("log").[A65000].End(xlUp).Offset(0, 2) = err.Number
Sheets("log").[A65000].End(xlUp).Offset(0, 3) = err.Description
ActiveWorkbook.Save
Stop
End Sub
JB
SalutJB!
Dans l'exemple de la création d'une feuille, j'utilise l'approche:
On Error Resume Next
Set wsTmp = ThisWorkbook.Worksheets("Toto")
If wsTmp Is Nothing Then
Set wsTmp = ThisWorkbook.Worksheets.Add
wsTmp.Name = "Toto"
End If
J'ai ajusté chaque situation pour essayer que rien n'arrive. J'ouvre les
librairies Word à l'ouverture d'Excel et les fermes à la ferme à la
fermeture. Si jamais elles ne sont pas ouvertes, le programme ne roule pa s et
un message apparait pour dire où aller cliquer dans Excel pour ajuster le
niveau de sécurité. S'il y a des références manquantes, le progra mme les
enlèves. Tout les procédures qui réfère à Word sont déclaré es p/r à
Word.Application car certaines existent à la foie dans Word et Excel. B ref,
s'il y a une erreur, je sais pas où ça va se produire.
1- Si je met rien pour attraper les erreurs, est-ce que le programme va
arrêter immédiatement dans tous les cas?
2- Puis-je mettre quelque chose du style "On error GoTo finPgm"?
Merci!
Alex
--
Alex St-Pierre
"JB" wrote:On 3 fév, 04:45, Alex St-Pierre
wrote:Bonjour!
J'ai construis un programme vba qui va être utilisé par beaucoup de personne
et il est possible qu'il reste des erreurs dans mon code. (c'est impo ssible
de tout tester) Je me demandais qu'elle est la meilleure façon de t ravailler
avec celles-ci.
Le programme contient une vingtaine de modules avec des Sub qui call d'autre
Sub. Avec des "On error Resume Next" et "On error Goto 0" un peu part out.
1) S'il y a erreur, y-a-t-il arrêt de la macro automatiquement? Si oui, je
voudrais dire: On error Call MsgErreur mais avec les "On error Resume Next",
est-ce que ça veut dire qu'il faut écrire On error Call MsgErreur partout
après les "On error goto 0" et au début de chaque macro?
2) Le code VBA va être verrouillé. Je pense qu'en cas d'erreur, i l n'y aura
aucun déboguage possible. Y-a-t-il une façon de savoir où le pr ogramme plante
et d'inscrire un code à l'utilisateur?
Merci !
Alex
--
Alex St-Pierre
S'il y a erreur, y-a-t-il arrêt de la macro automatiquement?
Si la gestion des erreurs n'est pas activée par On Error Resume Next
ou On error Goto 0, l'exécution du pgm est stoppée.il est possible qu'il reste des erreurs dans mon code. (c'est impossi ble
de tout tester)
Il n'y a pas de miracle, Il faut prévoir tous les cas d'erreurs. En
cas d'erreur imprévue, il faut stopper l'exécution du pgm.
Sub essai()
'....
'....
On Error Resume Next ' si erreur continuer
onglet = "Toto"
Sheets(onglet).Select
Select Case err.Number
Case 9
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = onglet
Case Is > 0
finPgm
End Select
On Error GoTo 0 ' on désactive la gestion d'erreur
'suite du pgm
'....
End Sub
Sub finPgm()
MsgBox "Erreur non prévue"
Sheets("log").[A65000].End(xlUp).Offset(1, 0) =
Environ("Username")
Sheets("log").[A65000].End(xlUp).Offset(0, 1) = Now
Sheets("log").[A65000].End(xlUp).Offset(0, 2) = err.Number
Sheets("log").[A65000].End(xlUp).Offset(0, 3) = err.Description
ActiveWorkbook.Save
Stop
End Sub
JB- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
1- Si je met rien pour attraper les erreurs, est-ce que le programme va
arrêter immédiatement dans tous les cas?
2- Puis-je mettre quelque chose du style "On error GoTo finPgm"?
SalutJB!
Dans l'exemple de la création d'une feuille, j'utilise l'approche:
On Error Resume Next
Set wsTmp = ThisWorkbook.Worksheets("Toto")
If wsTmp Is Nothing Then
Set wsTmp = ThisWorkbook.Worksheets.Add
wsTmp.Name = "Toto"
End If
J'ai ajusté chaque situation pour essayer que rien n'arrive. J'ouvre les
librairies Word à l'ouverture d'Excel et les fermes à la ferme à la
fermeture. Si jamais elles ne sont pas ouvertes, le programme ne roule pa s et
un message apparait pour dire où aller cliquer dans Excel pour ajuster le
niveau de sécurité. S'il y a des références manquantes, le progra mme les
enlèves. Tout les procédures qui réfère à Word sont déclaré es p/r à
Word.Application car certaines existent à la foie dans Word et Excel. B ref,
s'il y a une erreur, je sais pas où ça va se produire.
1- Si je met rien pour attraper les erreurs, est-ce que le programme va
arrêter immédiatement dans tous les cas?
2- Puis-je mettre quelque chose du style "On error GoTo finPgm"?
Merci!
Alex
--
Alex St-Pierre
"JB" wrote:
On 3 fév, 04:45, Alex St-Pierre
<AlexStPie...@discussions.microsoft.com> wrote:
Bonjour!
J'ai construis un programme vba qui va être utilisé par beaucoup de personne
et il est possible qu'il reste des erreurs dans mon code. (c'est impo ssible
de tout tester) Je me demandais qu'elle est la meilleure façon de t ravailler
avec celles-ci.
Le programme contient une vingtaine de modules avec des Sub qui call d'autre
Sub. Avec des "On error Resume Next" et "On error Goto 0" un peu part out.
1) S'il y a erreur, y-a-t-il arrêt de la macro automatiquement? Si oui, je
voudrais dire: On error Call MsgErreur mais avec les "On error Resume Next",
est-ce que ça veut dire qu'il faut écrire On error Call MsgErreur partout
après les "On error goto 0" et au début de chaque macro?
2) Le code VBA va être verrouillé. Je pense qu'en cas d'erreur, i l n'y aura
aucun déboguage possible. Y-a-t-il une façon de savoir où le pr ogramme plante
et d'inscrire un code à l'utilisateur?
Merci !
Alex
--
Alex St-Pierre
S'il y a erreur, y-a-t-il arrêt de la macro automatiquement?
Si la gestion des erreurs n'est pas activée par On Error Resume Next
ou On error Goto 0, l'exécution du pgm est stoppée.
il est possible qu'il reste des erreurs dans mon code. (c'est impossi ble
de tout tester)
Il n'y a pas de miracle, Il faut prévoir tous les cas d'erreurs. En
cas d'erreur imprévue, il faut stopper l'exécution du pgm.
Sub essai()
'....
'....
On Error Resume Next ' si erreur continuer
onglet = "Toto"
Sheets(onglet).Select
Select Case err.Number
Case 9
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = onglet
Case Is > 0
finPgm
End Select
On Error GoTo 0 ' on désactive la gestion d'erreur
'suite du pgm
'....
End Sub
Sub finPgm()
MsgBox "Erreur non prévue"
Sheets("log").[A65000].End(xlUp).Offset(1, 0) =
Environ("Username")
Sheets("log").[A65000].End(xlUp).Offset(0, 1) = Now
Sheets("log").[A65000].End(xlUp).Offset(0, 2) = err.Number
Sheets("log").[A65000].End(xlUp).Offset(0, 3) = err.Description
ActiveWorkbook.Save
Stop
End Sub
JB- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
1- Si je met rien pour attraper les erreurs, est-ce que le programme va
arrêter immédiatement dans tous les cas?
2- Puis-je mettre quelque chose du style "On error GoTo finPgm"?
SalutJB!
Dans l'exemple de la création d'une feuille, j'utilise l'approche:
On Error Resume Next
Set wsTmp = ThisWorkbook.Worksheets("Toto")
If wsTmp Is Nothing Then
Set wsTmp = ThisWorkbook.Worksheets.Add
wsTmp.Name = "Toto"
End If
J'ai ajusté chaque situation pour essayer que rien n'arrive. J'ouvre les
librairies Word à l'ouverture d'Excel et les fermes à la ferme à la
fermeture. Si jamais elles ne sont pas ouvertes, le programme ne roule pa s et
un message apparait pour dire où aller cliquer dans Excel pour ajuster le
niveau de sécurité. S'il y a des références manquantes, le progra mme les
enlèves. Tout les procédures qui réfère à Word sont déclaré es p/r à
Word.Application car certaines existent à la foie dans Word et Excel. B ref,
s'il y a une erreur, je sais pas où ça va se produire.
1- Si je met rien pour attraper les erreurs, est-ce que le programme va
arrêter immédiatement dans tous les cas?
2- Puis-je mettre quelque chose du style "On error GoTo finPgm"?
Merci!
Alex
--
Alex St-Pierre
"JB" wrote:On 3 fév, 04:45, Alex St-Pierre
wrote:Bonjour!
J'ai construis un programme vba qui va être utilisé par beaucoup de personne
et il est possible qu'il reste des erreurs dans mon code. (c'est impo ssible
de tout tester) Je me demandais qu'elle est la meilleure façon de t ravailler
avec celles-ci.
Le programme contient une vingtaine de modules avec des Sub qui call d'autre
Sub. Avec des "On error Resume Next" et "On error Goto 0" un peu part out.
1) S'il y a erreur, y-a-t-il arrêt de la macro automatiquement? Si oui, je
voudrais dire: On error Call MsgErreur mais avec les "On error Resume Next",
est-ce que ça veut dire qu'il faut écrire On error Call MsgErreur partout
après les "On error goto 0" et au début de chaque macro?
2) Le code VBA va être verrouillé. Je pense qu'en cas d'erreur, i l n'y aura
aucun déboguage possible. Y-a-t-il une façon de savoir où le pr ogramme plante
et d'inscrire un code à l'utilisateur?
Merci !
Alex
--
Alex St-Pierre
S'il y a erreur, y-a-t-il arrêt de la macro automatiquement?
Si la gestion des erreurs n'est pas activée par On Error Resume Next
ou On error Goto 0, l'exécution du pgm est stoppée.il est possible qu'il reste des erreurs dans mon code. (c'est impossi ble
de tout tester)
Il n'y a pas de miracle, Il faut prévoir tous les cas d'erreurs. En
cas d'erreur imprévue, il faut stopper l'exécution du pgm.
Sub essai()
'....
'....
On Error Resume Next ' si erreur continuer
onglet = "Toto"
Sheets(onglet).Select
Select Case err.Number
Case 9
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = onglet
Case Is > 0
finPgm
End Select
On Error GoTo 0 ' on désactive la gestion d'erreur
'suite du pgm
'....
End Sub
Sub finPgm()
MsgBox "Erreur non prévue"
Sheets("log").[A65000].End(xlUp).Offset(1, 0) =
Environ("Username")
Sheets("log").[A65000].End(xlUp).Offset(0, 1) = Now
Sheets("log").[A65000].End(xlUp).Offset(0, 2) = err.Number
Sheets("log").[A65000].End(xlUp).Offset(0, 3) = err.Description
ActiveWorkbook.Save
Stop
End Sub
JB- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
1- Si je met rien pour attraper les erreurs, est-ce que le programme va
arrêter immédiatement dans tous les cas?
2- Puis-je mettre quelque chose du style "On error GoTo finPgm"?