suite Macros groupées

L

Luger

Guest
Merci pour la réponse à la premiere question.Mais encore + dur

Toutes mes macros font références à une plage de cellules distintes.
Quand je fais la supermacro qui exécutent toutes les macros, il y a aucun
probleme.Mais parfois en fonction de mes besoins, je suis obligé
de supprimer une plage de cellules qui correspond à une macro.
Donc je supprime la plage voulue et quand je fais super macro
un message m'apparait : " erreur d'exécution '1004' , erreur définie par l'application ou l'objet " Normal, car il n'y a plus rien pour cette macro.ma question :

Dans la super macro, comment faire pour lui dire " si il y a rien à la macro 1
, ne pas l'exécuter et continuer à faire les autres.J'ai l'idée, mais pas la procédure ou alors lui demander de ne pas tenir compte de l'erreur 1004

Voilà,

C'est rude

merci

luger
 
M

michel

Guest
bonsoir Luger

pour gérer l'erreur , tu peux essayer d'insérer au tout début de ta super macro :

on error resume next

( s'il y a une erreur , la procedure passe à la ligne suivante )

j'espere que cela pourra t'aider

bonne soirée
Michel
lapin4.gif
 
V

Vériland

Guest
Bonsoir Luger

Ben en fait la réponse tu l'as donnée...tu places On Error Resume Next en début de procédure et le tour est joué...

Tiens voici ce que dit l'aide VBA à ce sujet (touche F1) :

"Lorsqu'une erreur d'exécution survient, le contrôle est transmis à l'instruction qui suit immédiatement celle où l'erreur s'est produite, et l'exécution continue. Il est recommandé d'utiliser cette formulation plutôt que l'instruction On Error GoTo pour accéder à des objets."

voilà qui devrait résoudre Lien supprimé de ta question...

Bonne programmation

A+Veriland.gif
 
V

vincent

Guest
Re

tu peux rejouter entre chaque macro

on error resume next

par exemple

sub supermacro()

on error resume next
macro1
err.clear

on error resume nexr
macro2
err.clear

....
end sub

c'est un peu lourd mais sans avoir tes macros sous les yeux je ne vois que çà

@+Vincent
 
V

vincent

Guest
Re le fil,Michel Vériland

ma methode est un peu plus lourde mais te permettra de gere les erreur de chaque macro si cela ne te sert à rien un seul error resume next en debut de macro comme l'on ecrit Michel et Vériland suffit.

@+Vincent
 
V

Vériland

Guest
Ouarf!...mdr...voilà un autre On Error Resume Next de vincent qui à enclencher mon post une minute après...lool

Ben tu vois Luger en fait tu as un exemple concret de cette procédure sur ce fil...et hop dès qu'il y a une réponse on passe à la suivante...lol

Euh dis moi André...il te fais pas rire ce fil ?

A+Veriland.gif


PS : Lien supprimé
 
M

michel

Guest
rebonsoir Luger , vincent ,veriland

j'ai l'impression qu'on est tous d'accord sur la solution proposée à Luger
...maintenant il ne reste plus qu'à attendre le résultat des essais ...

bonne soirée à tous
Michel
lapin4.gif
 
T

Ti

Guest
au risque de paraître rabat-joie, cette façon de procéder est dangereuse parce qu'alors vous masquez toutes les causes d'erreurs possibles dans vos macros et vous risquez de vous retrouver à ramer pendant des heures, voire des jours, pour retrouver ce qui peut bien fausser vos résultats alors que tout semble fonctionner dans les macros.

On ne doit réserver l'usage de "On Error Resume Next" qu'aux situations dans lesquelles on ne peut pas faire autrement (par exemple, si vous lancez un worksheetFunction.Match et que la valeur cherchée n'est pas trouvée, cela génère un message d'erreur qu'il faut bien alors gérer).

Il est préférable de repérer les causes probables d'erreurs et les tester. Par exemple, je suppose que dans tes macros, quand tu as supprimé tes plages de cellules, tu renvoies une référence de plage initialisée à Nothing. Dans ce cas utilise un test du genre :

If Not Plage Is Nothing Then
ton traitement
End if

C'est plus sûr et plus efficace.
 

Discussions similaires

Réponses
8
Affichages
321
Réponses
1
Affichages
393
Réponses
2
Affichages
286

Statistiques des forums

Discussions
314 136
Messages
2 106 251
Membres
109 547
dernier inscrit
Acilia