Bonsoir,
Dans une macro, je sélectionne une feuille et je demande que tous les
filtres soient "vidés" par sheets("feuil1").showalldata, ce qui fonctionne
bien dans le cas où il ya effectivement au moins un filtre. Mais s'il n'y
a aucune colonne de filtrée, j'ai un message d'erreur. Aussi afin de
l'éviter, je mets, sur la ligne précédente, "on error resume next", ce qui
résoud mon problème, mais si de nouvelles erreurs suivent, par exemple la
même ligne de code pour test, là il n'y a pas d'arrêt sur l'erreur. J'ai
testé err.clear ou error = 0 etc..., mais rien n'y fait, la gestion des
erreurs ne se fait plus. Dans l'aide, je n'ai rien trouver pour m'aider.
Aussi, j'aurais 2 questions.
1 Comment vérifier qu'un filtre est posé ou pas, et donc influencer la
suite du code ?
2 Comment mieux gérer les erreurs pour pouvoir les détecter et surtout que
la macro se poursuive en continuant à signaler les éventulles erreurs ?
Merci par avance pour vos réponses à ces 2 questions et surtout bonne
soirée.
DanielH
Bonsoir,
Dans une macro, je sélectionne une feuille et je demande que tous les
filtres soient "vidés" par sheets("feuil1").showalldata, ce qui fonctionne
bien dans le cas où il ya effectivement au moins un filtre. Mais s'il n'y
a aucune colonne de filtrée, j'ai un message d'erreur. Aussi afin de
l'éviter, je mets, sur la ligne précédente, "on error resume next", ce qui
résoud mon problème, mais si de nouvelles erreurs suivent, par exemple la
même ligne de code pour test, là il n'y a pas d'arrêt sur l'erreur. J'ai
testé err.clear ou error = 0 etc..., mais rien n'y fait, la gestion des
erreurs ne se fait plus. Dans l'aide, je n'ai rien trouver pour m'aider.
Aussi, j'aurais 2 questions.
1 Comment vérifier qu'un filtre est posé ou pas, et donc influencer la
suite du code ?
2 Comment mieux gérer les erreurs pour pouvoir les détecter et surtout que
la macro se poursuive en continuant à signaler les éventulles erreurs ?
Merci par avance pour vos réponses à ces 2 questions et surtout bonne
soirée.
DanielH
Bonsoir,
Dans une macro, je sélectionne une feuille et je demande que tous les
filtres soient "vidés" par sheets("feuil1").showalldata, ce qui fonctionne
bien dans le cas où il ya effectivement au moins un filtre. Mais s'il n'y
a aucune colonne de filtrée, j'ai un message d'erreur. Aussi afin de
l'éviter, je mets, sur la ligne précédente, "on error resume next", ce qui
résoud mon problème, mais si de nouvelles erreurs suivent, par exemple la
même ligne de code pour test, là il n'y a pas d'arrêt sur l'erreur. J'ai
testé err.clear ou error = 0 etc..., mais rien n'y fait, la gestion des
erreurs ne se fait plus. Dans l'aide, je n'ai rien trouver pour m'aider.
Aussi, j'aurais 2 questions.
1 Comment vérifier qu'un filtre est posé ou pas, et donc influencer la
suite du code ?
2 Comment mieux gérer les erreurs pour pouvoir les détecter et surtout que
la macro se poursuive en continuant à signaler les éventulles erreurs ?
Merci par avance pour vos réponses à ces 2 questions et surtout bonne
soirée.
DanielH
Bonsoir,
Dans une macro, je sélectionne une feuille et je demande que tous les
filtres soient "vidés" par sheets("feuil1").showalldata, ce qui fonctio nne
bien dans le cas où il ya effectivement au moins un filtre. Mais s'il n 'y a
aucune colonne de filtrée, j'ai un message d'erreur. Aussi afin de l' éviter,
je mets, sur la ligne précédente, "on error resume next", ce qui ré soud mon
problème, mais si de nouvelles erreurs suivent, par exemple la même l igne de
code pour test, là il n'y a pas d'arrêt sur l'erreur. J'ai testé er r.clear
ou error = 0 etc..., mais rien n'y fait, la gestion des erreurs ne se f ait
plus. Dans l'aide, je n'ai rien trouver pour m'aider. Aussi, j'aurais 2
questions.
1 Comment vérifier qu'un filtre est posé ou pas, et donc influencer l a suite
du code ?
2 Comment mieux gérer les erreurs pour pouvoir les détecter et surtou t que
la macro se poursuive en continuant à signaler les éventulles erre urs ?
Merci par avance pour vos réponses à ces 2 questions et surtout bonne
soirée.
DanielH
Bonsoir,
Dans une macro, je sélectionne une feuille et je demande que tous les
filtres soient "vidés" par sheets("feuil1").showalldata, ce qui fonctio nne
bien dans le cas où il ya effectivement au moins un filtre. Mais s'il n 'y a
aucune colonne de filtrée, j'ai un message d'erreur. Aussi afin de l' éviter,
je mets, sur la ligne précédente, "on error resume next", ce qui ré soud mon
problème, mais si de nouvelles erreurs suivent, par exemple la même l igne de
code pour test, là il n'y a pas d'arrêt sur l'erreur. J'ai testé er r.clear
ou error = 0 etc..., mais rien n'y fait, la gestion des erreurs ne se f ait
plus. Dans l'aide, je n'ai rien trouver pour m'aider. Aussi, j'aurais 2
questions.
1 Comment vérifier qu'un filtre est posé ou pas, et donc influencer l a suite
du code ?
2 Comment mieux gérer les erreurs pour pouvoir les détecter et surtou t que
la macro se poursuive en continuant à signaler les éventulles erre urs ?
Merci par avance pour vos réponses à ces 2 questions et surtout bonne
soirée.
DanielH
Bonsoir,
Dans une macro, je sélectionne une feuille et je demande que tous les
filtres soient "vidés" par sheets("feuil1").showalldata, ce qui fonctio nne
bien dans le cas où il ya effectivement au moins un filtre. Mais s'il n 'y a
aucune colonne de filtrée, j'ai un message d'erreur. Aussi afin de l' éviter,
je mets, sur la ligne précédente, "on error resume next", ce qui ré soud mon
problème, mais si de nouvelles erreurs suivent, par exemple la même l igne de
code pour test, là il n'y a pas d'arrêt sur l'erreur. J'ai testé er r.clear
ou error = 0 etc..., mais rien n'y fait, la gestion des erreurs ne se f ait
plus. Dans l'aide, je n'ai rien trouver pour m'aider. Aussi, j'aurais 2
questions.
1 Comment vérifier qu'un filtre est posé ou pas, et donc influencer l a suite
du code ?
2 Comment mieux gérer les erreurs pour pouvoir les détecter et surtou t que
la macro se poursuive en continuant à signaler les éventulles erre urs ?
Merci par avance pour vos réponses à ces 2 questions et surtout bonne
soirée.
DanielH
Bonsoir,
Dans une macro, je sélectionne une feuille et je demande que tous les
filtres soient "vidés" par sheets("feuil1").showalldata, ce qui fonctionne
bien dans le cas où il ya effectivement au moins un filtre. Mais s'il n'y
a aucune colonne de filtrée, j'ai un message d'erreur. Aussi afin de
l'éviter, je mets, sur la ligne précédente, "on error resume next", ce qui
résoud mon problème, mais si de nouvelles erreurs suivent, par exemple la
même ligne de code pour test, là il n'y a pas d'arrêt sur l'erreur. J'ai
testé err.clear ou error = 0 etc..., mais rien n'y fait, la gestion des
erreurs ne se fait plus. Dans l'aide, je n'ai rien trouver pour m'aider.
Aussi, j'aurais 2 questions.
1 Comment vérifier qu'un filtre est posé ou pas, et donc influencer la
suite du code ?
2 Comment mieux gérer les erreurs pour pouvoir les détecter et surtout que
la macro se poursuive en continuant à signaler les éventulles erreurs ?
Merci par avance pour vos réponses à ces 2 questions et surtout bonne
soirée.
DanielH
Bonsoir,
Dans une macro, je sélectionne une feuille et je demande que tous les
filtres soient "vidés" par sheets("feuil1").showalldata, ce qui fonctionne
bien dans le cas où il ya effectivement au moins un filtre. Mais s'il n'y
a aucune colonne de filtrée, j'ai un message d'erreur. Aussi afin de
l'éviter, je mets, sur la ligne précédente, "on error resume next", ce qui
résoud mon problème, mais si de nouvelles erreurs suivent, par exemple la
même ligne de code pour test, là il n'y a pas d'arrêt sur l'erreur. J'ai
testé err.clear ou error = 0 etc..., mais rien n'y fait, la gestion des
erreurs ne se fait plus. Dans l'aide, je n'ai rien trouver pour m'aider.
Aussi, j'aurais 2 questions.
1 Comment vérifier qu'un filtre est posé ou pas, et donc influencer la
suite du code ?
2 Comment mieux gérer les erreurs pour pouvoir les détecter et surtout que
la macro se poursuive en continuant à signaler les éventulles erreurs ?
Merci par avance pour vos réponses à ces 2 questions et surtout bonne
soirée.
DanielH
Bonsoir,
Dans une macro, je sélectionne une feuille et je demande que tous les
filtres soient "vidés" par sheets("feuil1").showalldata, ce qui fonctionne
bien dans le cas où il ya effectivement au moins un filtre. Mais s'il n'y
a aucune colonne de filtrée, j'ai un message d'erreur. Aussi afin de
l'éviter, je mets, sur la ligne précédente, "on error resume next", ce qui
résoud mon problème, mais si de nouvelles erreurs suivent, par exemple la
même ligne de code pour test, là il n'y a pas d'arrêt sur l'erreur. J'ai
testé err.clear ou error = 0 etc..., mais rien n'y fait, la gestion des
erreurs ne se fait plus. Dans l'aide, je n'ai rien trouver pour m'aider.
Aussi, j'aurais 2 questions.
1 Comment vérifier qu'un filtre est posé ou pas, et donc influencer la
suite du code ?
2 Comment mieux gérer les erreurs pour pouvoir les détecter et surtout que
la macro se poursuive en continuant à signaler les éventulles erreurs ?
Merci par avance pour vos réponses à ces 2 questions et surtout bonne
soirée.
DanielH
Si tu permets Philippe,
Un petit exemple à exécuter avec la touche F8 pour les fins de
la démonstration...
'-----------------------------------------------
Sub test()
Dim Gestion_Erreur As String
On Error GoTo Gestion_Erreur
'En supposant que chacune de ces feuilles
'sont inexistantes dans le classeur.
Set sh = Worksheets("Feuil5")
Set sh = Worksheets("Feuil6")
Exit Sub
Gestion_Erreur:
MsgBox Err.Number & " , " & Err.Description
Err.Clear
'ici on peut ajouter "Resume"
' ceci retourne réexécuter la ligne
'de code problématique.. évidemment ceci
'signifie qu'avant cette ligne nous avons
'mis des lignes de code venant corriger l'erreur !
Resume
'Ou on peut écrire ceci "Resume Next"
'Cela permet la continuation de l'exécution du code
'immédiatement après la ligne de code problème...
'évidemment il faut juger de la pertinence de
'reprendre l'exécution du code le cas échéant.
Resume Next
End Sub
'-----------------------------------------------
Pour utiliser l'expression consacrée "On error resume next" , le
programmeur doit savoir à l'avance le type d'erreur possible
comme ceci semble être dans le cas du demandeur. Cependant, il faut
éviter d'utiliser cette façon de faire si on ignore la ou les erreurs
que le code peut générer en cours d'exécution... on risque de se
retrouver avec de drôles de résultats.
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
groupe de discussion
: #
Bonsoir,
Tu peux remplacer on error resume next par un on error goto suite, dans ce
genre :
Sub onyva()
On Error GoTo suiTe
Sheets("feuil1").ShowAllData
suiTe:
MsgBox "L'erreur ShowAllData est gérée"
Sheets(5).Activate
End Sub
si le classeur comporte moins de 5 feuilles une nouvelle erreur sera
signalée
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"daniel" a écrit dans le message de
news:O5do$Bonsoir,
Dans une macro, je sélectionne une feuille et je demande que tous les
filtres soient "vidés" par sheets("feuil1").showalldata, ce qui
fonctionne
bien dans le cas où il ya effectivement au moins un filtre. Mais s'il n'y
a aucune colonne de filtrée, j'ai un message d'erreur. Aussi afin de
l'éviter, je mets, sur la ligne précédente, "on error resume next", ce
qui
résoud mon problème, mais si de nouvelles erreurs suivent, par exemple la
même ligne de code pour test, là il n'y a pas d'arrêt sur l'erreur. J'ai
testé err.clear ou error = 0 etc..., mais rien n'y fait, la gestion des
erreurs ne se fait plus. Dans l'aide, je n'ai rien trouver pour m'aider.
Aussi, j'aurais 2 questions.
1 Comment vérifier qu'un filtre est posé ou pas, et donc influencer la
suite du code ?
2 Comment mieux gérer les erreurs pour pouvoir les détecter et surtout
que
la macro se poursuive en continuant à signaler les éventulles erreurs ?
Merci par avance pour vos réponses à ces 2 questions et surtout bonne
soirée.
DanielH
Si tu permets Philippe,
Un petit exemple à exécuter avec la touche F8 pour les fins de
la démonstration...
'-----------------------------------------------
Sub test()
Dim Gestion_Erreur As String
On Error GoTo Gestion_Erreur
'En supposant que chacune de ces feuilles
'sont inexistantes dans le classeur.
Set sh = Worksheets("Feuil5")
Set sh = Worksheets("Feuil6")
Exit Sub
Gestion_Erreur:
MsgBox Err.Number & " , " & Err.Description
Err.Clear
'ici on peut ajouter "Resume"
' ceci retourne réexécuter la ligne
'de code problématique.. évidemment ceci
'signifie qu'avant cette ligne nous avons
'mis des lignes de code venant corriger l'erreur !
Resume
'Ou on peut écrire ceci "Resume Next"
'Cela permet la continuation de l'exécution du code
'immédiatement après la ligne de code problème...
'évidemment il faut juger de la pertinence de
'reprendre l'exécution du code le cas échéant.
Resume Next
End Sub
'-----------------------------------------------
Pour utiliser l'expression consacrée "On error resume next" , le
programmeur doit savoir à l'avance le type d'erreur possible
comme ceci semble être dans le cas du demandeur. Cependant, il faut
éviter d'utiliser cette façon de faire si on ignore la ou les erreurs
que le code peut générer en cours d'exécution... on risque de se
retrouver avec de drôles de résultats.
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
groupe de discussion
: #JFmNFwsJHA.4324@TK2MSFTNGP05.phx.gbl...
Bonsoir,
Tu peux remplacer on error resume next par un on error goto suite, dans ce
genre :
Sub onyva()
On Error GoTo suiTe
Sheets("feuil1").ShowAllData
suiTe:
MsgBox "L'erreur ShowAllData est gérée"
Sheets(5).Activate
End Sub
si le classeur comporte moins de 5 feuilles une nouvelle erreur sera
signalée
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"daniel" <dandanefface@neuf.fr> a écrit dans le message de
news:O5do$8vsJHA.1492@TK2MSFTNGP03.phx.gbl...
Bonsoir,
Dans une macro, je sélectionne une feuille et je demande que tous les
filtres soient "vidés" par sheets("feuil1").showalldata, ce qui
fonctionne
bien dans le cas où il ya effectivement au moins un filtre. Mais s'il n'y
a aucune colonne de filtrée, j'ai un message d'erreur. Aussi afin de
l'éviter, je mets, sur la ligne précédente, "on error resume next", ce
qui
résoud mon problème, mais si de nouvelles erreurs suivent, par exemple la
même ligne de code pour test, là il n'y a pas d'arrêt sur l'erreur. J'ai
testé err.clear ou error = 0 etc..., mais rien n'y fait, la gestion des
erreurs ne se fait plus. Dans l'aide, je n'ai rien trouver pour m'aider.
Aussi, j'aurais 2 questions.
1 Comment vérifier qu'un filtre est posé ou pas, et donc influencer la
suite du code ?
2 Comment mieux gérer les erreurs pour pouvoir les détecter et surtout
que
la macro se poursuive en continuant à signaler les éventulles erreurs ?
Merci par avance pour vos réponses à ces 2 questions et surtout bonne
soirée.
DanielH
Si tu permets Philippe,
Un petit exemple à exécuter avec la touche F8 pour les fins de
la démonstration...
'-----------------------------------------------
Sub test()
Dim Gestion_Erreur As String
On Error GoTo Gestion_Erreur
'En supposant que chacune de ces feuilles
'sont inexistantes dans le classeur.
Set sh = Worksheets("Feuil5")
Set sh = Worksheets("Feuil6")
Exit Sub
Gestion_Erreur:
MsgBox Err.Number & " , " & Err.Description
Err.Clear
'ici on peut ajouter "Resume"
' ceci retourne réexécuter la ligne
'de code problématique.. évidemment ceci
'signifie qu'avant cette ligne nous avons
'mis des lignes de code venant corriger l'erreur !
Resume
'Ou on peut écrire ceci "Resume Next"
'Cela permet la continuation de l'exécution du code
'immédiatement après la ligne de code problème...
'évidemment il faut juger de la pertinence de
'reprendre l'exécution du code le cas échéant.
Resume Next
End Sub
'-----------------------------------------------
Pour utiliser l'expression consacrée "On error resume next" , le
programmeur doit savoir à l'avance le type d'erreur possible
comme ceci semble être dans le cas du demandeur. Cependant, il faut
éviter d'utiliser cette façon de faire si on ignore la ou les erreurs
que le code peut générer en cours d'exécution... on risque de se
retrouver avec de drôles de résultats.
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
groupe de discussion
: #
Bonsoir,
Tu peux remplacer on error resume next par un on error goto suite, dans ce
genre :
Sub onyva()
On Error GoTo suiTe
Sheets("feuil1").ShowAllData
suiTe:
MsgBox "L'erreur ShowAllData est gérée"
Sheets(5).Activate
End Sub
si le classeur comporte moins de 5 feuilles une nouvelle erreur sera
signalée
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"daniel" a écrit dans le message de
news:O5do$Bonsoir,
Dans une macro, je sélectionne une feuille et je demande que tous les
filtres soient "vidés" par sheets("feuil1").showalldata, ce qui
fonctionne
bien dans le cas où il ya effectivement au moins un filtre. Mais s'il n'y
a aucune colonne de filtrée, j'ai un message d'erreur. Aussi afin de
l'éviter, je mets, sur la ligne précédente, "on error resume next", ce
qui
résoud mon problème, mais si de nouvelles erreurs suivent, par exemple la
même ligne de code pour test, là il n'y a pas d'arrêt sur l'erreur. J'ai
testé err.clear ou error = 0 etc..., mais rien n'y fait, la gestion des
erreurs ne se fait plus. Dans l'aide, je n'ai rien trouver pour m'aider.
Aussi, j'aurais 2 questions.
1 Comment vérifier qu'un filtre est posé ou pas, et donc influencer la
suite du code ?
2 Comment mieux gérer les erreurs pour pouvoir les détecter et surtout
que
la macro se poursuive en continuant à signaler les éventulles erreurs ?
Merci par avance pour vos réponses à ces 2 questions et surtout bonne
soirée.
DanielH
Si tu permets Philippe,
Un petit exemple à exécuter avec la touche F8 pour les fins de
la démonstration...
'-----------------------------------------------
Sub test()
Dim Gestion_Erreur As String
On Error GoTo Gestion_Erreur
'En supposant que chacune de ces feuilles
'sont inexistantes dans le classeur.
Set sh = Worksheets("Feuil5")
Set sh = Worksheets("Feuil6")
Exit Sub
Gestion_Erreur:
MsgBox Err.Number & " , " & Err.Description
Err.Clear
'ici on peut ajouter "Resume"
' ceci retourne réexécuter la ligne
'de code problématique.. évidemment ceci
'signifie qu'avant cette ligne nous avons
'mis des lignes de code venant corriger l'erreur !
Resume
'Ou on peut écrire ceci "Resume Next"
'Cela permet la continuation de l'exécution du code
'immédiatement après la ligne de code problème...
'évidemment il faut juger de la pertinence de
'reprendre l'exécution du code le cas échéant.
Resume Next
End Sub
'-----------------------------------------------
Pour utiliser l'expression consacrée "On error resume next" , le
programmeur doit savoir à l'avance le type d'erreur possible
comme ceci semble être dans le cas du demandeur. Cependant, il faut
éviter d'utiliser cette façon de faire si on ignore la ou les erreurs
que le code peut générer en cours d'exécution... on risque de se
retrouver avec de drôles de résultats.
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
groupe de discussion
: #
Bonsoir,
Tu peux remplacer on error resume next par un on error goto suite, dans ce
genre :
Sub onyva()
On Error GoTo suiTe
Sheets("feuil1").ShowAllData
suiTe:
MsgBox "L'erreur ShowAllData est gérée"
Sheets(5).Activate
End Sub
si le classeur comporte moins de 5 feuilles une nouvelle erreur sera
signalée
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"daniel" a écrit dans le message de
news:O5do$Bonsoir,
Dans une macro, je sélectionne une feuille et je demande que tous les
filtres soient "vidés" par sheets("feuil1").showalldata, ce qui
fonctionne
bien dans le cas où il ya effectivement au moins un filtre. Mais s'il n'y
a aucune colonne de filtrée, j'ai un message d'erreur. Aussi afin de
l'éviter, je mets, sur la ligne précédente, "on error resume next", ce
qui
résoud mon problème, mais si de nouvelles erreurs suivent, par exemple la
même ligne de code pour test, là il n'y a pas d'arrêt sur l'erreur. J'ai
testé err.clear ou error = 0 etc..., mais rien n'y fait, la gestion des
erreurs ne se fait plus. Dans l'aide, je n'ai rien trouver pour m'aider.
Aussi, j'aurais 2 questions.
1 Comment vérifier qu'un filtre est posé ou pas, et donc influencer la
suite du code ?
2 Comment mieux gérer les erreurs pour pouvoir les détecter et surtout
que
la macro se poursuive en continuant à signaler les éventulles erreurs ?
Merci par avance pour vos réponses à ces 2 questions et surtout bonne
soirée.
DanielH
Si tu permets Philippe,
Un petit exemple à exécuter avec la touche F8 pour les fins de
la démonstration...
'-----------------------------------------------
Sub test()
Dim Gestion_Erreur As String
On Error GoTo Gestion_Erreur
'En supposant que chacune de ces feuilles
'sont inexistantes dans le classeur.
Set sh = Worksheets("Feuil5")
Set sh = Worksheets("Feuil6")
Exit Sub
Gestion_Erreur:
MsgBox Err.Number & " , " & Err.Description
Err.Clear
'ici on peut ajouter "Resume"
' ceci retourne réexécuter la ligne
'de code problématique.. évidemment ceci
'signifie qu'avant cette ligne nous avons
'mis des lignes de code venant corriger l'erreur !
Resume
'Ou on peut écrire ceci "Resume Next"
'Cela permet la continuation de l'exécution du code
'immédiatement après la ligne de code problème...
'évidemment il faut juger de la pertinence de
'reprendre l'exécution du code le cas échéant.
Resume Next
End Sub
'-----------------------------------------------
Pour utiliser l'expression consacrée "On error resume next" , le
programmeur doit savoir à l'avance le type d'erreur possible
comme ceci semble être dans le cas du demandeur. Cependant, il faut
éviter d'utiliser cette façon de faire si on ignore la ou les erreurs
que le code peut générer en cours d'exécution... on risque de se
retrouver avec de drôles de résultats.
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
groupe de discussion
: #JFmNFwsJHA.4324@TK2MSFTNGP05.phx.gbl...
Bonsoir,
Tu peux remplacer on error resume next par un on error goto suite, dans ce
genre :
Sub onyva()
On Error GoTo suiTe
Sheets("feuil1").ShowAllData
suiTe:
MsgBox "L'erreur ShowAllData est gérée"
Sheets(5).Activate
End Sub
si le classeur comporte moins de 5 feuilles une nouvelle erreur sera
signalée
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"daniel" <dandanefface@neuf.fr> a écrit dans le message de
news:O5do$8vsJHA.1492@TK2MSFTNGP03.phx.gbl...
Bonsoir,
Dans une macro, je sélectionne une feuille et je demande que tous les
filtres soient "vidés" par sheets("feuil1").showalldata, ce qui
fonctionne
bien dans le cas où il ya effectivement au moins un filtre. Mais s'il n'y
a aucune colonne de filtrée, j'ai un message d'erreur. Aussi afin de
l'éviter, je mets, sur la ligne précédente, "on error resume next", ce
qui
résoud mon problème, mais si de nouvelles erreurs suivent, par exemple la
même ligne de code pour test, là il n'y a pas d'arrêt sur l'erreur. J'ai
testé err.clear ou error = 0 etc..., mais rien n'y fait, la gestion des
erreurs ne se fait plus. Dans l'aide, je n'ai rien trouver pour m'aider.
Aussi, j'aurais 2 questions.
1 Comment vérifier qu'un filtre est posé ou pas, et donc influencer la
suite du code ?
2 Comment mieux gérer les erreurs pour pouvoir les détecter et surtout
que
la macro se poursuive en continuant à signaler les éventulles erreurs ?
Merci par avance pour vos réponses à ces 2 questions et surtout bonne
soirée.
DanielH
Si tu permets Philippe,
Un petit exemple à exécuter avec la touche F8 pour les fins de
la démonstration...
'-----------------------------------------------
Sub test()
Dim Gestion_Erreur As String
On Error GoTo Gestion_Erreur
'En supposant que chacune de ces feuilles
'sont inexistantes dans le classeur.
Set sh = Worksheets("Feuil5")
Set sh = Worksheets("Feuil6")
Exit Sub
Gestion_Erreur:
MsgBox Err.Number & " , " & Err.Description
Err.Clear
'ici on peut ajouter "Resume"
' ceci retourne réexécuter la ligne
'de code problématique.. évidemment ceci
'signifie qu'avant cette ligne nous avons
'mis des lignes de code venant corriger l'erreur !
Resume
'Ou on peut écrire ceci "Resume Next"
'Cela permet la continuation de l'exécution du code
'immédiatement après la ligne de code problème...
'évidemment il faut juger de la pertinence de
'reprendre l'exécution du code le cas échéant.
Resume Next
End Sub
'-----------------------------------------------
Pour utiliser l'expression consacrée "On error resume next" , le
programmeur doit savoir à l'avance le type d'erreur possible
comme ceci semble être dans le cas du demandeur. Cependant, il faut
éviter d'utiliser cette façon de faire si on ignore la ou les erreurs
que le code peut générer en cours d'exécution... on risque de se
retrouver avec de drôles de résultats.
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
groupe de discussion
: #
Bonsoir,
Tu peux remplacer on error resume next par un on error goto suite, dans ce
genre :
Sub onyva()
On Error GoTo suiTe
Sheets("feuil1").ShowAllData
suiTe:
MsgBox "L'erreur ShowAllData est gérée"
Sheets(5).Activate
End Sub
si le classeur comporte moins de 5 feuilles une nouvelle erreur sera
signalée
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"daniel" a écrit dans le message de
news:O5do$Bonsoir,
Dans une macro, je sélectionne une feuille et je demande que tous les
filtres soient "vidés" par sheets("feuil1").showalldata, ce qui
fonctionne
bien dans le cas où il ya effectivement au moins un filtre. Mais s'il n'y
a aucune colonne de filtrée, j'ai un message d'erreur. Aussi afin de
l'éviter, je mets, sur la ligne précédente, "on error resume next", ce
qui
résoud mon problème, mais si de nouvelles erreurs suivent, par exemple la
même ligne de code pour test, là il n'y a pas d'arrêt sur l'erreur. J'ai
testé err.clear ou error = 0 etc..., mais rien n'y fait, la gestion des
erreurs ne se fait plus. Dans l'aide, je n'ai rien trouver pour m'aider.
Aussi, j'aurais 2 questions.
1 Comment vérifier qu'un filtre est posé ou pas, et donc influencer la
suite du code ?
2 Comment mieux gérer les erreurs pour pouvoir les détecter et surtout
que
la macro se poursuive en continuant à signaler les éventulles erreurs ?
Merci par avance pour vos réponses à ces 2 questions et surtout bonne
soirée.
DanielH
| Je ne perçoit en tous cas pas en quoi ton intervention
| peut contredire la mienne
Elle ne contredit pas ta proposition... elle ajoute tout au plus !
;-)
| Je ne perçoit en tous cas pas en quoi ton intervention
| peut contredire la mienne
Elle ne contredit pas ta proposition... elle ajoute tout au plus !
;-)
| Je ne perçoit en tous cas pas en quoi ton intervention
| peut contredire la mienne
Elle ne contredit pas ta proposition... elle ajoute tout au plus !
;-)