Re: Créer et Utiliser des listes de choix successives
#11
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 07-10-2009 21h39
Bonsoir gmarin,

En pièce jointe, ton fichier modifié en conséquence.

J'ai modifié le code comme suit :

Option Explicit
'---------------------------------------------------------------------------------------
' Auteur    : Didier FOURGEOT (myDearFriend!)  -  www.mdf-xlpages.com
' Date      : 06/10/2009
' Sujet     : Menu en cascade
'---------------------------------------------------------------------------------------
Sub AffichMenuD(T As String)
Dim CB As CommandBar
Dim M As CommandBarPopup, M1 As CommandBarPopup, M2 As CommandBarButton
Dim TabTemp
Dim L&
    If T = "" Then Exit Sub
    'On mémorise la liste des données (en plage A3:F? ici)
    With Sheets("Feuil1")
        L = .Cells(.Rows.Count, 1).End(xlUp).Row
        TabTemp = .Range(.Cells(3, 1), .Cells(L, 6)).Value
    End With
    'On crée une barre de menu temporaire
    On Error Resume Next
    Application.CommandBars("MenuD").Delete
    On Error GoTo 0
    Set CB = Application.CommandBars.Add("MenuD", msoBarPopup, , True)
    For L = 1 To UBound(TabTemp, 1)
        If UCase(TabTemp(L, 4)) Like T & "*" Then
            '1er niveau du menu (éléments en colonne 4 sur la feuille)
            Set M = ElmtMenu(TabTemp(L, 4), CB, True)
            '2ème niveau du menu (éléments en colonne 6 sur la feuille)
            Set M1 = ElmtMenu(TabTemp(L, 6), M, True)
            '3ème niveau du menu (éléments en colonne 1 sur la feuille)
            Set M2 = ElmtMenu(TabTemp(L, 1), M1, False)
            M2.OnAction = "'SuivreLien " & L & "'"
        End If
    Next L
    'Affiche le menu
    With Application.CommandBars("MenuD")
        If .Controls.Count > 0 Then .ShowPopup
        .Delete
    End With
End Sub

Private Function ElmtMenu(ByVal T$, MenuParent As Object, Pop As Boolean) As Object
Dim M As CommandBarControl
    On Error Resume Next
    Set M = MenuParent.Controls(T)
    On Error GoTo 0
    If M Is Nothing Then
        Set M = MenuParent.Controls.Add(IIf(Pop, msoControlPopup, msoControlButton), , , , True)
        M.Caption = T
    End If
    Set ElmtMenu = M
End Function

Sub SuivreLien(L As Long)
'Pour un fonctionnement "classique" (=visualisation dans le navigateur web),
'il convient d'activer la ligne ci-dessous (et désactiver les suivantes) :
    ' ThisWorkbook.FollowHyperlink Sheets("Feuil1").Cells(L + 2, 6).Hyperlinks(1).Address
   
   
'Pour un fonctionnement avec contrôle WebBrowser directement sur la feuille Excel :
    Sheets("Feuil2").WebBrowser1.Navigate Sheets("Feuil1").Cells(L + 2, 6).Hyperlinks(1).Address
End Sub

J'ai également essayé d'interpréter et d'apporter une réponse au dernier point :
Citation :
gmarin a écrit :
Question supplémentaire : les liens hypertexte peuvent-ils être affichés directement dans la feuille Excel, plutôt que dans l'IExplorer ?

Tu verras dans le classeur qu'il est possible d'intégrer directement sur la feuille de calcul un contrôle Webbrowser pour afficher les url pointées par le menu en cascade... A toi de voir si cette façon de faire est mieux ou non...

