Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Repetition boucle

1 réponse
Avatar
cxxhl
Bonjour,
voici ma macro actuelle :

Sub Nom()
RechercheNom = InputBox("Quel est votre nom?")
ligne = 7
colonne = 1
Do Until Cells(ligne, colonne).Value = RechercheNom
ligne = ligne + 1
Loop
Cells(ligne, colonne).Select
MsgBox "" & ActiveCell.Offset(0, 6)
End Sub

j'aimerais la modifier de façon à ce que si toute la liste ( de [A7] à [A200] ) a été traversée, et que le nom n’a pas été trouvé, la macro puisse afficher le message « erreur », et sélectionner la première cellule vide, en dessous de la liste de noms soit la cellule [A201].
Or je ne sais pas comment faire
Merci pour votre aide

1 réponse

Avatar
Michd
Bonjour,
La procédure prend la totalité de la plage de cellules de la colonne A de A7 à Ax. Si elle trouve la
valeur recherchée, elle t'indique l'adresse et sélectionne la cellule. Dans le cas contraire, la
procédure sélectionne la première cellule vide à la fin de la liste.
'----------------------------------------------
Sub test()
Dim RechercheNom As String
Dim Rg As Range, X As Variant
RechercheNom = InputBox("Quel est votre nom?")
If RechercheNom = "" Then Exit Sub
With Worksheets("Feuil1") 'Nom de l'onglet de la feuille à adapter
.Activate
Set Rg = .Range("A7:A" & .Range("A" & .Cells.Rows.Count).End(xlUp).Row)
X = Application.Match(RechercheNom, Rg, 0)
If Not IsError(X) Then
MsgBox "La première occurence est dans la cellule " & Rg(X, 1).Address
Rg(X, 1).Select
Else
.Range(Rg(Rg.Rows.Count + 1).Address).Select
End If
End With
End Sub
'----------------------------------------------
MichD