Copie ou déplacement de liens hypertexte

Gedch

XLDnaute Occasionnel
Bonjour

Il y a beaucoup de possibilités de copies dans les options
Mais je ne vois rien qui concerne les liens hypertextes

Je n'ai rien trouvé sur le net non plus.

Cela serait étonnant que l'on puisse pas le faire
SI quelqu'un connait la solution ?

Merci d'avance
 

Gedch

XLDnaute Occasionnel
Re : Copie ou déplacement de liens hypertexte

Bonjour

Il y a beaucoup de possibilités de copies dans les options
Mais je ne vois rien qui concerne les liens hypertextes

Je n'ai rien trouvé sur le net non plus.

Cela serait étonnant que l'on puisse pas le faire
SI quelqu'un connait la solution ?

Merci d'avance
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Copie ou déplacement de liens hypertexte

Re,
Cela serait étonnant que l'on puisse pas le faire
SI quelqu'un connait la solution ?
Personnellement je ne la connaissais pas .......... mais je l'ai cherché

une solution par macro en pièce jointe

à+
Philippe
 

Pièces jointes

  • 111.xlsm
    18.1 KB · Affichages: 52
  • 111.xlsm
    18.1 KB · Affichages: 52
  • 111.xlsm
    18.1 KB · Affichages: 57

Gedch

XLDnaute Occasionnel
Re : Copie ou déplacement de liens hypertexte

Bonsoir
Merci pour ta nouvelle réponse

Je ne suis pas sûr de bien comprendre ?
Je ne vois pas de liens hypertexte dans ton exemple ?

J’ai donc décidé d’en faire un
Mais cela s’avère impossible, car on a plus accès au clic droit !

J’en ai donc fait un avant de valider ta macro.
Mais quand je valide ta macro, en suivant ta démarche
Le lien que j’ai créé ne se recopie pas ....

A Plus
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Copie ou déplacement de liens hypertexte

Re,
Je ne vois pas de liens hypertexte dans ton exemple ?
les liens hypertexte sont pourtant bien présents ( en colonne B)
et les codes "clic-droit" et "double-clic" fonctionnent sans problème

le même fichier en retour avec plus de précision dans les explications
il est nécessaire d'accepter les macros à l'ouverture du fichier

J’ai donc décidé d’en faire un
Mais cela s’avère impossible, car on a plus accès au clic droit !

J’en ai donc fait un avant de valider ta macro.
Mais quand je valide ta macro, en suivant ta démarche
Le lien que j’ai créé ne se recopie pas ....
............ avec ma boule de cristal qui est en panne et sans voir ce fichier,...:confused:........:confused:........:confused:
à+
Philippe
 

Pièces jointes

  • 111.xlsm
    19.2 KB · Affichages: 45
  • 111.xlsm
    19.2 KB · Affichages: 48
  • 111.xlsm
    19.2 KB · Affichages: 48
Dernière édition:

Gedch

XLDnaute Occasionnel
Re : Copie ou déplacement de liens hypertexte

Bonjour

Les cellules B1 à B4 contiennent bien un lien hypertexte
Par contre je confirme le problème avec le clic droit

Je renvoie le fichier avec les anomalies :
Si une cellule est vide, on à bien accès au clic droit (Exemple B12)
Si elle n’est pas vide, impossible de faire un clic droit (Exemple B13)

De même j’ai créé un lien hypertexte dans les cellules B10 et B11 avant de valider les macros, puis qu’après c’est impossible.
En suivant la même démarche (écrite en rouge)
Je ne suis pas parvenu à copier ces liens hypertexte.

A+
 

Pièces jointes

  • 111b.xlsm
    19.6 KB · Affichages: 47
  • 111b.xlsm
    19.6 KB · Affichages: 46
  • 111b.xlsm
    19.6 KB · Affichages: 41

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Copie ou déplacement de liens hypertexte

Re,

je viens de constater que:
si le lien renvoie vers une autre cellule du fichier, il faut utiliser SubAddress

si le lien renvoie vers une adresse htpp, il faut utiliser Address
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target = "" Or Sheets(3).Range("A1") = "" Then Exit Sub
Target.Hyperlinks.Add Anchor:=Selection, Address:="" & Sheets(3).Range("A1") & ""
Sheets(3).Range("A1") = ""
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub
Cancel = True
On Error Resume Next
Sheets(3).Range("A1") = Target.Hyperlinks(1).Address
End Sub

peut-être qu'en récupérant et combinant les deux;
Sheets(3).Range("A1") = Target.Hyperlinks(1).Address
Sheets(3).Range("A2") = Target.Hyperlinks(1).SubAddress

