Résolu XL 2016 Bonsoir, je suis à la recherche d'un code qui me permettrait d'ouvrir un chemin reseau et de me renvoyer le lien hypertext sur le texte de la cellule.

christ77000

XLDnaute Junior
Bonsoir, je suis à la recherche d'un code qui me permettrait d'ouvrir un chemin reseau et de me renvoyer le lien hypertext sur le texte de la cellule.

Chemin réseau en C1 de ma feuille "GC-2020"
..\..\Accidents%20&%20analyse%205%20pourquoi%20et%20arbres%20des%20causes\2020\

Donnée dans cellule C17:C57

exemple en C17 j'ai le mot "toto" je double clic dans la cellule et j'ai l'ouverture du chemin reseau dans l'explorer. je selectionne le fichier et il me renvoie sur le mot toto le lien hyperlink du fichier.

Merci pour votre aide.
 
Ce fil a été résolu! Aller à la solution…

christ77000

XLDnaute Junior
Re, j'ai trouvé un code ou je dois mettre le nom du fichier d'un répertoire donné et il l'ouvre, mais cela ne correspond pas a mes besoins

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim Chemin As String, Sous_Dossier As String, Derlig As Long
    
    Derlig = Range("A" & Rows.Count).End(xlUp).Row
    'test si click sur plage de cellules avec le nom des sous-dossiers
  If Not Application.Intersect(Target, Range("A2:A" & Derlig)) Is Nothing And Target <> Empty And Target.Count = 1 Then
        Chemin = "c:\Users\toto\Desktop\"
        'sous-dossier a ouvrir
        Sous_Dossier = Target
        'commande Shell pour ouvrir le sous-dossier
        Shell "C:\windows\explorer.exe " & Chemin & Sous_Dossier, vbMaximizedFocus
    End If
End Sub
 

christ77000

XLDnaute Junior
Bonsoir à tous je re formule ma demande

En faite je travail sur un fichier ou tout le monde renseigne en C17 un mot ou un résumé de ca fiche de poste.
C'est rapport électronique journalier. Exemple en C17 la personne marque "RAS sur mon poste" ca fiche de poste est dans un répertoire du réseau, en suite il fait manuellement un lien hypertexte de façon classique vers sa fiche situé sur le fameux chemin réseau.
Mais tout le monde ne c'est pas utiliser Excel et encore moins retrouver sa fiche sur le réseau. Donc d'où ma demande de double clic en C17 avec le lien réseau situé en C1 ouvre l'explorateur de fichier, l'utilisateur clic en suite sur ca fiche et le lien hypertexte se créer en automatique sur "RAS sur mon poste" en C17. Et nous rentrons nos donnés de C17 à C57. J'espère avoir été plus claire
. Merci.
 

christ77000

XLDnaute Junior
Bonjour à tous,
j'ai enfin trouvé un code qui correspond a ma demande.
Alors ma demande est ce que je peux modifier se code pour qu'il puisse en :
1) s'activer sur un double clic dans les cellules de C17 à C57
2) avoir le lien c:\Users\Accidents & analyse 5 pourquoi et arbres des causes\ comme répertoie de départ. Merci pour vote aide

VB:
Sub Ouverture()
    fichier = Application.GetOpenFilename()
    If fichier <> False Then
      Else: MsgBox "Opération annulée ", vbOKOnly, "Confirmation": End
    End If
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="file://" & fichier
End Sub
 

christ77000

XLDnaute Junior
J'ai trouvé pour le double clic, il me reste juste à ouvrir sur le bon répertoire.

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("C18:C57")) Is Nothing Then
fichier = Application.GetOpenFilename()
    If fichier <> False Then
    'MsgBox "Insertion du fichier " & fichier, vbOKOnly, "Confirmation"
    Else: MsgBox "Opération annulée ", vbOKOnly, "Confirmation": End
    End If
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="file://" & fichier
End If

End Sub
 

christ77000

