XL 2010 Création lien hypertexte avec choix de la cellule cible

Francky79

XLDnaute Occasionnel
Bonsoir,

Est-il possible dans la macro3 de rajouter un morceau de code pour pouvoir choisir la cellule cible dans la feuille (traitement) ?
Cellule cible A2 dans la macro.

Sub Macro3()
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"Traitement!A2", TextToDisplay:="A"
End Sub

Merci de votre aide.
 
Solution
Il n'y a pas conflit, simplement il faut déclarer toutes les variables quand il y a Option Explicit :
VB:
Option Explicit 'tout en haut du module

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim champ As Range

job75

XLDnaute Barbatruc
Bonjour Francky79,

Placez dans le code de la Feuil1 du fichier joint (clic droit sur l'onglet et Visualiser le code) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i&
Set Target = Intersect(Target, [B:B], UsedRange)
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
On Error Resume Next
With Feuil2 'CodeName à adapter
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    For Each Target In Target 'si entrées/effacements multiples
        If Target.Row > 1 Then
            If LCase(Target) = "t" Then
                i = 0
                i = Application.Match(Target(1, 0), .Columns(1), 0)
                If i = 0 Then i = .Cells(.Rows.Count, 1).End(xlUp).Row + 1: .Cells(i, 1) = Target(1, 0)
                Hyperlinks.Add Target(1, 2), "", .Name & "!" & .Cells(i, 1).Address(0, 0), TextToDisplay:="A"
            ElseIf Target = "" Then
                Target(1, 2).Clear 'RAZ
                .Rows(Application.Match(Target(1, 0), .Columns(1), 0)).Delete
            End If
        End If
    Next
End With
[C:C].HorizontalAlignment = xlCenter 'centrage
Application.EnableEvents = True 'réactive les évènements
End Sub
Edit : .Clear mieux que .ClearContents

A+
 

Pièces jointes

  • Test LY(1).xlsm
    20.5 KB · Affichages: 8
Dernière édition:

Francky79

XLDnaute Occasionnel
Bonjour Job75,

Merci de ton aide, c'est exactement ce que je voulais.
Dans quel partie du code tu sélectionne la colonne A ?
Car je voudrais l'adapter sur une autre feuille mais la colonne A devient C et le "T" se trouve dans la colonne U.
Pour le "T" ok, je vois, mais pour la colonne C je suis trop nul.

Encore merci.
 

Francky79

XLDnaute Occasionnel
Ok, merci.
Pas simple; mais sa marche.
C'est que mon fichier final est assez lourd et de peur des faire des bêtises je préfère tester sur un fichier plus simple. Mais tu as raison car mon code ci-dessous ne marche plus. (position curseur)
Il y a conflit entre les deux.
Mais alors ou et pourquoi ?
Pourrais tu me donner ton avis.


Capture.JPG
 

job75

XLDnaute Barbatruc
Il n'y a pas conflit, simplement il faut déclarer toutes les variables quand il y a Option Explicit :
VB:
Option Explicit 'tout en haut du module

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim champ As Range
 

Discussions similaires

Réponses
21
Affichages
1 K
Réponses
7
Affichages
328
Réponses
5
Affichages
493

Statistiques des forums

Discussions
312 271
Messages
2 086 687
Membres
103 371
dernier inscrit
jade.gerbe14