Cordialement,
Pièce jointe:
zip PourGmarin2.zip   [ Taille: 32.52 Ko - Téléchargements: 620 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Créer et Utiliser des listes de choix successives
#12
Régulier XLPages

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 08-10-2009 23h23
Bonsoir MyDearFriend,

Avant tout, merci pour ton aide sur mon sujet.
Bon, sur cette dernière modif, j'ai un soucis : un message d'erreur immédiat dès que je clique sur les cases : "impossible de sortir du mode création, le contrôle 'WbBrowser' ne peut pas être créé".
J'ai désactivé la ligne du contrôle, et activé celle du Browser standard, mais rien n'y fait, j'ai toujours le message.

Je vois aussi que tu as réécris la ligne : "L = .Cells(Rows.Count, "1" )alors que le tableau démarre en ligne 2, est-ce voulu ?

Hors Ligne
Rapport   Haut 

Re: Créer et Utiliser des listes de choix successives
#13
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 08-10-2009 23h46
Bonsoir gmarin, le Forum,

Oui c'est voulu, d'autant que le 1 (qui n'est pas entre guillemet dans le code !) correspond à un numéro de colonne et non de ligne...

Bon, tu as visiblement des soucis avec le contrôle WebBrowser, je te joins donc une version sans.
L'URL sera donc visitée via ton navigateur Web.

Cordialement,
Pièce jointe:
zip PourGmarin3.zip   [ Taille: 31.46 Ko - Téléchargements: 594 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Créer et Utiliser des listes de choix successives
#14
Régulier XLPages

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 08-10-2009 23h57
Merci pour cette rapidité !

Eh oui, suis-je bête, le 1 représentait la colonne, et moi, j'étais focalisé sur mon départ en ligne 2 ...
Comme quoi, une bonne explication (sur un bon site, avec un bon prof ...)

Bref, çà fonctionne bien.
Où puis-je trouver des explications sur ce WebBrowser ?
Ne serait-ce pas parceque j'utilise Firefox par défaut, plutôt qie IE8 ?
Hors Ligne
Rapport   Haut 

Re: Créer et Utiliser des listes de choix successives
#15
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 09-10-2009 00h09
Re gmarin,

Non, le fait que tu utilises FF par défaut n'est pas le problème (c'est mon cas aussi).

Je suppose qu'une fois le classeur ouvert, en faisant ALT + F11 pour aller dans VBE et en regardant la liste des références dans menu Outils / Références : tu dois avoir une ligne marquée comme [Manquante].
Je ne saurais t'en dire plus... aucune idée, je ne vois pas pourquoi tu ne possèderais pas le contrôle ActiveX WebBrowser sur ta machine...

Il se fait tard, j'arrête là pour ce soir.

Cordialement,


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Créer et Utiliser des listes de choix successives
#16
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 09-10-2009 00h19
Bonjour gmarin, Didier,

Le contrôle Microsoft Internet Control (shdocvw.dll) devrait rouler sans problème sur ton poste même si le navigateur par défaut est Firefox (félicitations!). Moi aussi j'ai Firefox comme navigateur par défaut. J'ai Opéra, Firefox et IE sur mon poste et dans Excel aucune erreur ne se pointe à l'ouverture du classeur PourGmarin2.xls de Didier.

Il serait intéressant de piocher un peu ce bogue. Si tu ouvres la boîte à outils Contrôles dans Excel et que tu parcours les contrôles installés, peux-tu pointer sur Microsoft Internet Control? Sinon, c'est que ce contrôle n'est pas installé ou encore pas enregistré sur ton poste.

Fouille dans C:\Windows\System32 et vois si shdocvw.dll est présent (je serais surpris qu'il n'y soit pas). S'il n'apparaît pas dans la boîte d'outils d'Excel et qu'il est présent sur ton disque c'est qu'il n'est pas correctement enregistré (placé dans la base se registre).

Guy

Hors Ligne
Rapport   Haut 

Re: Créer et Utiliser des listes de choix successives
#17
Régulier XLPages

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 09-10-2009 00h46
bonjour Guy,

Dans VBA, dans le menu : Outils<références, j'ai bien la case cochée pour "Microsoft Internet Controls" et le chemin d'accès est bien c:\windows\system32\shdocvw.dll.
Hors Ligne
Rapport   Haut 

Re: Créer et Utiliser des listes de choix successives
#18
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 09-10-2009 00h55
Bonsoir gmarin,

Ben là, je suis bouche la baie (Québécisme popularisé par Michel Rivard. Zaurez compris que c'est une blague ou dois-je ajouter un clin-d'oeil ). 

Le contrôle est bel et bien inscrit dans la base de registre, autrement il ne serait pas visible dans les références VBA.
Merci pour la précision de ta réponse.

Alors pourrais-tu donner plus d'explication sur la survenue du message d'erreur; les manipulations, les étapes et tout juste pour voir où se cache le désagrément.

Cordialement,

Guy



Hors Ligne
Rapport   Haut 

Re: Créer et Utiliser des listes de choix successives
#19
Régulier XLPages

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 09-10-2009 01h13
Forcément, quand on a la chance de vivre dans ce pays ! ...
Au fait, c'est laquelle cette baie, parceque vous en avez un tel paquet là-bas ....

Bon, l'évènement est simple :
J'ouvre le fichier "PourGmarin2.xls" qui s'ouvre sur la feuil2, le focus sur la cellule M19.
Mon pemier clic simple est pour la cellule A19, la lettre "R".
Et j'ai instantanément le message d'erreur.
Je valide par "OK", le message disparait, et après, je peux user la souris à la faire rougir, rien ne se passe plus, rien ne s'affiche, quelle que soit la lettre choisie.
Le message ne réapparait que si je referme et réouvre le fichier.
Hors Ligne
Rapport   Haut 

Re: Créer et Utiliser des listes de choix successives
#20
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 09-10-2009 01h19
Oh!

Le code est actif ou bien le classeur ouvre sans autorisation du code?
Le classeur ouvre en mode normal ou en mode création?

Pour la suite, y faut que je réchiflisse.

Guy

P.S. Coudonc, quelle heure est-il dans ton patelin? Ici il est 19:19h.
P.P.S. C'est la baie des Chaleurs, j'te raconte pas, y'a des jeunots dans les entours.

Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes