Pointer vers ligne

xpstarok

XLDnaute Nouveau
Salut!
Mon probleme est le suivant:
Sur une feuille Excel (+ 1500 enregistrements) j'ai integré une zone de liste qui marche tres bien. Comment aller directement à la ligne correspondante au choix, en cliquant sur un element de la liste.
 

xpstarok

XLDnaute Nouveau
Re : Pointer vers ligne

Merci d'avoir répondu aussi vite Masterdisco!
Comme le fichier original est illisible pour vous j'ai créé un fichier modèle tout en mettant en évidence la problématique.
 

Pièces jointes

  • modele_test.xls
    27 KB · Affichages: 66
  • modele_test.xls
    27 KB · Affichages: 72
  • modele_test.xls
    27 KB · Affichages: 68

Brigitte

XLDnaute Barbatruc
Re : Pointer vers ligne

Bonjour,

Deux trois petites idées dans le fichier joint, sachant que :

1. On doit pouvoir trouver plein de soluces surement meilleures (macros, ou autres)
2. il serait mieux de mettre un titre à chaque colonne
3. il serait mieux de nommer chaque zone avec insertion/nom/définir tel que fait pour PAYS

Bon courage.

Xpstarok : il vaut mieux rester sur ton fil, plutôt que d'écrire en privé. En effet, d'une part, tu auras plus de réponses ici qu'avec une seule personne, et la charte d'xld prévoit qu'on réponde sur le forum pour que tout le monde profite de la réponse (je parle pas de la mienne qui reste le bé a ba vu mon niveau/à celui de tous les forumeurs bien meilleurs).
 

Pièces jointes

  • xpstarok.xls
    41 KB · Affichages: 67

Brigitte

XLDnaute Barbatruc
Re : Pointer vers ligne

Re,

J'ai tout d'un coup une autre idée, que je saurais pas faire en l'état... Faire que les noms dans la liste deviennent des hyperliens et ainsi on clique et hop... Mais bon à mon avis, ca sent le maquereau... euh, pardon, la macro.
 

xpstarok

XLDnaute Nouveau
Re : Pointer vers ligne

Merci Brigitte!
Au fait je ne voulais pas afficher les valeurs des enregistrements ( avec recherchev ou index) mais pointer tout simplement vers la ligne de l'enregistrement.
Commei j'ai une BDD de +1500 enregistrements je voudrais aller directement à la ligne choisie dans la zone de liste sans avoir à derouler la roulette.:D
 

xpstarok

XLDnaute Nouveau
Re : Pointer vers ligne

Brigitte j'ai trouvé la soluce:
Voici la macro ( l'essentiel c'est quelle fonctionne)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("h1"), Target) Is Nothing Then
If IsNumeric(Target) Then
If Target.Value > 0 And Target.Value < 65537 Then
Application.Goto Cells(Target.Value, 1), scroll:=True
End If
End If
End If
If Target.Column = 3 Then
Application.Goto Cells(1, 1), scroll:=True
End If
End Sub

----> Double clic sur la valeur en H1
Je l'ai déjà adapté à mon fichier original et ça marche!!
Je laisse tomber la zone de liste
 

Pièces jointes

  • modele_test 02.xls
    34.5 KB · Affichages: 62

Minick

XLDnaute Impliqué
Re : Pointer vers ligne

Salut,

Une solution avec ta zone de liste (macro a affecter a la zone)
Code:
Option Explicit

Sub Zonedeliste1_QuandChangement()
    Dim Rech As Variant
    Dim Zone As Shape
    Dim Plage As Range
    
    Set Zone = ActiveSheet.Shapes("Zone de liste 1")
    Set Plage = ActiveSheet.Range(Zone.ControlFormat.ListFillRange)

    Set Rech = Plage.Find(what:=Plage.Offset(Zone.ControlFormat.ListIndex - 1).Resize(1).Value, LookIn:=xlValues, lookat:=xlWhole)
    If Not Rech Is Nothing Then
        Application.Goto Rech, True
    End If
    
    Set Rech = Nothing
    Set Plage = Nothing
    Set Zone = Nothing
End Sub
++
Minick
 
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : Pointer vers ligne

Bonjour,

Ben c'est super xpstarok... mais dommage qu'il faille deviner quel numéro seulement.
Je vais voir celle minick que je salue au passage... Alors tu n'as pas créé de nouveau jeu depuis DEMOLITION ?

Chez moi ca bugge, Minick, tu pourrais m'aider ?

Y avait un pb de copie de la macro qui avait scindé le mot range en ran et à la ligne ge... mais ca fait tjs erreur.
 

Pièces jointes

  • xpstarok minick.xls
    34.5 KB · Affichages: 50
  • xpstarok minick.xls
    34.5 KB · Affichages: 53
  • xpstarok minick.xls
    34.5 KB · Affichages: 49
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : Pointer vers ligne

ah Minick a changé sa macro... Tu aurais dû mettre en clair ta modif, moi j'avais copié/collé avant et pas vu le changement.

Là ca marche, c drolement bien.

Ca marche chez toi xpstarok ??? Je pense que c un peu plus pratique que ton approche, qui était déjà très bien d'ailleurs.

Chez moi c nickel, bravo Minick.
 

Pièces jointes

  • xpstarok minick.xls
    37 KB · Affichages: 54
  • xpstarok minick.xls
    37 KB · Affichages: 50
  • xpstarok minick.xls
    37 KB · Affichages: 46

Modeste

XLDnaute Barbatruc
Re : Pointer vers ligne

Bonjour à tous,

Une autre possibilité via macro (toujours en utilisant la liste déroulante): définir, pour la liste en question, une cellule liée (ici, j'ai défini I6). Dès qu'un élément est sélectionné, I6 affiche le n° d'index dans la liste ... et donc le code qui suit (placé dans un module) active la cellule de la colonne A, à la ligne correspondant à l'index:
Code:
Sub Zonedeliste1_QuandChangement()
Sheets("feuil1").Range("A" & Range("I6").Value).Select
End Sub

Ceci ne remet nullement en cause les autres propositions: c'en est simplement une de plus.

Quant à la proposition de Brigitte:
brigitte à dit:
2. il serait mieux de mettre un titre à chaque colonne
... J'y souscris à 200% ... voire plus encore !

Modeste
 

Brigitte

XLDnaute Barbatruc
Re : Pointer vers ligne

Re,

Xpstarok, pourrais tu m'aider ?

Je ne sais plus comment on crée ce que tu appelles une zone de liste ?

J'ai ouvert la boîte à outils control, pris la zone de liste déroulante, mais quand je clique droit dessus et fais "format de contrôle", je n'ai pas "contrôle" pour mettre la zone...

J'ai oubliéééééééééé.... Si tu peux me dire comment tu as fait...
 

Discussions similaires

Statistiques des forums

Discussions
312 202
Messages
2 086 177
Membres
103 152
dernier inscrit
Karibu