Amélioration d'une macro

Gedch

XLDnaute Occasionnel
Bonjour

J’ai une macro toute simple qui me permet de me rendre sur une cellule en rentrant son nom à partir d’une ImputBox

Code:
Sub Vers_Nom()

On Error Resume Next
For Each x In m.Names

x = InputBox("Quel nom voulez vous atteindre ? ", "ALLER A", "")
If x = "" Then Exit Sub
Set zone = Range(x)
Range(x).Select

ActiveWindow.ScrollRow = zone.Row
Application.Goto Reference:=x

Next
On Error GoTo 0

End Sub

J’ai mis une gestion d’erreur pour ne pas avoir de message d’erreur au cas où le nom rentré dans l’ImputBox n’existe pas.
Si le nom rentré n’existe pas, je sors de la macro.

Mais ce que je souhaiterais, c’est plutôt de revenir à l’ImputBox de manière à rentrer un nouveau nom

Il me faudrait donc un test après la frappe dans l’ImputBox du nom recherché qui dans le cas où ce nom n’existe pas.

Mais je n’arrive pas à trouver la bonne commande

Merci pour votre aide
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Amélioration d'une macro

Bonjour.
À réécrire comme ça :
VB:
Sub Vers_Nom()
Dim X As String
On Error Resume Next
Do
   X = InputBox("Quel nom voulez vous atteindre ? ", "ALLER A", "")
   If X = "" Then Exit Sub
   Err.Clear: Application.Goto Reference:=X
   ActiveWindow.ScrollRow = ActiveCell.Row
   Loop Until Err = 0
End Sub
À +
 

Gedch

XLDnaute Occasionnel
Re : Amélioration d'une macro

Bonjour

Merci pour le coup de main

Effectivement comme cela c'est parfait
En plus cette macro est plus claire

Ce n'est sans doute pas possible
Mais si lors du retour sur l'ImputBox, en cas où le nom n'existe pas
De retrouver inscrit le nom frappé précédemment ?

Par exemple je tape par erreur "NON" au lieu de "NOM", je m’aperçois donc qu'il s'agit tout simplement d'une erreur de frappe et non que le nom n’existe peut être pas.
 

Discussions similaires