Remplir des cellules à l'aide d'un [menu contextuel]

powergirl

XLDnaute Nouveau
Bonjour,
J'aimerais créer un menu contextuel avec plusieurs niveaux (ci-joint une capture d'écran d'un menu contextuel)
pour remplir une cellule. Mais je ne sais pas où commencer.

J'ai fait le même travail en utilisant un userform.
J'aimerais que vous m'aider s'il vous plaît
En vous remerciant
20180704_102354.jpg
 

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour
Déjà !! ne peux tu pas faire une VRAIE capture d'écran au lieu d'une photo ?? pratiquement illisible !
prend par exemple : https://gadwin-printscreen.fr.softonic.com/
même en vers. 4.3 ( celle que j'ai) c'est largement suffisant et simple d'utilisation
Ensuite il faudra détailler en rapport avec l'image ce que tu veux avoir
On n'est pas des devins !!! ( quoique ....:rolleyes: !!) tu veux remplir des cellules : avec Quoi, Comment , de Ou ...
??
 

powergirl

XLDnaute Nouveau
J'ai réussi à faire un menu contextuel. J'aimerais avoir des données en cascade. C'est à dire quand je clique sur une famille, toutes les sous famille de cette famille apparaît. Quand je clique sur une sous famille, l'ensemble des référence que contient cette sous famille apparaissent. Voici mon fichier excel
 

Pièces jointes

  • Configuration_API.xlsm
    28.3 KB · Affichages: 33

herve62

XLDnaute Barbatruc
Supporter XLD
J'ai réussi à faire un menu contextuel.
Il est Ou ???
Mais comme tu sais faire, aide toi de notre ami Jacques : http://boisgontierjacques.free.fr/
Dans son menu DIVERS tu as "liste en cascade" soit passer par le VBA ou formule avec nom de champ, j'ai déjà eu à faire et normalement on trouve sa solution via ses exemples
Par contre tu ne détailles toujours pas tes familles et sous familles correctement ( dans ton fichier c'est du chinois, rien de concret ) si tu l'avais fait , j'aurai déjà pu t'aiguiller sur l'exemple à utiliser .... puisque Jacques montre bien avec ses dessins ce que le code va faire !!
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re


@Lone-wolf
J'ai surtout publié mon message pour INFO et précautions
(comme j'ai pris le soin de le préciser dans le message#5)
Tu as cliqué sur le lien *précaution* ?

Et accessoirement parce que le lien (tel que posté) d'hervé62 n'était pas valide.
Bonjour
Déjà !! ne peux tu pas faire une VRAIE capture d'écran au lieu d'une photo ?? pratiquement illisible !
prend par exemple : https://gadwin-printscreen.fr.softonic.com/
??
C'est donc à lui que tu devrais adresser ton message, non, ;)
Re Jean Marie

[s]@Staple1600[/s] : Windows+PrtSc ça suffit non? ;)
 

herve62

XLDnaute Barbatruc
Supporter XLD
Bonsoir
Bon !! le sujet de la Miss !! n'est pas la dessus ce n'est pas le genre de réponse qu'elle attend
Et si j'ai mis ce lien c'est parce que celui de l'éditeur donne trop complexe à suivre
J'ai cette version , et sans PRECAUTION ???? , et cela va bien PAs besoin de me plaindre chez MALEKAL !!
JM : prtsc ? et comment tu prends juste un petit morceau ??
Good night
 

powergirl

XLDnaute Nouveau
408px-Arbre_binaire_ordonne.svg.png

Bonjour,
j'ai fait while dans while donc normal je devrais avoir un truc de ce genre.
Mais seule la premère branche est appliqué. svp pouvez me dire où j'ai fait erreur.

Dim NbLignes As Integer
NbLignes = Sheets("BD").UsedRange.Rows.Count

With Application.CommandBars("Cell").Controls.Add(msoControlPopup)

.Caption = "Configuration API" 'le nom de la commande
.BeginGroup = True 'ligne facultative si elle est précisée alors
' With .Controls.Add(msoControlPopup)
' .Caption = Sheets("BD").Range("B3").Value 'le nom de la commande
While i <= NbLignes + 1
With .Controls.Add(msoControlPopup)
.Caption = Sheets("BD").Range("B" & i).Value
.BeginGroup = True
'.OnAction = "dupliquerlignes" 'appel de la macro
' Le numéro est augmenté de 1 à chaque boucle

While j <= NbLignes + 1
With .Controls.Add(msoControlPopup)
.Caption = Sheets("BD").Range("C" & j).Value
'.BeginGroup = True
While k <= NbLignes + 1
With .Controls.Add(msoControlPopup)
.Caption = Sheets("BD").Range("D" & k).Value
While l <= NbLignes + 1
With .Controls.Add(msoControlButton)
.Caption = Sheets("BD").Range("E" & l).Value
l = l + 1
End With
Wend
k = k + 1
End With
Wend
j = j + 1
End With

Wend
i = i + 1
End With

Wend

End With
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Un petit code de test en guise d'inspiration
(adapté d'un code de Ron de Bruin)
VB:
Sub AddToCellMenu()
Dim ContextMenu As CommandBar
Dim MySubMenu As CommandBarControl
Call DeleteFromCellMenu
Set ContextMenu = Application.CommandBars("Cell")
Set MySubMenu = ContextMenu.Controls.Add(Type:=msoControlPopup, before:=3)
    With MySubMenu
        .Caption = "Test Menu-contextuel"
        .Tag = "My_Cell_Control_Tag"

        With .Controls.Add(Type:=msoControlButton)
            .OnAction = "'" & ThisWorkbook.Name & "'!" & "Test1"
            .FaceId = 160
            .Caption = "Sous-menu 1"
        End With
        With .Controls.Add(Type:=msoControlButton)
            .OnAction = "'" & ThisWorkbook.Name & "'!" & "Test2"
            .FaceId = 127
            .Caption = "Sous-menu 2"
        End With
        With .Controls.Add(Type:=msoControlButton)
            .OnAction = "'" & ThisWorkbook.Name & "'!" & "Test3"
            .FaceId = 213
            .Caption = "Sous-menu 3"
        End With

    End With
ContextMenu.Controls(4).BeginGroup = True
End Sub
Sub DeleteFromCellMenu()
    Dim ContextMenu As CommandBar, ctrl As CommandBarControl
    Set ContextMenu = Application.CommandBars("Cell")
    For Each ctrl In ContextMenu.Controls
        If ctrl.Tag = "My_Cell_Control_Tag" Then
            ctrl.Delete
        End If
    Next ctrl
    On Error Resume Next
    ContextMenu.FindControl(ID:=3).Delete
    On Error GoTo 0
End Sub
Sub Test1()
MsgBox Time, vbCritical, "Test1"
End Sub
Sub Test2()
MsgBox Date, vbExclamation, "Test2"
End Sub
Sub Test3()
MsgBox Application.UserName, vbMsgBoxRtlReading, "Test3"
End Sub
 

patricktoulon

XLDnaute Barbatruc
bonjourperso j'ai une question qui me tarode dans ton menu que je pige pas en tout cas

cette question est a quoi sert il d'avoir x items si tous t'emmenent au même endroit?????????
tu te serait pas trompé quelque part???
 

Pièces jointes

  • demo.gif
    demo.gif
    174.7 KB · Affichages: 76

Discussions similaires

Réponses
26
Affichages
371

Statistiques des forums

Discussions
312 155
Messages
2 085 817
Membres
102 991
dernier inscrit
justingr