Forums XLPages

Tous les messages (gmarin)

« 1 2 3 4 5
Re: Créer et Utiliser des listes de choix successives
#41
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
#42
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
#43
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
#44
Régulier XLPages

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 07-10-2009 07h41
Bonjour MyDearFriend,

J'ai essayé d'adapter la solution proposée à mon projet (qui diffère de l'exemple), et j'ai besoin d'éclaircissements.
Les colonnes des données ne sont pas adjacentes, et la ligne de départ n'est pas la 1, mais la 2.
J'ai joint l'exemple.
Donc, il va falloir que je change certainement des valeurs dans la ligne L=.Cells(.Rows.Count, "2" puisqu'on est en ligne 2.
il va falloir aussi que je change certainement des valeurs dans la ligne "TabTemp=" et là je cale !
la méthode "union" ne semble pas convenir ....
Ainsi que modifier dans "Sub SuivreLien", Cells(L+1, 1) puisque la colonne portant le lien est en 6 donc je pense (L+2, 6).
J'avais fait une erreur dans l'exemple originel, la colonne lieu n'a pas le lien, c'est uniquement la colonne modèle (colonne 6, maintenant, au lieu de la 3 précédement)

Question supplémentaire : les liens hypertexte peuvent-ils être affichés directement dans la feuille Excel, plutôt que dans l'IExplorer ?










Pièce jointe:
zip PourGmarin.zip   [ Taille: 30.07 Ko - Téléchargements: 657 ]
Edité par gmarin le 07/10/2009 18:58:15
Hors Ligne
Rapport   Haut 

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

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 07-10-2009 01h26
Citation :
myDearFriend! a écrit : Bonsoir Gmarin, Guy, le Forum,

Ci-joint une autre façon de faire, mais toujours à base de PopUp CommandBars comme toi Guy

Dans le fichier en pièce jointe, j'ai appliqué le code suivant :

DANS LE MODULE DE CODE DE LA FEUILLE 2

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Columns(1)) Is Nothing Then
        AffichMenuD Target(1).Text
    End If
End Sub

DANS UN MODULE DE CODE STANDARD
(exemple : Module1)
'----------------------------------------
' myDearFriend!  -  www.mdf-xlpages.com
'----------------------------------------
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
    With Sheets("Feuil1")
        L = .Cells(.Rows.Count, 1).End(xlUp).Row
        TabTemp = .Range(.Cells(2, 1), .Cells(L, 3)).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, 2)) Like T & "*" Then
            '1er niveau du menu
            Set M = ElmtMenu(TabTemp(L, 2), CB, True)
            '2ème niveau du menu
            Set M1 = ElmtMenu(TabTemp(L, 3), M, True)
            '3ème niveau du menu
            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)
    ThisWorkbook.FollowHyperlink Sheets("Feuil1").Cells(L + 1, 1).Hyperlinks(1).Address
End Sub

Un paramètre à ne pas négliger toutefois : si la liste des éléments est vraiment longue, il faudra s'attendre à un léger délai avant affichage du menu déroulant lors du clic dans la cellule.

Cordialement,

Nb: je déplace ce fil qui ne s'adresse pas vraiment au débutant, dans le forum Principal Excel.

Epatant, c'est exactement le résultat que j'escomptait.
Je vais m'attacher à l'analyser pour bien comprendre, et essayer de l'adapter à mon projet réel .
Je remercie Guy pour son attention, et je garde néanmoins son exemple.

Gmarin

Hors Ligne
Rapport   Haut 

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

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 07-10-2009 01h15
Citation :
Guy a écrit : Bonjour,

Pas de surprise.
As-tu essayé : Pour réinitialiser le menu : exécuter la procédure ValiderStructure() du module modNoyau.

Le tableau en feuil1 (renommé au niveau du code comme feuilBoutons) est dynamique, il peut contenir autant de lignes que tu le souhaites.

