Selection.find, pas trouvé, alors recommencer

Bonjour,

J'ai besoin de votre aide !

Dans un fichier, style compte bancaire, j'ai un userform "JournalSupp".

Il contient un phrase; (Quel est le numéro de l'entrée à supprimer ?), un textBox "JournalSuppTNumero1", un bouton Valider "BJournalSuppValider" et un bouton Annuler "BJournalSuppAnnuler".

La personne doit entrer un numéro équivalent à l'entrée (et non au numéro de ligne Excel).

Ce que j'ai besoin ;

Quand la personne entrera un chiffre qui ne sera pas trouvé par Selection.find, je veux qu'elle puisse appuyer sur "Recommencer", que le textBox s'efface, et qu'elle puisse recommencer (entrer un nouveau chiffre, et recliquer sur Valider, ou encore simplement annuler). Une sorte de boucle peut-être ?

'Quand la personne clique sur Valider après avoir entré un chiffre dans le textBox
Private Sub BJournalSuppValider_Click()
On Error GoTo Erreur

Faitle:
    Dim Reponse As Integer
    Dim LigneDeReponse As Integer
    Dim ChampsDeRecherche

' La variable Reponse est la valeur de ce qui a été entré dans le textBox
    Reponse = JournalSuppTNumero1.Value
'Chercher dans la feuille "Journal", dans la colonne A qui commence par contre à la ligne 13
    Sheets("Journal").Range("a13:a100000").Find(what:=Reponse, Lookat:=xlWhole).Activate
'Supprimer la ligne entière
    ActiveCell.EntireRow.Select
    Selection.Delete
'Retourner à la cellule A4
    Range("A4").Activate

'si erreur , on arrive ici
Erreur:
' Message
    Select Case MsgBox(Prompt:="Ce numéro de transaction n'existe pas.", Buttons:=vbRetryCancel, Title:="Réponse inexacte")
'Si on appuie sur Recommencer
        Case vbRetry
 ' ** Il manque quelque chose ici; c'est ce que je cherche. Il faut une consigne pour effacer le textbox, et recommencer (entrer un nouveau chiffre, et valider)
'Si on appuie sur Cancel
        Case vbCancel
            Unload Me
            Exit Sub
    End Select

End Sub

J'ai cherché beaucoup, mais sans réponse satisfaisante.

Merci !

20tessst.xlsx (13.51 Ko)

Bonjour,

As-tu essayé de faire plus simple ?

Exemple :

Private Sub BJournalSuppValider_Click()
Dim C As Range
    Set C = Sheets("Journal").Range("A13:A" & Rows.Count).Find(JournalSuppTNumero1.Value, , xlValues, xlWhole)
    If Not C Is Nothing Then
        C.EntireRow.Delete
        Range("A4").Activate
    Else
        MsgBox "Ce numéro de transaction n'existe pas."
    End If
End Sub

A+

Merci Frangy !

Je ris seule à mon bureau en voyant la simplicité de ton code VS le mien ! Pourquoi faire simple quand on peut faire compliquer !

Tu sais quand on débute... En tout cas pour ma part, il faut que tout soit décortiquer, sinon ça ne fonctionne pas.

Mais je comprends ton code, ce qui me laisse croire que je m'améliore !

Pour finir;

Y aurait-il un code pour effacer le contenu de la textBox que je placerai sous "MsgBox" ? Je sais que c'est pas obligatoire au bon fonctionenment de la macro, mais...

Tu peux tenter

JournalSuppTNumero1.value=""

A+

Oui ! Effectivement ça fonctionne.

Pourtant, c'est ce que j'avais essayer, mais probablement que ma macro complexe compliquait les choses...

Merci beaucoup pour ton aide !!

Rechercher des sujets similaires à "selection find pas trouve recommencer"