Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Formule pour une mise en forme conditionnelle sur lien hypertexte

Océane

XLDnaute Impliqué
Bonjour
Dans l’exemple joint j'ai crée un lien hypertexte vers un ficher audio. Quand on clic sur le lien, le fichier audio s’exécute.
Ce que je voudrai c'est qu'en mème temps, la cellule qui contient le nom passe en vert, pour garder mémoire du passage.
je pense que cela peut se faire avec une formule de mise en forme conditionnelle, mais je ne la trouve pas ...
Il faut aussi que si je clic dessus par erreur pouvoir revenir au blanc.
Merci d'avance.
Je ne peux pas télécharger le fichier audio .
 

Pièces jointes

  • Liens.xlsx
    8.7 KB · Affichages: 66

Océane

XLDnaute Impliqué
Bonjour Double zéro
Je pense qu'il faut mettre ton code dans thisworkbook ?
J'ai fait l'essai mais çà ne fonctionne pas. Par contre le fichier audio s’exécute avec un seul clic gauche.
Ce qui serait bien c'est un double clic pour revenir en arrière.
A+
 

DoubleZero

XLDnaute Barbatruc
Re-bonjour,

La suggestion visée en #2 est une ânerie ...

Placer les deux codes suivants dans le module de l'onglet où se trouvent les valeurs.
VB:
Option Explicit
Private Sub Worksheet_BeforeRightClick(ByVal c As Range, Cancel As Boolean)
' fond incolore par clic droit
    Cancel = True
    If c.Hyperlinks.Count > 0 And c.Offset(, 1).Interior.ColorIndex = 4 Then c.Offset(, 1).Interior.ColorIndex = xlNone
End Sub

Private Sub Worksheet_SelectionChange(ByVal c As Range)
' fond par clic simple
    If c.Hyperlinks.Count > 0 Then
        c.Offset(, 1).Select
        c.Offset(, 1).Interior.ColorIndex = 4
    End If
End Sub

A bientôt
 

DoubleZero

XLDnaute Barbatruc
Re-bonjour,

Ces versions me paraissent "plus mieux bien"...
VB:
Option Explicit
Private Sub Worksheet_BeforeRightClick(ByVal c As Range, Cancel As Boolean)
' fond incolore par clic droit
    Cancel = True
    If c.Hyperlinks.Count > 0 And c.Interior.ColorIndex = 4 Then c.Interior.ColorIndex = xlNone
End Sub

Private Sub Worksheet_SelectionChange(ByVal c As Range)
' fond par clic simple
Application.EnableEvents = False
    If c.Hyperlinks.Count > 0 Then
        c.Offset(, 1).Select
        c.Select: c.Interior.ColorIndex = 4
    End If
Application.EnableEvents = True
End Sub
A bientôt
 

Océane

XLDnaute Impliqué
Double zero
Un Pb à l'usage, si je sélectionne deux lignes, qui possède des noms avec le lien hypertexte; pour augmenter la hauteur de ligne, par exemple, la macro se plante ...dommage
 

DoubleZero

XLDnaute Barbatruc
Bonjour, Océane, le Forum,

Une ligne de code supplémentaire devrait régler le problème.
VB:
Option Explicit
Private Sub Worksheet_BeforeRightClick(ByVal c As Range, Cancel As Boolean)
' fond incolore par clic droit
   Cancel = True
    If c.Hyperlinks.Count > 0 And c.Interior.ColorIndex = 4 Then c.Interior.ColorIndex = xlNone
End Sub

Private Sub Worksheet_SelectionChange(ByVal c As Range)
' fond par clic simple
If c.Count > 1 Then Exit Sub
Application.EnableEvents = False
    If c.Hyperlinks.Count > 0 Then
        c.Offset(, 1).Select
        c.Select: c.Interior.ColorIndex = 4
    End If
Application.EnableEvents = True
End Sub
A bientôt
 

Océane

XLDnaute Impliqué
Effectivement la ligne de code supplémentaire résout le Pb, mais du coup le clic droit est inopérant pour sélectionner la hauteur de ligne et plus grave quand on fait la tentative la macro le coup suivant ne fonctionne plus, sans pour autant bugger.
Bonne journée
 

Océane

XLDnaute Impliqué
Pardon...je retire ce que j'ai dit, le clic droit n'est plus efficace c'est un fait , mais sélectionner deux lignes n’empêche pas la macro de fonctionner . En fait pour agrandir la ligne il faut passer par le ruban
 

DoubleZero

XLDnaute Barbatruc
Bonjour, Océane, le Forum,

Supprimer le code de "Feuil1" et placer les deux codes suivants dans "ThisWorkbook".

VB:
Option Explicit
Private Sub Workbook_SheetBeforeRightClick(ByVal o As Object, ByVal c As Range, Cancel As Boolean)
' fond incolore par clic droit
    For Each o In Worksheets
        Cancel = True
        If c.Hyperlinks.Count > 0 And c.Interior.ColorIndex = 4 Then c.Interior.ColorIndex = xlNone
    Next
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal o As Object, ByVal c As Range)
' fond vert par clic simple
    For Each o In Worksheets
        If c.Count > 1 Then Exit Sub
        Application.EnableEvents = False
        If c.Hyperlinks.Count > 0 Then
            c.Offset(, 1).Select
            c.Select: c.Interior.ColorIndex = 4
        End If
        Application.EnableEvents = True
    Next
End Sub
A bientôt
 

Océane

XLDnaute Impliqué
Parfait - par contre je fais toujours avoir avec le clic droit, j'ai tellement l'habitude de l'utiliser , que je ne pense pas qu'il est neutraliser pour effacer le vert.
Exemple : je crée une feuille supl. pour créer le lien hypertexte je suis obligé de passer par le ruban, parce que le clic doit est neutralisé; mais on ne peut pas tout avoir!!!
Bon dimanche
 

ouf746

XLDnaute Nouveau
bonjour , un peu plus complexe !

moi je voudrais crée un bouton qui permet de générer les lien automatiquement sauf que j'ai envi que la macro cherche dans plusieurs répertoire windows indique si le nom indiquer dans excel figue dans le répertoire alors lui affecter le lien sinon mettre la casse en rouge pour avertir qu'il ne la pas trouver
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…