XL 2019 listview affiche le nom des onglets

Yann71

XLDnaute Occasionnel
Bonjour la com. Je ne sais pas si c'est réalisable. J'aimerai que ma listview et affiche le nom de mes onglets,
déjà existant et ceux que je pourrai ajouter ainsi que si je sélectionne le nom de l'onglet qu'il permet de me rendre
sur cette page.
Merci pour votre aide futur.
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Jean marie, Yann, Eric C, vgendron,

j'ai trouvé ton fichier très bien ! 👍 j'y ai fait plusieurs modifs. 😉

* il n'y a plus de feuille "Accueil", et il n'y a plus de boutons de commande.

* note que la feuille active est "Mai" ; fais Ctrl g ➯ la ListView est affichée,
et l'item sélectionné est le 5ème item de la liste : "Mai".

* sélectionne l'item "Octobre" ➯ ça sélectionne la feuille "Octobre".

* sélectionne l'item "Juin" ➯ ça sélectionne la feuille "Juin".

* il n'y a plus de bouton Quitter ; pour sortir de la fenêtre, au choix :
appuie sur la touche Echap, ou clique sur la croix de fermeture du
coin haut droit de la fenêtre.

* la feuille active est "Juin" ; fais Ctrl g ➯ la ListView est affichée,
et l'item sélectionné est le 6ème item de la liste : "Juin".

* appuie sur la touche Echap ; fin de la démo. :)



code VBA du UserForm "ListFeuilles" (18 lignes) :

VB:
Option Explicit

Private Sub UserForm_Initialize()
  Dim Ws As Worksheet
  With ListView1
    .ColumnHeaders.Add , , "Feuilles", 80: .View = lvwReport: .Gridlines = 0
    For Each Ws In Worksheets: .ListItems.Add , , Ws.Name: Next Ws
    .ListItems(ActiveSheet.Index).Selected = -1
  End With
End Sub

Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
  Worksheets(CStr(ListView1.ListItems(Item.Index))).Select
End Sub

Private Sub ListView1_KeyPress(KeyAscii As Integer)
  If KeyAscii = 27 Then Unload Me
End Sub



code VBA de Module1 (3 lignes) :

VB:
Sub GoFX()
  ListFeuilles.Show
End Sub

soan
 

Pièces jointes

  • ListView - sélection de feuilles.xlsm
    35.6 KB · Affichages: 6

ChTi160

XLDnaute Barbatruc
Re
si tu mets 1 plutôt que -1 tu obtiens quoi chez Toi ?
je viens de voir effectivement False=0 et True -1
Lorsque des valeurs Boolean sont converties dans d’autres types de données, False devient 0 et True devient -1.
Mais aussi :
Lorsque d’autres types numériques sont convertis en valeurs Boolean, 0 devient False et toutes les autres valeurs deviennent True.
Bonne Journée
Jean marie
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
@ChTi160

je viens de voir effectivement False = 0 et True = -1

Lorsque des valeurs Boolean sont converties dans d’autres types de données, False devient 0 et True devient -1.

Lorsque d’autres types numériques sont convertis en valeurs Boolean, 0 devient False et toutes les autres valeurs deviennent True.

exact ! 👍 d'où pour ça :

si tu mets 1 plutôt que -1 tu obtiens quoi chez Toi ?

.ListItems(ActiveSheet.Index).Selected = 1

ça marche aussi ! 🙂

soan
 

Yann71

XLDnaute Occasionnel
Bonjour Jean marie, Yann, Eric C, vgendron,

j'ai trouvé ton fichier très bien ! 👍 j'y ai fait plusieurs modifs. 😉

* il n'y a plus de feuille "Accueil", et il n'y a plus de boutons de commande.

* note que la feuille active est "Mai" ; fais Ctrl g ➯ la ListView est affichée,
et l'item sélectionné est le 5ème item de la liste : "Mai".

* sélectionne l'item "Octobre" ➯ ça sélectionne la feuille "Octobre".

* sélectionne l'item "Juin" ➯ ça sélectionne la feuille "Juin".

* il n'y a plus de bouton Quitter ; pour sortir de la fenêtre, au choix :
appuie sur la touche Echap, ou clique sur la croix de fermeture du
coin haut droit de la fenêtre.

