Forums XLPages

Tous les messages (gmarin)

« 1 2 3 4 5 »
Re: Créer et Utiliser des listes de choix successives
#21
Régulier XLPages

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 15-10-2009 20h07
Bonsoir Didier,

Désolé :
Message : erreur d'exécution 75 -  chemin d'accès introuvable
ligne surlignée en jaune dans "Sub SuivreLien(L as LOng) : Set picImage = LoadPicture(strURL).

Une des causes citées dans l'aide proposée est une erreur entre chemin relatif et absolu
En regardant les liens hypertexte, ceux-ci sont en chemin relatif.
Le fichier excel et le répertoire des photos étant dans le même chemin.
J'ai déplace mon répertoire photos dans une autre unité.
J'ai mis le chemin absolu sur une série de liens.

Là, çà fonctionne très bien.

Mais, je ne peux pas laisser ce répertoire déplacé, il doit être à côté du fichier excel.
Hors Ligne
Rapport   Haut 

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

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 15-10-2009 00h05
Désolé, je sais plus tellement où j'en suis sur ce module.
Je vais donc essayer de le modifier avec cette dernière proposition.

Hors Ligne
Rapport   Haut 

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

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 14-10-2009 23h34
Option Explicit

' 2pme, 9 octobre 2009
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Dim shaImage As Shape


'---------------------------------------------------------------------------------------
' Auteur    : Didier FOURGEOT (myDearFriend!)  -  www.mdf-xlpages.com
' Date      : 07/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)

  Dim strExt As String
  Dim strtabBidon() As String
  Dim strURL As String
  Dim lngH As Long
  Dim lngL As Long
 
   
    strURL = Feuil1.Cells(L + 2, 6).Hyperlinks(1).Address
    strtabBidon = Split(strURL, ".")
    strExt = strtabBidon(UBound(strtabBidon))
   
    If TelechargerImage(strURL, DossierTempo & "Image." & strExt, lngH, lngL) Then
     
      On Error Resume Next
      shaImage.Delete
      On Error GoTo 0
     
      ' Modifier les param�tre Top, Left, Height et Width au besoin.
      Set shaImage = Feuil2.Shapes.AddPicture(DossierTempo & "Image." & strExt, msoTrue, msoFalse, 220, 100, lngL, lngH)
      With shaImage
      .LockAspectRatio = msoTrue ' Assure une taille proportionnelle
          .Height = 400 ' Unit� : point.  J'ai mis 200 au pifom�tre. Tu peux ajuster selon ta pr�f�rence.
     
      End With
    Else
   
      '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
         
      ' 2pme, 9 octobre 2009
      ' Supprimer le commentaire d'une des deux m�thode pour le cas o� l'image ne serait pas t�l�charg�e correctement
     
         
      '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 If
   
End Sub

' 2pme, 9 octobre 2009
Function DossierTempo() As String

  DossierTempo = Environ("Temp") & "\"
  ' Autre possibilit�
'  DossierTempo = ThisWorkbook.Path & "\"

End Function

' 2pme, 9 octobre 2009
Function TelechargerImage(URL As String, FichierLocal As String, Hauteur As Long, Largeur As Long) As Boolean
 
  Dim picImage As StdPicture
 
  If URLDownloadToFile(0, URL, FichierLocal, 0, 0) = 0 Then
   
    Set picImage = LoadPicture(FichierLocal)
    Hauteur = picImage.Height / 100 ' Donn�e au format HMETRIC � transformer en point. Donne de bons r�sultats tel quel pour l'heure
                                    ' � peaufiner.
    Largeur = picImage.Width / 100
    TelechargerImage = True
   
  Else
 
    TelechargerImage = False
   
  End If
 
End Function
Actuellement, c'est ce que j'ai.
Hors Ligne
Rapport   Haut 

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

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 14-10-2009 21h50
Mes liens sont bien sûr modifiés vers le répertoire local. (file:///.....
Si je les teste dans la feuille 1, les liens s'ouvrent bien dans Internet Explorer.
Si je les scrute par la feuille2, les menus se déploient normalement, mais aucun affichage n'arrive.
Hors Ligne
Rapport   Haut 

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

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 14-10-2009 20h59
Citation :
Guy a écrit : Je ne crois pas que ce soit nécessaire finalement.

Est-ce que tu prévois utiliser des fichiers locaux et des fichiers web simultanément?

Guy

Uniquement fichiers locaux ...

Hors Ligne
Rapport   Haut 

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

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 14-10-2009 20h39
Le téléchargement étant limité à 80ko, je ne peux pas envoyer l'exemple avec son répertoire "photos".
Mais je peux le mettre sur Megaupload ou autre.
Selon votre volonté ! 
Hors Ligne
Rapport   Haut 

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

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 14-10-2009 20h06
Oui Didier,

Pour moi, "Hyperlink" que ce soit http:// ou File:/// je ne voyais pas de différence, c'est un hyperlien...
Bon, pour mon exemple, je présente mes excuses, je travaille sur un sujet que je ne tiens pas à voir publier tant qu'il n'est pas finalisé, et créér un exemple idoine n'est pas facile, surtout pour un débutant en Excel.
Je modifie l'exemple en conséquence, et je le reposte dans la foulée.
Désolé pour ces problèmes supplémentaires nécessitant, c'est vrai, plus de temps que nécessaire à la réflexion.

Gmarin
Hors Ligne
Rapport   Haut 

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

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

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

Bon, heureusement que je ne l'ai pas encore fait !
Je suis en cours de transposer l'exemple dans mon projet, et je m'aperçois que celà ne fonctionne pas !
Parce que, je n'utilise pas des "URL" sur internet, mais des fichiers locaux (répertoire sur le disque dur) donc des "File:///C:......" ( j'ai essayé de mettre une URL à un lien précis, et çà marche, donc c'est bien çà).

Donc, je pense qu'il y a modification certainement , mais où ?


Hors Ligne
Rapport   Haut 

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

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 14-10-2009 18h02
Splendide !
J'en rêvais, Guy l'a fait ...... (grâce au Forum, merci le Forum)

Bon, il me reste à remercier Guy, Didier, tout le monde, et rendez-vous à mon prochain projet Excel !

Gmarin.
Hors Ligne
Rapport   Haut 

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

Inscription: 05/10/2009
De 33210-Gironde

Messages: 49

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 14-10-2009 07h41
Bonjour le Forum et bonjour Guy,

Ta solution avec l'image intégrée me convient à merveille.
J'ai réglé les coordonnées de l'image dans la feuille, et ce que j'aimerais malgré tout, c'est la taille fixe.

Je m'explique plus :

Dans mon exemple la Citroen C3 présente une petite image, alors que la renault Megane remplirait le classeur !
Comment fixer la taille de la fenêtre ?
On peut éditer la "taille" (clic droit sur la fenêtre), mais cela ne vaut que pour l'image présente, les valeurs doivent être revues à chaque fois.
Ce que je souhaite, c'est la taille de la fenêtre fixe, avec l'image proportionnellemnt à sa taille d'origine.

La quadrature du cercle, en somme !
Bonne journée !

Hors Ligne
Rapport   Haut 

« 1 2 3 4 5 »