VBA trouve la dernière occurrence d'une string

J'ai essayé de résoudre ce problème depuis quelques jours maintenant et je ne peux pas m'en occuper. J'ai cherché plusieurs sites Web (Même ici plusieurs fois), j'ai vu que beaucoup de gens ont posé cette question, mais les solutions ne fonctionnent pas pour moi.

Je souhaite find la dernière apparition d'une string dans une gamme et stocker l'adresse dans une variable et afficher un message me dire où elle se trouve.

Jusqu'à présent, j'ai ce

Private Sub CmdBtnClockIt_Click() Dim job As Ssortingng Dim searchTerm as Range job = CmbBoxJob.Value searchTerm = Range("A1:A999").find(what:=job, searchorder:=xlByColumns, searchdirection:=xlPrevious).Column MsgBox "last cell is " & searchTerm.Address End Sub 

Tout ce que je semble avoir, c'est soit un «qualificatif invalide», soit une «variable d'object ou une variable de bloc non définie»

Toute aide est appréciée

Le premier problème est que searchTerm est défini comme un object Range . Vous devez définir les affectations d'objects en utilisant le mot-key Set . Donc, l'affectation devient Set searchTerm = Range("A1:A999")...

Deuxièmement, vous accédez à des messages d'erreur si le searchTerm n'est pas trouvé, car searchTerm recevra une valeur de Nothing . Nous pouvons éviter ce problème en utilisant une condition simple pour vérifier si le job été trouvé.

Par conséquent, votre Sub actualisé pourrait ressembler à ceci:

 Private Sub CmdBtnClockIt_Click() Dim job As Ssortingng Dim searchTerm As Range job = CmbBoxJob.Value Set searchTerm = Range("A1:A999").Find(what:=job, searchorder:=xlByColumns, searchdirection:=xlPrevious) If searchTerm Is Nothing Then MsgBox "Text was not found" Else MsgBox "Last cell is " & searchTerm.Address End If End Sub 

Que diriez-vous:

 Sub dural() Dim job As Ssortingng Dim searchTerm As Range job = "Happiness" Set searchTerm = Range("A1:A999").Find(what:=job, after:=Range("A1"), searchorder:=xlByColumns, searchdirection:=xlPrevious) MsgBox "last cell is " & searchTerm.Address End Sub 

entrez la description de l'image ici

Remarquez que j'ai utilisé Set .