* la feuille active est "Juin" ; fais Ctrl g ➯ la ListView est affichée,
et l'item sélectionné est le 6ème item de la liste : "Juin".

* appuie sur la touche Echap ; fin de la démo. :)



code VBA du UserForm "ListFeuilles" (18 lignes) :

VB:
Option Explicit

Private Sub UserForm_Initialize()
  Dim Ws As Worksheet
  With ListView1
    .ColumnHeaders.Add , , "Feuilles", 80: .View = lvwReport: .Gridlines = 0
    For Each Ws In Worksheets: .ListItems.Add , , Ws.Name: Next Ws
    .ListItems(ActiveSheet.Index).Selected = -1
  End With
End Sub

Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
  Worksheets(CStr(ListView1.ListItems(Item.Index))).Select
End Sub

Private Sub ListView1_KeyPress(KeyAscii As Integer)
  If KeyAscii = 27 Then Unload Me
End Sub



code VBA de Module1 (3 lignes) :

VB:
Sub GoFX()
  ListFeuilles.Show
End Sub

soan
Bonjour Soan, Jean Marie.
Merci Soan pour ton intervention. J'aime beaucoup la possibilité de pouvoir ouvrir UserForm par raccourcis. Néanmoins j'ai toujours besoin de la feuille Accueil car sur celle-ci j'ai un Userform qui s'ouvre au démarrage demandant le nom de l'utilisateur ainsi qu'un mdp.
 

soan

XLDnaute Barbatruc
Inactif
@Yann71

J'aime beaucoup la possibilité de pouvoir ouvrir UserForm par raccourcis. Néanmoins j'ai toujours besoin de la feuille Accueil car sur celle-ci j'ai un Userform qui s'ouvre au démarrage demandant le nom de l'utilisateur ainsi qu'un mdp.

nouvelle version du fichier en PJ. :)

* à l'ouverture du fichier, tu es sur la feuille "Accueil"

* fais Ctrl g ➯ la ListView est affichée, mais comme c'est une liste des feuilles mois, la feuille "Accueil" n'y est pas, donc cette fois, il n'y a pas d'item sélectionné dans la liste ! (c'est normal)

* sélectionne l'item "Mai" ➯ ça sélectionne la feuille "Mai".

* sélectionne l'item "Octobre" ➯ ça sélectionne la feuille "Octobre".

* sélectionne l'item "Juin" ➯ ça sélectionne la feuille "Juin".

* pour sortir de la fenêtre, au choix : appuie sur la touche Echap, ou
clique sur la croix de fermeture du coin haut droit de la fenêtre.

* la feuille active est "Juin" ; fais Ctrl g ➯ la ListView est affichée,
et l'item sélectionné est le 6ème item de la liste : "Juin".

* appuie sur la touche Echap ; fin de la démo. :)



code VBA du UserForm "ListFeuilles" (26 lignes) :

VB:
Option Explicit

Private Sub UserForm_Initialize()
  Dim Ws As Worksheet, k%
  With ListView1
    .ColumnHeaders.Add , , "Feuilles", 80: .View = lvwReport: .Gridlines = 0
    For Each Ws In Worksheets
      If Ws.Name <> "Accueil" Then .ListItems.Add , , Ws.Name
    Next Ws
    k = ActiveSheet.Index
    If k = 1 Then 'feuille Accueil
      'la 1ère ligne est sélectionnée par défaut ; pour la désélectionner :
      .ListItems(1).Selected = 0: Set .SelectedItem = Nothing
    Else 'autres feuilles
      .ListItems(k - 1).Selected = -1
    End If
  End With
End Sub

Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
  Worksheets(CStr(ListView1.ListItems(Item.Index))).Select
End Sub

Private Sub ListView1_KeyPress(KeyAscii As Integer)
  If KeyAscii = 27 Then Unload Me
End Sub



code VBA de Module1 (3 lignes) :

VB:
Sub GoFX()
  ListFeuilles.Show
End Sub

soan
 

Pièces jointes

  • ListView - sélection de feuilles.xlsm
    37.4 KB · Affichages: 4

soan

XLDnaute Barbatruc
Inactif
@Yann71 ; ajout :

si tu es par exemple sur la feuille "Octobre"
et que tu veux retourner sur la feuille "Accueil" :
soit tu sélectionnes la feuille "Accueil" directement
avec la souris ; soit tu fais ceci :