Tu n'as pas à créer quoi que ce soit, seulement efface les ligne sous les en-têtes (Niveau, Marque, Lien) en ligne 2 (Laisse la ligne qui porte Niveau: 1 Marque : Marques "")  et place les informations qui concernent ton truc sous cette ligne (en ligne 3).

Examine le menu résultant et par exemple si tu as N marques, il doit y avoir N niveaux 2.
Pour chaque Niveau 2 il y aura autant de Niveau 3 que de modèles de la marque.

Exemple :
Niveau  Marque Lien
2          GM  
3          Modèle1 http:// truc.chose
3          Modele 2 http.....
3         .....
2         VolksWagen
3         Rabbit http://...
3         Passat
3         ....
2         Chrysler
3         Modèle1 ....
3         Modèle2 .....
etc
 
La chose à retenir : les Marques ont le no. de niveau 2, les modèles le no. de niveau 3
C'est tout.

Une fois saisies les marques, les modèles et les liens, exécute la procédure citée : ValiderStructure()

Guy


Ok, çà fonctionne bien. Et çà me conviendrait bien ....
Mais il faut donc que je réécrive mes données présentes à gauche dans mes colonnes "lieu", "marque", "modèle" sous une autre forme, dans les 3 colonnes que tu as disposées à droite : "niveau", "marque" et "lien" ...... et comme dit dans ma 1° réponse, les 3 colonnes que j'ai présenté ne sont qu'un exemple, en réalité elles sont une partie de 24 colonnes d'un tableau renseignant d'autres données, avec déjà plus de 250 lignes ....
Ou alors, je ne comprends pas, mais les données à gauche ne vont pas aller seules depuis mes colonnes vers celles de droite !
Rassures-moi.

Gmarin

Hors Ligne
Rapport   Haut 

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

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 06-10-2009 19h10
Bonjour Guy,

Merci pour ton aide.
Si je comprends à peu près, il faut que je crée les 3 colonnes "niveau", marque", "lien" à côté de mon tableau initial, et que je renseigne ces colonnes ? C'est bien çà ?
Petit soucis, quand je clique (droit) sur B1, j'ai un message d'erreur : Erreur d'exécution 5, argument ou appel de procédure incorrect.
Comment réparer ?

Autre inquiétude :
Ici, il s'agit d'un exemple "léger" de mon tableau.
En réalité, les données "marque" modèle" et "lieu" sont dans un tableau où il y a 24 colonnes (autres données qui ne sont pas destinées à cet usage) et malgré que je n'en soie qu'au début, j'ai déjà plus de 265 modèles (autant de liens hypertexte) pour une vingtaine de marques, sur 45 lieux différents.
Et çà va augmenter ......
Si je dois renseigner un tableau parallele .....
Bon, s'il faut ....
Hors Ligne
Rapport   Haut 

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

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 06-10-2009 00h39
Merci, j'ai pris bonne note pour les pièces-jointes futures.
Hors Ligne
Rapport   Haut 

Créer et Utiliser des listes de choix successives
#49
Régulier XLPages

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 05-10-2009 23h40
Bonjour,

A peine inscrit sur votre forum, et déjà en train de poster pour un problème que je ne maîtrise pas ...
j'espère qu'il ne m'en sera pas tenu rigueur ..

Voilà une mini-base de données, que je ne veux pas laisser exploiter par un tiers sous sa forme "excelienne" ... brute sur la feuille1, mais par le biais de listes de choix en cascades sur la feuille2, extrayant leurs données de la  feuille1.

voici le lien de l'exemple.
LIEN SUPPRIME PAR LE WEBMASTER (voir le fichier joint dans le post suivant)

Merci à l'avance, aux personnes qui voudront bien m'aiguiller vers une méthode à utiliser pour réaliser ce que je ne comprends pas encore.

Edité par myDearFriend! le 06/10/2009 00:16:00
Hors Ligne
Rapport   Haut 

« 1 2 3 4 5