Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

stopper une macro si erreur

jammy17

XLDnaute Occasionnel
bonsoir le forum

je commence une macro par un copier/coller:
Sheets("import").Select
Cells.Select
Selection.ClearContents
Range("A1").Select
ActiveSheet.Paste
je souhaiterais que la macro se stoppe toute seule si l'action "COPIER" nescessaire a la bonne execution de celle ci n'a pas été faite et qu'il m'annonce un message d'erreur "ATTENTION, vous avez oublier de copier le message!!"

mais je ne sais comment faire, est ce la formule on error resume next?

d'avance merci!
 

Spitnolan08

XLDnaute Barbatruc
Re : stopper une macro si erreur

Bonsoir,

Pas vraiment sûr d'avoir compris...
Donc une réponse simple mais peut être à côté de la plaque :
Code:
Range("A1").Select
ActiveSheet.Paste
If Range("A1")="" then Msgbox "ATTENTION, vous avez oublié de copier le message!!" : exit sub
Cordialement
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re : stopper une macro si erreur

Bonjour jammy17,
personnellement, je ne vois pas comment tu aurais pu oublier de copier, surtout si c'est dans un code....
Si l'action "Copier" dans ton code dépend d'une condition, dans ce cas, tu fais le "coller" dans cette même condition, ainsi, pas d'erreur.
Mais je n'ai peut-être pas compris la subtilité.
 

jammy17

XLDnaute Occasionnel
Re : stopper une macro si erreur

oui certes, je ne puis malheurueusement mettre mon fichier en ligne pour plus de comprhension.
en fait c'est un fichier qui va etre utilisé par d'autres marins!!!! lol

donc il se peut qu'ils oublient de faire le copier dans le message auquel cas la macro ne fonctionnera pas......et mettera le message d'erreur, ce que je veux justement eviter.

j'ai pensé a la methode :
on error goto erreur
erreur:
msgbox("vous avez oublié de copier le message")
meis cette methode me fait apparaitre le message a chaque fois

comprends pas
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re : stopper une macro si erreur

re-,

la methode Paste de la classe worksheet a échoué

Pour info, à quel moment tu fais ton "copier"?
L'instruction "ClearContents" provoque également le :
"Application.CutCopyMode = False", donc vide ton presse-papier.
Il faut que tu copies après le "ClearContents"

exemple :

Sub Macro1()
If Range("A1").Value > 10 Then
With Sheets("import")
.Cells.ClearContents
End With
Range("A1").Copy Sheets("import").Range("A1")
End If
End Sub
 

jammy17

XLDnaute Occasionnel
Re : stopper une macro si erreur

VOILA LE BOUT DE MACRO DE DEBUT:
Sheets("import").Select
Cells.Select
Selection.ClearContents
Range("A1").Select
ActiveSheet.Paste
On Error GoTo erreur
'******************APPEL DE LA MACRO SUIVANT TYPE DE MESSAGE POUR MISE EN FORME AVANT EXPORT****
With Sheets("import")
Set plage = Range("A1:A" & Range("A65536").End(xlUp).Row)
End With
For Each cel In plage
If cel.Value Like "*AVURNAV LOCAL BREST*" Then
Module1.import_avloc 'APPEL DE LA MACRO AVURNAV LOCAL

End If
Next
'***********************************************************************
For Each cel In plage
If cel.Value Like "*AVURNAV LOCAL CHERBOURG*" Then
Module1.import_avlocch 'APPEL DE LA MACRO AVURNAV LOCAL

End If
 

Épaf

XLDnaute Occasionnel
Re : stopper une macro si erreur

Regarde à Raise, dans l'aide en ligne : Permet de générer une erreur. Donc au lieu de mettre ton message, en reprenant le code de Spinolan,
Code:
    Range("A1").Select
    ActiveSheet.Paste
    On error goto fin::
    If Range("A1")="" then Err.Raise 10 'ou ce que tu veux, tu testes
    '... ton code si paste est ok
fin::
    if err then Msgbox "ATTENTION, vous avez oublié de copier le message!!"
End sub
@+
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re : stopper une macro si erreur

Bonjour Epaf, re- le forum

Epaf, il me semble que le problème restera entier, dû au "ClearContents".
Il lui faut d'abord un bout de code pour effacer sa feuille, puis "Copier" son message et enfin un autre code pour coller et y effectuer son traitement.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…