* Ctrl g ➯ la ListView est affichée, et l'item sélectionné
est le 10ème item de la liste : "Octobre".

* sélectionne l'item "Janvier" ➯ ça sélectionne la feuille "Janvier".

* appuie sur la touche Echap pour sortir de la fenêtre.

* tu es donc sur la feuille "Janvier" ; fais Ctrl Page précédente
➯ ça va sur la feuille "Accueil". :)

soan
 

ChTi160

XLDnaute Barbatruc
Bonsoir ,
J'aime aussi la méthode des raccourcis qu'utilise souvent mon ami Soan.
Mais il est important que l'ensemble des utilisateurs en soit informé, car pas évident a Deviner lol
D'où l'intérêt d'une feuille accueil pour en informer les utilisateurs lol.
Merci soan
Bonne fin de soirée
Jean marie
 

soan

XLDnaute Barbatruc
Inactif
@ChTi160, Yann71,

il est important que l'ensemble des utilisateurs en soit informé, car pas évident à deviner lol

exact ! d'habitude, j'utilise Ctrl e car souvent, je fais une sub nommée Essai() ; mais ici, j'ai choisi Ctrl g car ma sub se nomme GoFX() : aller sur la Feuille X. 😉

j'évite toujours les lettres s et w car Ctrl s est trop pratique pour sauvegarder ; et Ctrl w est trop pratique pour fermer le document qui est ouvert dans la fenêtre de l'application. (y'a aussi quelques autres lettres que j'évite, pour le même genre de raison)

rappel : pour fermer l'application elle-même, c'est avec Alt F4 ; attention : sauvegarder le document avant !

soan
 
Dernière édition:

Yann71

XLDnaute Occasionnel
@Yann71 ; ajout :

si tu es par exemple sur la feuille "Octobre"
et que tu veux retourner sur la feuille "Accueil" :
soit tu sélectionnes la feuille "Accueil" directement
avec la souris ; soit tu fais ceci :

* Ctrl g ➯ la ListView est affichée, et l'item sélectionné
est le 10ème item de la liste : "Octobre".

* sélectionne l'item "Janvier" ➯ ça sélectionne la feuille "Janvier".

* appuie sur la touche Echap pour sortir de la fenêtre.

* tu es donc sur la feuille "Janvier" ; fais Ctrl Page précédente
➯ ça va sur la feuille "Accueil". :)

soan
Merci Soan, j'apprécie ton travail. Le fait de pouvoir ouvrir l'userform avec touche de raccourcis le bonheur. Mais je souhaitai l'ajouter à un autre classeur mais le soucis c'est que je ne vois pas ou se trouve la partie de ton code qui permette justement cette action.
Bonne soirée
 

soan

XLDnaute Barbatruc
Inactif
@Yann71

je souhaitai l'ajouter à un autre classeur mais le souci c'est que je ne vois pas où se trouve la partie de ton code qui permet justement cette action.

c'est pas dans le code vba que j'ai ajouté un raccourci clavier ; c'est au niveau de la feuille de calcul ! voici la description de la procédure à suivre :

* fais Alt F8 ➯ fenêtre "Macro" ; dans la liste des macros, sélectionne celle pour laquelle tu veux mettre un raccourci clavier ; si y'a qu'une seule macro dans la liste, elle est déjà automatiquement sélectionnée.

* quand la bonne macro est sélectionnée, clique à droite sur le bouton "Options..." ou fais Alt t ➯ fenêtre "Options de macro" ; c'est là ! :) mets dans la petite case la lettre de ton choix, par exemple g pour Ctrl+g (attention : la casse compte ➯ g est différent de G) ; tu peux même mettre aussi dans la grande case une description du but de la macro, qui apparaîtra en bas de la fenêtre "Macro".

* valide en cliquant sur le bouton OK ➯ retour à la fenêtre précédente "Macro" ; ferme cette fenêtre ➯ retour sur la feuille de calcul ; c'est bon : tu peux maint'nant utiliser ton nouveau raccourci clavier ! 😊

bonne soirée à toi aussi. 🍀

soan
 
Dernière édition:

Discussions similaires

Réponses
19
Affichages
922

Statistiques des forums

Discussions
311 711
Messages
2 081 799
Membres
101 818
dernier inscrit
tiftouf5757