• Initiateur de la discussion Initiateur de la discussion xpstarok
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

X

xpstarok

Guest
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.
 
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

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.
 
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.😀
 
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

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:
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

Dernière édition:
Re : Pointer vers ligne

Ben je bricole Brigitte!!
J'ai testé la macro de Minick mais ça me sort un message genre:

Erreur de compilation ; instruction incorrecte dans une procedure.

Tu peux le faire avec n'importe quel numéro de 1 à 65537 .
 
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

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
 
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...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 agrandir la liste
Réponses
21
Affichages
682
Réponses
5
Affichages
362
Réponses
5
Affichages
192
Réponses
11
Affichages
321
Retour