Ouverture des liens hypertext par un doucle-clic au lieu du simple clic

Gci

XLDnaute Nouveau
Bonjour à tout le Forum

A ma connaissance, rien n'est prévu dans les options pour paramétrer l'ouverture des liens hypertexte.

Est-il possible par un lien détourné de pouvoir remplacer le simple clic par un double clic
Car c'est très désagréable d'ouvrir ce lien hypertexte lorsque que l'on juste besoin de sélectionner la cellule !

Merci

A+
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Ouverture des liens hypertext par un doucle-clic au lieu du simple clic

Bonsjour Gci, bonjour le forum,

En maintenant la touche [Ctrl] enfoncée tu peux sélectionner une cellule contenant un lien (Excel 2010)...
 

Gci

XLDnaute Nouveau
Re : Ouverture des liens hypertext par un doucle-clic au lieu du simple clic

Bonjour Robert et Job75

Merci pour vos réponses
Cela fonctionne bien aussi sur 2007
Ce n'est pas vraiment ce que j'espérais
A voir vos réponses, j'imagine qu'il n'y a pas d'autres solutions ?

A+
 

job75

XLDnaute Barbatruc
Re : Ouverture des liens hypertext par un doucle-clic au lieu du simple clic

Re,

Ce n'est pas vraiment ce que j'espérais
A voir vos réponses, j'imagine qu'il n'y a pas d'autres solutions ?

Bah ce qu'on vous a indiqué c'est le plus simple et le plus logique.

Maintenant si vous tenez absolument au double-clic supprimez les liens hypertextes.

Et mettez cette macro dans le code de la feuille :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
ThisWorkbook.FollowHyperlink Target
If Err = 0 Then Cancel = True
End Sub
Fichier joint.

A+
 

Pièces jointes

  • Lien par double-clic(1).xls
    34.5 KB · Affichages: 60

Gci

XLDnaute Nouveau
Re : Ouverture des liens hypertext par un doucle-clic au lieu du simple clic

Re,

Merci Job
Mais les cellules qui contiennent mes liens hypertexte vers des fichiers Word
Contiennent aussi des valeurs texte

Cela ne va donc pas être possible

A+
 

job75

XLDnaute Barbatruc
Re : Ouverture des liens hypertext par un doucle-clic au lieu du simple clic

Re,

Allons faut pas baisser les bras comme ça, en VBA il est rare qu'un problème soit insoluble.

Mettre dans la cellule le chemin d'accès du fichier Word comme C:\MonDossier\MonDocument.docx.