XLDnaute Junior
Bonsoir, soit je n'ai rien compris au fonctionnement de ce site ou je manque de politesse se dont je doute. POURQUOI n'y a t'il aucunes réponses, si mes demandes sont mal formulées il suffit de me le dire. Si je suis ici c'est parce ce que je veux apprendre et pour apprendre il faut de l'aide. Rien ne s'invente. Au moins si quelqu'un avait la gentillesse de me dire se que je ne respecte pas...
 

job75

XLDnaute Barbatruc
Bonsoir christ77000,

Vous n'avez pas de réponse parce que vous avez écrit ceci au post #1 :
exemple en C17 j'ai le mot "toto" je double clic dans la cellule et j'ai l'ouverture du chemin reseau dans l'explorer. je selectionne le fichier et il me renvoie sur le mot toto le lien hyperlink du fichier.
Il est contradictoire d'avoir "toto" en C17 et en même temps d'aller choisir un fichier pour mettre un lien dans cette cellule.

A+
 

christ77000

XLDnaute Junior
bonsoir et merci d'avoir fait l'effort de me répondre. Sur Excel dans une cellule je prends un texte et je fais un lien HyperText sur le mot. Je ne comprend pas le contradictoire. Et quand bien même se serais le cas il suffisait de me le dire, tout simplement.
 

job75

XLDnaute Barbatruc
Et quand bien même se serais le cas il suffisait de me le dire, tout simplement.
Je l'ai dit... Mais sachez que pour vous répondre il fallait être compétent et que beaucoup de gens compétents ne veulent pas se fatiguer sur des questions qui n'ont pas de sens.

Il faut soigner les questions que l'on pose.
 

christ77000

XLDnaute Junior
oui ok pour ca. mais l'apprentissage c'est ca aussi. il faut savoir aussi se remettre au niveau de celui qui débute. un gamin qui debute dans la lecture et l'écriture a des problèmes de compréhension et alors c'est a nous adultes de l'aider. et bien je suis cette enfant qui apprend
 

christ77000

XLDnaute Junior
Si je prend une cellule x dans lequel je marque toto et que clic sur le bouton droit et que je sélectionne lien HyperText je fais bien un lien !! sur un fichier ou autres donc ma question était comment faire la même chose avec une macro en faisant un double clic dans cette même cellule pour ouvrir l'explorer et une fois choisi le fichier créer le lien. Et dont le chemin d'accès au fichier serait en C1. Dans mon travail certains on encore plus de mal que moi a utiliser Excel. donc je voulais simplifier la manipe du lien hypertexte. voila
 

christ77000

XLDnaute Junior
Bonjour, j'ai bricoler ce code. j'ai bien le double clic dans les bonnes cellules. J'ai bien l'ouverture de l'explorer et sur le bon répertoire mais je n'ai plus les liens. Pourriez vous m'aider pour ce qui ne va pas. Merci pour votre aide.

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim MonDossier As String

If Not Application.Intersect(Target, Range("C18:C57")) Is Nothing Then

MonDossier = "L:\1. Sécurité & Environnement\Accidents & analyse 5 pourquoi et arbres des causes\2020" '<-- adaptez le nom du Dossier

If Len(Dir(MonDossier, vbDirectory)) > 0 Then '---vérifie si le dossier existe---
   Shell Environ("WINDIR") & "\explorer.exe " & MonDossier, vbNormalFocus

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="file://" & fichier
End If
End If


'End If


'ChDir "L:\1. Sécurité & Environnement\Accidents & analyse 5 pourquoi et arbres des causes\2020\"
'ChDir "c:\Users\Christophe\Desktop\" '---chemin d'accès aux fichiers à la maison---

'If Not Application.Intersect(Target, Range("C18:C57")) Is Nothing Then

    'fichier = Application.GetOpenFilename()
    'If fichier <> False Then
    'MsgBox "Insertion du fichier " & fichier, vbOKOnly, "Confirmation"
    'Else: MsgBox "Création du lien annulé", vbOKOnly, "Confirmation": End
    'End If
    'ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="file://" & fichier


