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

XL 2016 Annuler une commande si erreur

HelloDy

XLDnaute Junior
Bonjour à tous,

J'ai une macro qui recherche un texte à effacer :

Cells.Find(What:="texte recherché").Activate
Selection.Clear

Si le texte n'est pas trouvé j'obtiens un message d'erreur.
Comment faire pour que dans ce cas, la macro aille directement à End Sub au lieu de planter ?

Merci d'avance !


Elo
 

Calvus

XLDnaute Barbatruc
Bonjour,

VB:
Sub Recherche()
Dim marecherche As String, recherche As Range


On Error GoTo fin
Set recherche = Cells.Find(What:="texte recherché") 

If Not recherche Is Nothing Then

Cells.Find(What:=recherche, After:=ActiveCell, LookIn:= _
        xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False).Activate

Do Until MsgBox("Continuer ?", vbYesNo) = vbNo
    Cells.FindNext(After:=ActiveCell).Activate
Loop

Application.CutCopyMode = False
fin: If recherche Is Nothing Then
MsgBox "Donnée inexistante"
Exit Sub
End If
Application.CutCopyMode = False
End Sub

Quelque chose dans ce genre là, car sans exemple dur d'être précis.

A+
 

HelloDy

XLDnaute Junior
Coucou @Lika0n , coucou @Calvus,

Merci pour le lien mais quand je lis ce genre d'"aide" je ne comprends jamais rien

Et merci pour ta solution @Calvus mais c'est beaaaaucoup trop compliqué ^^ j'ai juste besoin que s'il ne trouve pas le texte correspondant il fasse end sub, rien de plus. Est-ce qu'il y a un moyen simple en 2 ou 3 lignes ?

Merci et désolée d'être jamais contente


Elo
 

Ikito

XLDnaute Occasionnel
Bonjour HelloDy :

Sinon, tu peux faire ce genre de chose :

VB:
On Error GoTo fin:

Cells.Find(What:="texte recherché").Activate
Selection.Clear

'[La suite de ton exécution]'

Exit Sub

fin:
End Sub
 

Discussions similaires

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