Focus ligne VBA

Bonjour à tous,

Je reviens vers vous et votre savoir immense ! :D

Je m'explique:

J'ai un texte en cellule A4 de ma feuille nommé "RENSEIGNEMENTS"

J'ai une base inventaire sur une feuille nommée "BASE INVENTAIRE"

J'ai un bouton créé sur la feuille "RENSEIGNEMENTS" pour accueillir la macro que je cherche à créer.

Je voudrais qu'en cliquant sur ce bouton de la feuille "RENSEIGNEMENTS", un focus ce fasse sur la feuille "BASE INVENTAIRE" à la ligne qui contient le même texte de la cellule A4 de la feuille "RENSEIGNEMENTS".

Malheureusement je ne peux pas transmettre de fichier.

Merci d'avance

Bonjour,

Malheureusement je ne peux pas transmettre de fichier.

simplifie le, mets un exemple

Sub test()

maRecherche = sheets("RENSEIGNEMENTS").range("a4")
Sheets("BASE INVENTAIRE").activate
Set cel = Sheets("BASE INVENTAIRE").Columns("A").Find(maRecherche)
If Not cel Is Nothing Then
    cel.select
End If

End Sub

Bonjour le fil, bonjour le forum,

Steelson tire plus vite que son ombre je navet aucune chance... Tant pis je t'envoie quand même deux propositions :

Code du bouton :

Sub Macro1()
Dim RE As Worksheet 'déclare la variable RE (onglet REnseignements)
Dim BI As Worksheet 'déclare la variable BI (onglet Base Inventaire)
Dim VC As String 'déclare la variable VC (Valeur Cherchée)
Dim R As Range 'déclare la variable R (Recherche)

Set RE = Worksheets("RENSEIGNEMENTS") 'définit l'onglet RE
Set BI = Worksheets("BASE INVENTAIRE") 'définit l'onglet BI
VC = RE.Range("A4").Value 'définit la valeur cherchée VC
Set R = BI.Cells.Find(VC, , xlValues, xlWhole) 'définit la recherche R (recherche la valeur exacte de VC dans toutes les cellules de l'onglet BI)
If Not R Is Nothing Then 'condition : si au moins une occurrence a été trouvée
    BI.Activate 'active l'onglet BI
    BI.Rows(R.Row).Select 'sélectionne la ligne de la première occurrence trouvée
Else 'sinon
    MsgBox "Valeur non trouvée !" 'message
End If 'fin de la condition
End Sub

ou macro événementielle Change à placer dans l'onglet RENSEIGNEMENTS (plus besoin de bouton) :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim BI As Worksheet 'déclare la variable BI(onglet Base Inventaire)
Dim VC As String 'déclare la variable VC(Valeur Cherchée)
Dim R As Range 'déclare la variable R(Recherche)

If Target.Address <> "$A$4" Then Exit Sub 'si le changement a lieu ailleurs qu'en A4, sort de la procédure
Set BI = Worksheets("BASE INVENTAIRE") 'définit l'onglet BI
VC = Target.Value 'définit la valeur cherchée VC
Set R = BI.Cells.Find(VC, , xlValues, xlWhole) 'définit la recherche R (recherche la valeur exacte de VC dans toutes les cellules de l'onglet BI)
If Not R Is Nothing Then 'condition : si au moins une occurrence a été trouvée
    BI.Activate 'active l'onglet BI
    BI.Rows(R.Row).Select 'sélectionne la ligne de la première occurrence trouvée
Else 'sinon
    MsgBox "Valeur non trouvée !" 'message
End If 'fin de la condition
End Sub

Super, merci pour vos réponse à deux, j'ai pas encore essayé les propositions de Thauthème, Celle de Steelson à l'air de fonctionner, mais, est-il possible de rajouter une fonctionne qui mettrai la ligne en surbrillance la ligne trouvée ?

En testant avec la première proposition de ThauThème, tout à l'air parfait !!

Merci à vous !

Bonjour le fil, bonjour le forum,

Steelson tire plus vite que son ombre je navet aucune chance... Tant pis je t'envoie quand même deux propositions :

mais au moins tu as documenté ton code

j'ai fait le minimum syndical ... parce que il n'y avait pas de fichier, pftt

Rechercher des sujets similaires à "focus ligne vba"