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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
'----------------------------------------------
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