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?
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é.
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
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
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
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
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.