XL 2010 Retrouver objet Listbox

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour
Ce fichier a + de 5 ans dans mon grenier et je ne suis pas le créateur
Je n'arrive plus à me rappeler comment retrouver et comment a été créé LISTBOX1 ? (liste MOTIFS)

Le principe : dans "accessoires" il y a un bouton qui inhibe ou pas le clic droit si inhibé dans les feuilles si on clic droit dans une cellules "blanche" on ouvre cette Listbox1
sinon c'est le menu standard
Je n'ai jamais repris ce fichier !! donc plus de souvenirs ?
 

Pièces jointes

  • Calendrier4-1-1.xlsm
    62.6 KB · Affichages: 11

ChTi160

XLDnaute Barbatruc
Re
je dis :
Les Lignes de la ListBox vont de 0 à .ListCount-1 (si 5 éléments dans la ListBox alors de 0 à 4) ce qui fait 5
tu réponds :
Ben oui je viens d'en ajouter 1 aussi ...mais ça change rien
Donc tu a x Lignes avec celle que tu viens de rajouter !
tu avais signalé que si tu mettais
Là encore ça bug sur .listindex= 5
donc il aurait fallu mettre .listIndex=4 si tu as 5 Lignes , la dernière a pour Index 4
je vois qu'on parle de l'extension est *.EXD.
je ne comprends pas pourquoi Lol
dans l'attente
Jean marie
 

cp4

XLDnaute Barbatruc
Re
je dis :

tu réponds :

Donc tu a x Lignes avec celle que tu viens de rajouter !
tu avais signalé que si tu mettais

donc il aurait fallu mettre .listIndex=4 si tu as 5 Lignes , la dernière a pour Index 4
je vois qu'on parle de l'extension est *.EXD.
je ne comprends pas pourquoi Lol
dans l'attente
Jean marie
Oups! j'ai lu de travers, j'avais cru qu'il n'arrivais plus à créer une Listbox.
 

ChTi160

XLDnaute Barbatruc
Re
je ne comprends pas d'où vient le problème !
il parle de:
Là encore ça bug sur .listindex= 5
donc je ne sais pas si c'est une partie de Boucle ou ?????? Lol
alors qu'il fais référence au ListIndex = 5 alors qu'il n'a que 5 Données dans sa ListBox donc la dernière n'est pas 5 mais 4 .....
il faudrait plus de la Procédure ou se trouve ce ListIndex=5 !
Enfin attendons
Jean marie
 

ChTi160

XLDnaute Barbatruc
Re
c'est ce que je disais
tu as 5 elements dans la LIstBox et chez moi y'a l'erreur si on laisse le .ListIndex=5 (d'ailleurs pourquoi mettre le ListIndex sur le 1/2J)
moi j'aurai mis .listIndex=-1
pour voir tu mets .listIndex=4
Jean marie
 

ChTi160

XLDnaute Barbatruc
Re
ce que j'ai mis :
VB:
Sub Worksheet_BeforeRightClick(ByVal Cible As Range, Cancel As Boolean)
If MemInh = False Then Exit Sub
Application.ScreenUpdating = False
Set MemCible = Cible                                                                         ' Mémorise Cible
With ListBox1
    If .Value <> "" Then Cible.Value = ""
    .LinkedCell = Cible.Address                                                             ' Indique la cellule d'application à la liste
    .Top = Cible.Top + 20                                                                      ' Positionne la liste, la désélectionne et la rend visible
    .Left = Cible.Left + 50
    .ListIndex = -1                                                                                 ' Sélectionne dernier choix (vide) de la liste car Pb. avec .Listindex = -1
    .Visible = True
End With
Cancel = True
Application.ScreenUpdating = True
End Sub
je me rends compte que tu as devant la Ligne .ListIndex=5
' Sélectionne dernier choix (vide)
il faut donc inclure dans la Palge "MOTIFS" Une Cellule Vide en Dernier tu auras ainsi 6 Ligne dont une Vide qui aura le ListIndex 5
Jean marie
 

Pièces jointes

  • Herve-5.gif
    Herve-5.gif
    121.5 KB · Affichages: 14

ChTi160

XLDnaute Barbatruc
Re
ce que j'ai modifié et semble répondre aux besoins
j'ai apostrophé deux Lignes
Code:
Sub Worksheet_BeforeRightClick(ByVal Cible As Range, Cancel As Boolean)
If MemInh = False Then Exit Sub
Application.ScreenUpdating = False
Set MemCible = Cible                                                                         ' Mémorise Cible
With ListBox1
'    If .Value <> "" Then Cible.Value = "" 'Inhibé'
    .LinkedCell = Cible.Address                                                             ' Indique la cellule d'application à la liste
    .Top = Cible.Top + 20                                                                      ' Positionne la liste, la désélectionne et la rend visible
    .Left = Cible.Left + 50
'    .ListIndex = -1   'Inhibé'                                                                            ' Sélectionne dernier choix (vide) de la liste car Pb. avec .Listindex = -1
    .Visible = True
End With
Cancel = True
Application.ScreenUpdating = True
End Sub
Jean marie
 

Pièces jointes

  • Herve-7.gif
    Herve-7.gif
    497.5 KB · Affichages: 15

TooFatBoy

XLDnaute Barbatruc
je me rends compte que tu as devant la Ligne .ListIndex=5
' Sélectionne dernier choix (vide)
il faut donc inclure dans la Palge "MOTIFS" Une Cellule Vide en Dernier tu auras ainsi 6 Ligne dont une Vide qui aura le ListIndex 5
Toutafé ! Voir mon message #24. .. ;)

Mais ce n'est pas le seul problème :
- la liste ne se met pas à jour automatiquement,
- le "toggle" n'est plus pris en compte dès qu'on passe par VBE. Donc il faut repasser par la feuille "Noms des employés" pour désactiver/réactiver le "toggle".

Hervé se base apparemment sur le code d'un autre fichier (disponible en #1), mais déjà là on voit que le code est complètement pourri et que ce n'est pas vraiment fonctionnel... alors essayer d'adapter un truc pourri, ce n'est pas génial génial... :(
Perso, je n'ai pas encore compris l'intérêt du "toggle".
 

ChTi160

XLDnaute Barbatruc
Bonjour Marcel
ce que j'ai mis pour que la Liste soit toujours à jours
VB:
Sub Worksheet_BeforeRightClick(ByVal Cible As Range, Cancel As Boolean)
If MemInh = False Then Exit Sub
Application.ScreenUpdating = False
Set MemCible = Cible                                                                         ' Mémorise Cible
With ListBox1
    .ListFillRange = "MOTIFS" 'Ici on charge la Liste a chaque fois
    .LinkedCell = Cible.Address                                                             ' Indique la cellule d'application à la liste
    .Top = Cible.Top + 20                                                                      ' Positionne la liste, la désélectionne et la rend visible
    .Left = Cible.Left + 50
    .Visible = True
End With
Cancel = True
Application.ScreenUpdating = True
End Sub
Bonne Journée
Jean marie
 

Discussions similaires

Réponses
18
Affichages
621

Statistiques des forums

Discussions
312 177
Messages
2 085 976
Membres
103 076
dernier inscrit
LoneWolf90