Voici une macro un peu plus élaborée pour 3 types de liens :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If InStr(Target, "/") + InStr(Target, "\") Then
  Cancel = True
   ThisWorkbook.FollowHyperlink Target
ElseIf Left(Target, 1) = "#" Then
  Cancel = True
  Application.Goto Evaluate(Mid(Target, 2))
End If
End Sub
Fichier (2).

A+
 

Pièces jointes

  • Lien par double-clic(2).xls
    35 KB · Affichages: 56

job75

XLDnaute Barbatruc
Re : Ouverture des liens hypertext par un doucle-clic au lieu du simple clic

Re,

Et si dans la cellule vous ne voulez pas mettre l'adresse du lien, mettez-la par exemple dans un commentaire.

Et dans la macro remplacez Target par Target.Comment.Text.

A+
 

job75

XLDnaute Barbatruc
Re : Ouverture des liens hypertext par un doucle-clic au lieu du simple clic

Re,

Vous pouvez aussi stocker les adresses dans la colonne à droite (que vous masquerez).

Dans ce cas remplacez Target par Target.Offset(, 1) ou par Target(1, 2).

A+
 

Gci

XLDnaute Nouveau
Re : Ouverture des liens hypertext par un doucle-clic au lieu du simple clic

Bonsoir Job

Merci pour toutes ces solutions.

Comme mon tableau est très vaste et que je ne me vois pas modifier toute l'architecture de mon tableau
Problème de formules et de macros à modifier
Ta dernière solution
Dans ce cas remplacez Target par Target.Offset(, 1) ou par Target(1, 2).
Devrait être la meilleure, cela va me permettre de rajouter une colonne toute à droite de mon tableau
Le plus gros problème, c'est que cela va me prendre un temps fou, plus de 5000 lignes !
Mais je vais le faire progressivement.
A moins qu'une macro me permettrait de récupérer directement le lien hypertexte d'une colonne pour la transférer en format texte dans une autre colonne ??

A+
 

job75

XLDnaute Barbatruc
Re : Ouverture des liens hypertext par un doucle-clic au lieu du simple clic

Bonjour Gci,

Le plus gros problème, c'est que cela va me prendre un temps fou, plus de 5000 lignes !
Mais je vais le faire progressivement.
A moins qu'une macro me permettrait de récupérer directement le lien hypertexte d'une colonne pour la transférer en format texte dans une autre colonne ??

Bien sûr ça se fait avec une macro.

Mais il faudrait voir votre fichier (allégé mais significatif) pour savoir de quels types de liens il s'agit.

S'il s'agit uniquement de liens vers des fichiers inspirez-vous de ceci :

Code:
Sub TransfertLien()
Dim chemin$, h As Hyperlink
chemin = ThisWorkbook.Path & "\" 'pas forcément nécessaire
For Each h In [A:A].Hyperlinks 'si liens en colonne A
  h.Parent(1, 2) = chemin & h.Address
  h.Delete
Next
End Sub
Et bien sûr pour le double-clic :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If InStr(Target(1, 2), "\") Then
  Cancel = True
  ThisWorkbook.FollowHyperlink Target(1, 2)
End If
End Sub
A+
 
Dernière édition:

Gci

XLDnaute Nouveau
Re : Ouverture des liens hypertext par un doucle-clic au lieu du simple clic

Bonsoir Job75

Je n'ai pas compris toute la macro
Mais j'ai réalisé un tableau exemple très réduit
Mais avec la colonne B, là où sont environ 95% de mes liens hypertexte
Ces liens ouvrent dans la très grande majorité des fichiers Word
quelques fichiers Texte (TXT) et quelques fichiers Excel simples

Bien sûr les données doivent restées dans la colonne B
Ainsi que le Format
(Ce qui complique encore la chose, car quand on supprime un lien hypertexte on perd aussi le format de la cellule !)
Je ne suis pas sûr du tout que la conservation du format soit réalisable ???

Les nouveaux liens non hypertexte utilisables avec votre macro peuvent être placés dans la colonne "AK"
Le double-clic pour ouvrir ces liens lui se fera en colonne B.

Je vais continué d'analyser entre-temps votre macro

A+
 

Pièces jointes

  • Lien Hypertext.zip
    54.7 KB · Affichages: 29

job75

XLDnaute Barbatruc
Re : Ouverture des liens hypertext par un doucle-clic au lieu du simple clic

Bonjour Gci, le forum,

J'espère que vous avez fini d'analyser car vous allez avoir du pain sur la planche.

Mettez tout ça en Feuil1 du classeur Fichier Liens Hypertext :

Code:
Sub TransfertLien()
'Alt+F8 pour exécuter la macro
Transfert [B1:B25], 36 'à adapter
'autres colonnes de liens
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
DoubleClic [B1:B25], 36, Target, Cancel 'à adapter
'autres colonnes de liens
End Sub

Sub Transfert(Source As Range, col_dest%)
Dim h As Hyperlink
Application.ScreenUpdating = False
With Source
  .Copy
  .Columns(col_dest).PasteSpecial xlPasteFormats 'stockage des formats
  For Each h In .Hyperlinks
    h.Parent(1, col_dest) = h.Address
    h.Delete
  Next
  .Columns(col_dest).Copy
  .PasteSpecial xlPasteFormats 'restitution des formats
  .Cells(1).Select
End With
Application.CutCopyMode = False
End Sub

Sub DoubleClic(Source As Range, col_dest%, Target As Range, Cancel As Boolean)
If Intersect(Target, Source) Is Nothing Or Target(1, col_dest) = "" Then Exit Sub
Cancel = True
ThisWorkbook.FollowHyperlink Target(1, col_dest)
End Sub
Seules les plages de liens et les colonnes de destination des 2 premières macros sont à adapter.

J'utilise 2 macros paramétrées pour le cas où il y a plusieurs colonnes de liens.

Les formats sont stockés dans la même colonne (AK) que les adresses des liens.

A+
 

job75

XLDnaute Barbatruc
Re : Ouverture des liens hypertext par un doucle-clic au lieu du simple clic

Re,

Sur Excel 2003 j'ai testé la macro TransfertLien sur 6000 liens hypertextes.

Elle s'exécute en moins de 11 secondes, c'est acceptable puisque cette macro n'est exécutée qu'une fois.

A+
 

job75

XLDnaute Barbatruc
Re : Ouverture des liens hypertext par un doucle-clic au lieu du simple clic

Re,

Une autre solution qui utilise un tableau VBA (matrice) dans la macro Transfert :

Code:
Sub TransfertLien()
Transfert [B1:B25], 36 'à adapter
'autres colonnes
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
DoubleClic [B1:B25], 36, Target, Cancel 'à adapter
'autres colonnes
End Sub

Sub Transfert(Source As Range, col_dest#)
Dim t$(), i&
Application.ScreenUpdating = False
With Source
  .Copy
  .Columns(col_dest).PasteSpecial xlPasteFormats 'stockage des formats
  ReDim t(1 To Source.Count, 1 To 1) 'matrice, plus rapide
  For i = 1 To UBound(t)
    If Source(i).Hyperlinks.Count Then
      t(i, 1) = Source(i).Hyperlinks(1).Address
      Source(i).Hyperlinks(1).Delete
    End If
  Next
  .Columns(col_dest) = t
  .Columns(col_dest).Copy
  .PasteSpecial xlPasteFormats 'restitution des formats
  .Cells(1).Select
End With
Application.CutCopyMode = False
End Sub

Sub DoubleClic(Source As Range, col_dest#, Target As Range, Cancel As Boolean)
If Intersect(Source, Target) Is Nothing Or Target(1, col_dest) = "" Then Exit Sub
Cancel = True
ThisWorkbook.FollowHyperlink Target(1, col_dest)
End Sub
Sur 6000 liens la macro TransfertLien s'exécute en 2 secondes.

A+
 

Statistiques des forums

Discussions
312 412
Messages
2 088 196
Membres
103 763
dernier inscrit
p.michaux