Viser une cellule avec application.Match

11test01.xlsx (17.40 Ko)

Bonjour,

Dans cette onglet Feuil1 en B1 un liste déroulante qui est alimentée par la plage Liste en Feuil2.

Je souhaite lors du clic sur le bouton que la sélection de la liste en B1 me dirige et pointe sur la valeur de cellule équivalente de la colonne B de la feuil2 et l'aide du scrollbar place la ligne en A2.

j'ai essayé avec application.Match sans y parvenir.

Merci de votre aide

Bonjour,

Pas besoin de macro, une simple formule suffit

en A2 de la feuille 1:

=SIERREUR(RECHERCHEV($B$1;Feuil2!$A:$B;2;0);"")

Cdlt

Merci beaucoup pour votre réponse, mais cela ne correspond pas à ma demande.

Pardon, j'ai mal lu la demande,

voici le code

Sub Pointer()
    Dim Valeur As Long
    Dim X As Range

    Valeur = Range("B1").Value
    With Sheets("Feuil2").Columns("A:A")
        Set X = .Find(Valeur)
        If Not X Is Nothing Then
            Sheets("Feuil2").Activate
            Range("B" & X.Row).Select
        End If
    End With
End Sub

Cdlt

Bonjour Subfestivus, Arturo83, le forum,

En rajoutant le scroll .

6test01.xlsm (25.11 Ko)

@Arturo83 : attention, il n'y a pas de macro 'Pointer' dans le classeur .

Cordialement

AL 22

Bonjour

Solution sans bouton et sur base du choix de votre liste en B1

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lig As Integer
If Not Intersect(Target, Range("B1")) Is Nothing Then
    With Sheets("Feuil2")
        lig = WorksheetFunction.Match(Target.Value, Sheets("Feuil2").Columns("A:A"), 0)
        .Activate
        .Range("A" & lig).Select
        ActiveWindow.ScrollRow = lig 
    End With
End If
End Sub

Pour placer le code au bon endroit :

- Click droite sur l'onglet Feuil1
- Choisir "visualiser le code"
- coller le code dans la fenêtre

Crdlt

Bonsoir Dan,

Votre procédure est parfaite, merci énormément.

pour mes besoins j'ai besoin quelle se déclenche par un bouton.

Est il possible de l'adapter svp ?

re

1. Vous créez un module via le menu Insertion dans l'éditeur VBA
2. Vous déplacez le code dans ce module
3. Vous remplacez ceci

Private Sub Worksheet_Change(ByVal Target As Range)

par

Sub chercher()

4. Vous dessinez un bouton sur votre feuille
5. click droite sur le bouton puis choisir "associer à une macro"

NB : Ce n'est pas la méthode que je préfère mais si vous utilisez un bouton type ActiveX créé depuis l'icone "Insérer" dans le menu developpeur, remplacez la ligne par Private sub worksheet_change... par Private Sub CommandButton1_Click(). Mais dans ce cas, il faut mettre le code dans la feuille et non dans un module. Dans le point 5 ne sert à rien.

Cordialement

Bonsoir…

La étant le nom de la liste récupérée en B1, dans la page de codes de la feuille contenant le bouton :

Private Sub CommandButton1_Click() 
    Application.Goto [La].Rows(Application.Match([B1].Value, [La], 0))
 End Sub

Merci à vous

Rechercher des sujets similaires à "viser application match"