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
 

Chri8Ed

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

Oui bien sûr

Mais comme je disais
si ce mot existe dans une dizaine de thèmes, il va me falloir balayer tous ces thèmes pour trouver le bon

D'où mon idée, de rediriger, dans le cas où la recherche tombe sur un mot utilisé en multiple, vers une un UserForm ou une ImputBox, pour effectuer la bonne sélection directement et sans tâtonnement.

Mais là, l'idée je l'ai, mais pas la maitrise pour le faire :(
 

Pierrot93

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

RE

Bon un dernier essai :
Code:
Option Explicit
Sub test()
Dim s As String, x As Range, n As Name, p As String
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
With Columns(2)
    Set x = .Find(s, , xlValues, xlPart, , , False)
    If Not x Is Nothing Then
        x = x.Address
        Do
            Set x = .FindNext(x)
            For Each n In Names
                If Not Intersect(x, n.RefersToRange) Is Nothing Then _
                    Application.Goto n.RefersToRange, True: If MsgBox("celle-ci ?", vbYesNo) = vbYes Then Exit Sub
            Next n
        Loop While x.Address <> p
    End If
End With
End Sub
 

Chri8Ed

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

Merci Pierrot pour ton dernier essai

Ca va me permettre de patienter le temps nécessaire que je trouve le moyen de faire ce que je veux avec un UserForm
(Ce qui risque d’être long !) :mad:

Bonne fin d’après-midi

A+
 

Chri8Ed

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

Bonsoir

Je reviens devant le Forum

Je cherche toujours le moyen de rediriger le ou les noms (ou les titres des thèmes) auxquelles mes cellules recherchées appartiennent vers un UserForm

J’ai bien trouvé un UserForm qui me permet de lister tous les noms de ma feuille (Ci-dessous)
Mais malgré tous mes essais, je n’arrive pas à l’adapter à ce que je veux faire

Code:
Option Compare Text
Dim Plage As Range, n As Name, c As Variant, m As Worksheet
Private Sub commandbutton1_click()
On Error Resume Next
lbx1.Clear
For Each n In ThisWorkbook.Names
Set Plage = n.RefersToRange
If Worksheets("NOM").Name = Plage.Worksheet.Name Then lbx1.AddItem n.Name
Next n
Set Plage = Nothing
tbx1.SetFocus: tbx1 = ""
End Sub
 

Fo_rum

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

Bonsoir,

...Je rendre un mot en abrégé : ...c'est quoi ?

Tu n'auras rien de rien si le mot saisi ne figure pas, ne serait-ce en partie, dans la liste.
Tape 10 ou e ou jeu et regarde la liste après avoir cliqué sur Ok !
 

Chri8Ed

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

Re,

Pardons

Je voulais dire "Je rentre un mot en abrégé ou en entier et Rien !"

En abrégé, je veux dire que je tape en abrégé "maté" ou en entier "matériel" pour trouver le mot "matériel"

Je clique bien sûr sur Ok
et rien ne s'affiche
 

Fo_rum

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

Re,

Hé oui : problème de casse* que tu peux régler en ajoutant une instruction au début
Code:
Option Explicit
Option Compare Text 'celle-ci
Dim Ini As Boolean, L As Long

*Maté n'est pas toujours maté !
 
Dernière édition:

Chri8Ed

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

Bonjour

J’ai modifié l’UserForm
Maintenant les cellules recherchées apparaissent bien

Il subsiste cependant 2 problèmes

1) Le thème associé à la cellule recherchée n’apparait pas, donc si la recherche débouche sur 2 thèmes différents (Mots recherchés identiques) il est impossible de savoir lequel est le bon.

2) Lorsque je clique sur un mot de la liste, le pointeur ne se place en début du thème correspondant
 

Pièces jointes

  • UsFGoto-4.xls
    56 KB · Affichages: 38
Dernière édition:

Chri8Ed

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

Bonjour

Je suis toujours à la recherche d’une solution

Je ne sais bien pas si on peut dans la même ListeBox lister sur la même ligne à la fois le mot recherché et le nom du thème auquel il appartient.

J’ai cherché dans ce sens en vain

Mais la solution pourrait être de les visualiser dans 2 ListBox placées côte à côte ?

Merci pour votre aide
 

Discussions similaires

Statistiques des forums

Discussions
312 345
Messages
2 087 471
Membres
103 553
dernier inscrit
jhnm