......... mais pas trop le temps en ce jour de Noël

à+
Philippe
 

Gedch

XLDnaute Occasionnel
Re : Copie ou déplacement de liens hypertexte

Bonjour

Pour des liens hypertexte vers une adresse Web ou des fichiers extérieurs
Cette nouvelle macro fonctionne parfaitement :eek:

Mais comme dans les 2 cas on perd l’usage du clic droit sur les cellules pleines, serait-il possible de faire 2 macros conventionnelles à placer dans les modules et que l’on validerait simplement par un bouton ou raccourci clavier :confused:

Merci

A+
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Copie ou déplacement de liens hypertexte

Re,
Bonjour

Pour des liens hypertexte vers une adresse Web ou des fichiers extérieurs
Cette nouvelle macro fonctionne parfaitement :eek:

Mais comme dans les 2 cas on perd l’usage du clic droit sur les cellules pleines,

à essayer;
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub
On Error Resume Next
If Target.Hyperlinks(1).Address = "" Then Exit Sub
Cancel = True
Sheets(3).Range("A1") = Target.Hyperlinks(1).Address
End Sub
à+
Philippe
 

job75

XLDnaute Barbatruc
Re : Copie ou déplacement de liens hypertexte

Bonjour Gesch, Philippe,

Si j'ai bien compris, lors d'un copier-coller on ne veut que coller le lien.

On peut utiliser par exemple cette macro dans le code de la feuille :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
dim a$, sa$
If Target.Count = 1 Then
  If Target.Hyperlinks.Count = 1 Then
    a = Target.Hyperlinks(1).Address
    sa = Target.Hyperlinks(1).SubAddress
    Application.EnableEvents = False
    Application.Undo
    Me.Hyperlinks.Add Target, a, sa
    Application.EnableEvents = True
  End If
End If
End Sub
Noter que le texte de la cellule n'est pas modifié.

A+
 

Gedch

XLDnaute Occasionnel
Re : Copie ou déplacement de liens hypertexte

Re,

Bravo :p

C’est presque parfait
Il n’a plus que les cellules qui ont un lien hypertexte qui ne permettent pas de faire un clic droit.
Pour les formats, copiage ou autre, ce n’est pas grave, on peut faire autrement.

Plus embêtant, on ne peut donc pas modifier supprimer ou modifier un lien hypertexte directement. :(

Je ne sais pas si possible
Existe-il un moyen d’inhiber cette macro (et seulement celle-ci) sans la supprimer :confused:
Ou au contraire de la rendre active lorsque l’on a besoin de faire beaucoup de manipulations de liens hypertexte :confused:

A+
 

job75

XLDnaute Barbatruc
Re : Copie ou déplacement de liens hypertexte

Re,

Si l'on veut aussi copier le texte de la cellule :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a$, sa$, d$
If Target.Count = 1 Then
  If Target.Hyperlinks.Count = 1 Then
    a = Target.Hyperlinks(1).Address
    sa = Target.Hyperlinks(1).SubAddress
    d = Target
    Application.EnableEvents = False
    Application.Undo
    Me.Hyperlinks.Add Target, a, sa, TextToDisplay:=d
    Application.EnableEvents = True
  End If
End If
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : Copie ou déplacement de liens hypertexte

Re,

Pardon, s'il y a des liens externes :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a$, sa$
If Target.Count = 1 Then
  If Target.Hyperlinks.Count = 1 Then
    a = Target.Hyperlinks(1).Address
    sa = Target.Hyperlinks(1).SubAddress
    Application.EnableEvents = False
    Application.Undo
    If a = "" Then Me.Hyperlinks.Add Target, a, sa _
      Else Me.Hyperlinks.Add Target, a
    Application.EnableEvents = True
  End If
End If
End Sub
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a$, sa$, d$
If Target.Count = 1 Then
  If Target.Hyperlinks.Count = 1 Then
    a = Target.Hyperlinks(1).Address
    sa = Target.Hyperlinks(1).SubAddress
    d = Target
    Application.EnableEvents = False
    Application.Undo
    If a = "" Then Me.Hyperlinks.Add Target, a, sa, TextToDisplay:=d _
      Else Me.Hyperlinks.Add Target, a, TextToDisplay:=d
    Application.EnableEvents = True
  End If
End If
End Sub
A+
 

Discussions similaires

Réponses
3
Affichages
477
Réponses
2
Affichages
331

Statistiques des forums

Discussions
312 508
Messages
2 089 143
Membres
104 047
dernier inscrit
bravetta