End Sub
 

BrunoM45

XLDnaute Barbatruc
Bonjour Christ77000

Si j'ai bien tout compris (pas simple) voici le code
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Dim MonDossier As String, MonFichier As String
  If Not Application.Intersect(Target, Range("C18:C57")) Is Nothing Then
    MonDossier = "L:\1. Sécurité & Environnement\Accidents & analyse 5 pourquoi et arbres des causes\2020" '<-- adaptez le nom du Dossier
    ' Vérifier l'anti-skash de fin
    If Right(MonDossier, 1) <> "\" Then MonDossier = MonDossier & "\"
    ' Vérifier l'existence du dossier, quoi que pas forcément nécessaire
    If Len(Dir(MonDossier, vbDirectory)) > 0 Then
      MonFichier = ChoixFichier(MonDossier, "CHOIX du FICHIER", "*.*,*.*")
      ' S'il s'agit d'un lecteur réseau, inutile de mettre "file://"
      ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=MonDossier & "\" & MonFichier, TextToDisplay:=Selection.Value
    End If
  End If
End Sub

Function ChoixFichier(DefaultPath As String, sTitre As String, Optional sFilter As String)
  ' LE filtre doit être du type : "BdD Communes (*.xlsx), *.xlsx"
  Dim fd As FileDialog, TabFilter() As String
  ' Initialiser les variables
  If Right(DefaultPath, 1) <> "\" Then DefaultPath = DefaultPath & "\"
  ' Initialiser l'intance du dialogue
  Set fd = Application.FileDialog(msoFileDialogFilePicker)
  With fd
    .Filters.Clear
    ' Si un filtre a été donné
    If sFilter <> "" Then
      TabFilter = Split(sFilter, ",")
      .Filters.Add TabFilter(0), Trim(TabFilter(1))
    End If
    .Title = sTitre
    .InitialFileName = DefaultPath & TabFilter(0)
    If .Show = -1 Then
      ChoixFichier = fd.SelectedItems(1)
    End If
  End With
  Set fd = Nothing
End Function
A+
 

christ77000

XLDnaute Junior
Bonsoir et merci pour votre aide, je pense que le code ne fonctionne pas correctement. quand je quitte par la croix sur l'explorer il me renvoie le lien hypertext de l'accès au repertoire "L:\1. Sécurité & Environnement\Accidents & analyse 5 pourquoi et arbres des causes\2020" sans rien d'autre. Si je fais annuler il me dit erreur d'exécution 5 et argument ou appel de procédure incorrect.
Et plus tard dans la nuit je me suis rendu compte que les liens ne fonctionnent pas. ils sont doublés. cela marque deux fois L:\1. Sécurité & Environnement\Accidents & analyse 5 pourquoi et arbres des causes\2020\L:\1. Sécurité & Environnement\Accidents & analyse 5 pourquoi et arbres des causes\2020\test\test.xls et 1 fois le nom du fichier sans le .xls et le deuxième, ok.
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour christ77000, BrunoM45,

Puisque l'on connaît le nom du fichier et son chemin d'accès inutile d'ouvrir une boîte de dialogue.

Téléchargez les fichiers joints dans le même dossier et voyez cette macro dans Classeur(1).xlsm :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [C18:C57]) Is Nothing Then Exit Sub
Dim chemin$, fichier$
Cancel = True
chemin = ThisWorkbook.Path & "\" 'dossier à adapter
Target(1, 2).Clear 'RAZ
fichier = Dir(chemin & Target & ".xls*")
If fichier <> "" Then Target(1, 2).Hyperlinks.Add Target(1, 2), chemin & fichier, TextToDisplay:=fichier
End Sub
Le lien hypertexte est créé en colonne D.

Bonne journée.
 

Fichiers joints

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas