Lien hypertxte vers modéle *.xlt

Y compris Power BI, Power Query et toute autre question en lien avec Excel
L
Lexan
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 8 octobre 2012
Version d'Excel : 2002

Message par Lexan » 8 octobre 2012, 10:39

Bonjour,

Sous une feuille excel 2003 je souhaite cataloguer tout mes modèles de document (excel et word) et pouvoir y accéder par un lien hypertexte.
Le problème est que le lien hypertexte pointant vers un fichier *.xlt ou *.dot, ouvre le modèle lui-même et non un fichier copie du modèle à "enregistrer sous".
Avez-vous peut-être la solution, je me casse la tête depuis une semaine sur ce problème !
Merci
Avatar du membre
lermite
Membre impliqué
Membre impliqué
Messages : 1'583
Appréciation reçue : 1
Inscrit le : 5 février 2012
Version d'Excel : 2000/2007FR

Message par lermite » 8 octobre 2012, 12:36

Bonjour,
Ton lien ne doit pas pointer sur le xlt ou dot mais sur le résultat enregistrer sous xls ou doc.
A+

Et peut-être que c'est ce que tu cherche ?
Sub LireFichier()
Dim Obj, RepP, Fich, TB, F
Dim Rep As String, i As Integer
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Show
        On Error Resume Next 'si annuler
       Rep = .SelectedItems(1)
        If Err.Number <> 0 Then Exit Sub
    End With
    Rep = Rep & "\"
    Set Obj = CreateObject("Scripting.FileSystemObject")
    Set RepP = Obj.Getfolder(Rep)
    Set Fich = RepP.Files
    With ActiveSheet
        i = 2 'première ligne où commencer
       On Error Resume Next 'si pas d'extension
       For Each F In Fich
            TB = Split(F.Name, ".")
            .Cells(i, "A") = TB(0)
            .Cells(i, "B") = TB(1)
             'Et éventuellement un lien HyperText pour appeler le fichier
           .Hyperlinks.Add Anchor:=.Cells(i, "C"), Address:= _
               Rep &  F.Name, TextToDisplay:=TB(0)
            i = i + 1
        Next F
    End With
    Set Obj = Nothing
    Set RepP = Nothing
    Set Fich = Nothing
End Sub
Tout problème a une solution, le vrai problème... c'est de la trouver.
L
Lexan
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 8 octobre 2012
Version d'Excel : 2002

Message par Lexan » 8 octobre 2012, 13:08

Merci Lermite pour ta proposition, malheureusement ton code ne convient pas à ce que je souhaite faire.
Ma feuille excel avec tous les liens de document (*.xlt ou *.dot) sera utilisée comme un répertoire pour une quinzaine de personne.
Ces documents en question sont disséminés sur un vaste réseau. Donc pour éviter de gaspiller du temps à chercher le document en question dans toute l'arborescence du réseau j'utilise cette feuille excel comme répertoire.
Mais je ne veux pas que les utilisateurs modifient les fichiers modèles... c'est là que le problème est !
1)) Lorsque tu double-cliques sur un fichier XLT, excel génére une copie automatiquement de ce document.
2)) Si tu clique-droit sur le fichier XLT et que tu choisis "Ouvrir", là par contre tu ouvre le document original et tu peux modifier le modèle.
Le lien hypertexte agit l'index 2, alors que je souhaiterai qu'il fasse comme le 1.
Je suis complétement bloqué !
Avatar du membre
lermite
Membre impliqué
Membre impliqué
Messages : 1'583
Appréciation reçue : 1
Inscrit le : 5 février 2012
Version d'Excel : 2000/2007FR

Message par lermite » 8 octobre 2012, 13:59

Par lien ce ne sera pas possible mais par macro oui.
Tu dois avoir le chemin complet des modèles comme pour un lien, quitte à les mettre dans une colonne cachée et avoir une colonne avec uniquement le nom du modèle.
Supposons les noms en colonne A et les chemins en colonne B
DoubleClic sur le nom du modèle avec le code ci-dessous.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    If Not Intersect(Target, Columns(1)) Is Nothing And Target <> "" And Target.Count = 1 Then
        Workbooks.Open Filename:=Target.Offset(0, 1).Value, Editable:=False
    End If
End Sub
Evidemment faire une variante si c'est un dot et ouvrir un document.
A+
si le double clic te conviens pas tu peu aussi le metre dans
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Columns(1)) Is Nothing And Target <> "" And Target.Count = 1 Then
        Workbooks.Open Filename:=Target.Offset(0, 1).Value, Editable:=False
    End If
End Sub
Tout problème a une solution, le vrai problème... c'est de la trouver.
L
Lexan
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 8 octobre 2012
Version d'Excel : 2002

Message par Lexan » 8 octobre 2012, 14:32

Super...
Ta solution me plait bien avec le double clic, mais n'étant pas un grand utilisateur d'Excel, je ne vois pas comment l'intégrer !
Dois-je insérer un bouton avec la macro ?
Et comment faire avec la deuxième solution ?
Merci
Avatar du membre
lermite
Membre impliqué
Membre impliqué
Messages : 1'583
Appréciation reçue : 1
Inscrit le : 5 février 2012
Version d'Excel : 2000/2007FR

Message par lermite » 8 octobre 2012, 14:42

Clic droit sur l'onglet de la feuille ->> Visualiser le code.
Dans la feuille visible sur l'IDE (éditeur VBA) tu colle le code.
C'est tout.
Avec cette solution le modèle sera ouvert dans la même instance d'Excel que le classeur avec tes liens mais ont peu y remédier.
Test déjà comme ça et si ça te convient je verrais pour la suite.
EDIT :
Tu copie la solution qui te convient, double-clic ou clic MAIS PAS LES DEUX
Tout problème a une solution, le vrai problème... c'est de la trouver.
L
Lexan
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 8 octobre 2012
Version d'Excel : 2002

Message par Lexan » 8 octobre 2012, 15:00

MERCI !!!!!!!!!!!!
J'ai testé et j'adopte immédiatement.... le fichier s'ouvre avec un nouveau nom, donc pas de risque d'écraser le modèle !
Merci encore !
Avatar du membre
lermite
Membre impliqué
Membre impliqué
Messages : 1'583
Appréciation reçue : 1
Inscrit le : 5 février 2012
Version d'Excel : 2000/2007FR

Message par lermite » 8 octobre 2012, 15:10

OK, je vois pour une solution définitive mais plus beaucoup de temps dans l’immédiat, ce soir ou demain ou un autre intervenant ?
A+
Tout problème a une solution, le vrai problème... c'est de la trouver.
Avatar du membre
lermite
Membre impliqué
Membre impliqué
Messages : 1'583
Appréciation reçue : 1
Inscrit le : 5 février 2012
Version d'Excel : 2000/2007FR

Message par lermite » 8 octobre 2012, 17:04

Pour Word c'est beaucoup, beaucoup plus compliquer (je trouve pas l'équivalent à Excel) mais j'ai une autre idée.
Tes modèles sont tous dans un même répertoire ?
Note, je peu ouvrir un modèle, empêché qu'ont le modifie, mais il n'est pas ouvert avec le nom de "Document" comme quand ont double-clic sur le modèle.
Tout problème a une solution, le vrai problème... c'est de la trouver.
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'701
Appréciations reçues : 701
Inscrit le : 27 août 2012
Version d'Excel : 365 Personnel

Message par Jean-Eric » 9 octobre 2012, 05:08

Bonjour,
Une information peut-être utile pour vous pour savoir si votre réseau est configuré pour accepter le stockage de modèles :
Public Sub CheminRéseauModèles()
    MsgBox Application.NetworkTemplatesPath
End Sub
Si le message est vide, pas de configuration.
Il faut alors voir son administrateur réseau pour une configuration (lui expliquer que l'on désire partager des modèles sur le réseau).
Il n'est alors plus nécessaire de créer un classeur répertoire. Ces modèles apparaissent dans Excel, Nouveau document, etc...)
Cdlt.
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message