Positionner à l'écran la 1ère ligne d'une zone avec la fonction recherche

Chri8Ed

XLDnaute Occasionnel
Bonjour

J’ai un très grand tableau

Dans ce tableau il y a plusieurs zones ou thèmes.
Chaque zone ne comprend que quelques lignes et en règle générale s’affiche sur une ou deux pages à l’écran.
(Ce que j’entends par page, c’est ce que l’on voit à l’écran sans ou en utilisant une seule fois la touche PageDown).

Pour aller dans ces zones, j’ai nommé la 1ère ligne de ces zones sur 2 ou 3 lettres.
J’utilise la macro suivante pour me rendre dans une zone de manière à ce que la 1ère ligne de cette zone soit également la 1ère ligne qui s’affiche à l’écran.

Il y a de nombreuses zones et en règle générale, comme j’utilise souvent mon tableau, cela me pose peu de problèmes de mémorisation du nom que j’ai donné à chaque zone.

Par contre, souvent, je suis à la recherche d’un « article » dont je ne me rappelle plus dans quelle zone il se trouve.
J’utilise donc alors la fonction recherche de Excel.

Ce que je souhaiterais pouvoir faire, c’est que quand j’utilise cette fonction recherche, c’est que le pointeur aille bien entendu sur la cellule recherchée, mais de manière à ce que, comme quand j’utilise la macro précédente, la zone dans laquelle elle se trouve, apparaisse à l’écran de manière à ce que la 1ère ligne de la zone, soit également la 1ère ligne à l’écran.

Est-ce réalisable avec une macro ?
Peut-être que quelqu’un c’est déjà penché la dessus ?

Merci d’avance pour une éventuelle aide
 

Pierrot93

XLDnaute Barbatruc
Re : Positionner à l'écran la 1ère ligne d'une zone avec la fonction recherche

Bonjour,

J’utilise la macro suivante pour me rendre dans une zone de manière à ce que la 1ère ligne de cette zone soit également la 1ère ligne qui s’affiche à l’écran.

euh... perso vois pas ta macro... sans doute peut on l'améliorer en utilisant une "inputbox" et la méthode "Find"... mets peut être en pièce jointe, un tout petit extrait de ton fichier représentant uniquement le problème posé, plus facile pour t'aider...

bonne journée
@+
 

Chri8Ed

XLDnaute Occasionnel
Re : Positionner à l'écran la 1ère ligne d'une zone avec la fonction recherche

Bonjour PIERROT93

En effet j'ai oublié de mettre la macro

La voici :

Code:
Sub Vers_Rubrique_mX()
'
' Touche de raccourci du clavier: Ctrl+Maj+x
'
x = InputBox("Quelle zone voulez vous atteindre ? ", "ALLER A", "")
Set zone = Range(x)
ActiveWindow.ScrollRow = zone.Row
'ActiveWindow.ScrollColumn = zone.Column
End Sub


Je vais essayer de réaliser un tableau exemple sommaire et je reviens sur le Forum

A+
 

Pierrot93

XLDnaute Barbatruc
Re : Positionner à l'écran la 1ère ligne d'une zone avec la fonction recherche

Re,

avec ce que j'ai compris, une approche comme ceci :
Code:
Option Explicit
Sub test()
Dim s As String, x As Range, n As Name
s = InputBox("Valeur recherchée...")
If s = "" Then Exit Sub
Set x = Cells.Find(s, , xlValues, xlPart, , , False)
If Not x Is Nothing Then
    For Each n In Names
        If Not Intersect(x, n.RefersToRange) Is Nothing Then _
            Application.Goto n.RefersToRange, True: Exit For
    Next n
End If
End Sub

Edition : avais oublié un test....
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Positionner à l'écran la 1ère ligne d'une zone avec la fonction recherche

Re,

en prenant en compte ta macro..
Code:
Option Explicit
Sub test()
Dim s As String, x As Range, n As Name
s = InputBox("Valeur ou plage nommée recherchée...")
If s = "" Then Exit Sub
On Error Resume Next
Set n = Names(s)
On Error GoTo 0
If Not n Is Nothing Then Application.Goto n.RefersToRange, True: Exit Sub
Set x = Cells.Find(s, , xlValues, xlPart, , , False)
If Not x Is Nothing Then
    For Each n In Names
        If Not Intersect(x, n.RefersToRange) Is Nothing Then _
            Application.Goto n.RefersToRange, True: Exit For
    Next n
End If
End Sub
 

Chri8Ed

XLDnaute Occasionnel
Re : Positionner à l'écran la 1ère ligne d'une zone avec la fonction recherche

Re,

Voici un tableau exemple

L'erreur ne se produit avec ce tableau
Mais la macro est sans effet
 

Pièces jointes

  • Tableau Exemple.xls
    50 KB · Affichages: 64
  • Tableau Exemple.xls
    50 KB · Affichages: 61
  • Tableau Exemple.xls
    50 KB · Affichages: 67

Pierrot93

XLDnaute Barbatruc
Re : Positionner à l'écran la 1ère ligne d'une zone avec la fonction recherche

Re,

fonctionne chez moi et pas d'erreur... seulement tes plages nommés représentent uniquement les cellules "Thème"... donc si tu recherches "article", ne renverra rien... si tu recherches "TE", renvoie bien la plage en question...
 

DoubleZero

XLDnaute Barbatruc
Re : Positionner à l'écran la 1ère ligne d'une zone avec la fonction recherche

Bonjour, Chri8Ed :), Pierrot :), le Forum,

Le fichier joint ne correspond pas totalement à la demande mais... s'il peut être utile à quelqu'un :)

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Application.ScreenUpdating = 0
Cells.EntireRow.Hidden = False
Columns("A:A").Interior.ColorIndex = xlNone
    If Not Application.Intersect(Target, Range("g1")) Is Nothing Then
        For Each c In Range("a1:a100")
            If c.Value = Target.Value Then
                With c
                .Interior.ColorIndex = 38
                .Offset(-1, 0).Name = "oui"
                End With
            End If
        Next
    End If
Range("a2:oui").Name = "non"
Range("non").EntireRow.Hidden = True
Application.ScreenUpdating = -1
End Sub

A bientôt.
 

Pièces jointes

  • 00 - Chri8Ed - Lignes masquer par VD.xls
    42 KB · Affichages: 61

Chri8Ed

XLDnaute Occasionnel
Re : Positionner à l'écran la 1ère ligne d'une zone avec la fonction recherche

Re,

Je n’ai peut-être pas bien expliqué ce que j’attendais
Je détail un peu plus
Effectivement seules les cellules de thèmes sont nommées
(Je ne peux pas nommer tous les articles, ils seraient bien trop nombreux)
De plus il me faudrait alors me rappeler à lettre près le nom de l’article et le tapez dans son intégralité.

Prenons un exemple avec mon tableau exemple
1) je veux me rendre sur le thème « Thème D »
J’utilise ma macro Ctrl Maj X

2) je veux me rendre sur l’article « Jeu 10 »
Cet article n’est pas nommé
J’utilise donc la fonction recherche de Excel
La recherche pointe donc la cellule 38B
Mais je voudrais que la 1ère ligne qui soit visible
Soit la ligne 28 !
 

Fo_rum

XLDnaute Accro
Re : Positionner à l'écran la 1ère ligne d'une zone avec la fonction recherche

Bonjour,

Sans passer par les noms, peut-être ainsi ?
Code:
Sub test()
  Dim s As String, x As Range, L As Long
  s = InputBox("Valeur ou plage nommée recherchée...")
  If s = "" Then Exit Sub
  Set x = Columns(2).Find(s, , xlValues, xlPart, , , False)
  If Not x Is Nothing Then
    For L = x.Row To 2 Step -1
      If Cells(L, 1) <> "" Then Application.Goto Cells(L, 2), 1: Exit Sub
    Next
  End If
End Sub
Puisque tu minterpelles, je te salue aussi :D-;)
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 102
Membres
103 117
dernier inscrit
augustin.morille