sylvain_66
Messages postés19Date d'inscriptionmardi 26 mai 2020StatutMembreDernière intervention28 juillet 2020
-
Modifié le 26 mai 2020 à 14:18
sylvain_66
Messages postés19Date d'inscriptionmardi 26 mai 2020StatutMembreDernière intervention28 juillet 2020
-
28 juil. 2020 à 19:43
Bonjour
je souhaite créer une macro où lorsque l'on choisit une cellule avec lien hypertexte, ce lien s'active,
il y a déjà eu demande de faite, la 1ére réponse ne fonctionnait pas car, lien renvoyant à un classeur ou un onglet (ne fonctionne qu'avec un lien URL)
Sub Macro1()
With Selection.Hyperlinks(1)
.Follow NewWindow:=False, AddHistory:=True
If .SubAddress <> "" Then
Sheets(Split(.SubAddress, "!")(0)).Select
Range(Split(.SubAddress, "!")(1)).Select
End If
End With
End Sub
mais là, je n'arrive pas à comprendre ?
à quoi correspond :
désolé mais, je n'y arrive pas
je te joint le fichier avec la macro qui tu m'as donné il y a quelque temps
peux tu le modifier et, me l'envoyer de nouveau stp
c'est important,
je compte sur toi ^^
merci merci d'avance
https://cjoint.com/c/JGvgYQiIRkT
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 21 juil. 2020 à 10:50
Tu te mets sur la feuille Synoptic diagram, tu fais Alt F11 et tu colles ce code.
je l'ai fait mais, lorsque je lance la macro, elle sélectionne la cellule A1 de l'onglet "Synoptic diagram" et la colle dans "Specific Synoptic diagram"
désolé mais, peux tu le faire stp et m'envoyer le fichier
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 21 juil. 2020 à 11:50
La demande de ce post était:
Lancement d'un lien hypertexte avec une macro
Je crois y avoir répondu!
Désolé je ne peux pas faire plus, ce n'est pas dans mes compétences.
Poste un nouveau post avec les difficultés rencontrées. Un autre membre pourra y répondre.
Je te souhaite de mener à bien ton projet
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137
>
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024 24 juil. 2020 à 12:11
Bonjour sylvain_6 ,
bonne nouvelle, j'ai réussi a faire ce que tu désirais Je n'aime pas rester sur un échec, alors j'ai cherché et trouvé!
Si cela t'interesse toujours!
Voilà
@+ Le Pivert
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137
>
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024 24 juil. 2020 à 14:32
Impossibilité de me servir de mon pc. Mise à jour Microsoft 2004 très longue. Disponible dans la soirée j'espère!
@ + Le Pivert
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137
>
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024 24 juil. 2020 à 15:56
sylvain_66
Messages postés19Date d'inscriptionmardi 26 mai 2020StatutMembreDernière intervention28 juillet 2020 Modifié le 26 mai 2020 à 14:19
Bonjour cs_Le Pivert,
merci pour ta réponse :
Bonjour,
comme ceci:
Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then If Target.Value = "" Then Exit Sub Range(Target.Address).Hyperlinks(1).Follow NewWindow:=True End If End Sub
je vais tester, mais j'ai reçu ainsi, tout attacher,
peux tu remettre stp
merci d'avance
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 26 mai 2020 à 13:35
sylvain_66
Messages postés19Date d'inscriptionmardi 26 mai 2020StatutMembreDernière intervention28 juillet 2020 26 mai 2020 à 13:56
Le Pivert
pour information :
l'onglet de mon classeur s'appelle synoptic
la cellule ou se trouve le lien hypertexte se trouve en AE:20
peux tu écrire ce code avec ces infos
merci d'avance
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 26 mai 2020 à 14:13
La macro fonctionne a la sélection d'une cellule.
Tu te sers de l’enregistreur de macro. Tu sélectionnes le lien hypertexte, tu as ta macro que tu mets au début de cette macro
Sub Macro1()
'ta macro de sélection
With Selection.Hyperlinks(1)
.Follow NewWindow:=False, AddHistory:=True
If .SubAddress <> "" Then
Sheets(Split(.SubAddress, "!")(0)).Select
Range(Split(.SubAddress, "!")(1)).Select
End If
End With
End Sub
sylvain_66
Messages postés19Date d'inscriptionmardi 26 mai 2020StatutMembreDernière intervention28 juillet 2020 26 mai 2020 à 15:09
bon Le Pivert
la macro planque :
erreur d'exécution '9'
l'indice n'appartient pas à la sélection
elle plante sur la ligne :
Sheets(Split(.SubAddress, "!")(0)).Select
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 Modifié le 26 mai 2020 à 16:36
chez moi cela fonctionne:
Sub Macro1()
Sheets("synoptic").Select
Range("AE20").Select
With Selection.Hyperlinks(1)
.Follow NewWindow:=False, AddHistory:=True
If .SubAddress <> "" Then
Sheets(Split(.SubAddress, "!")(0)).Select
Range(Split(.SubAddress, "!")(1)).Select
End If
End With
End Sub
mais là, je n'arrive pas à comprendre ?
à quoi correspond :
Selection.Hyperlinks(1)
SubAddress
Sheet(split
Range(split
Avec cela tu vas comprendre
Sub Macro1()
Sheets("synoptic").Select
Range("AE20").Select
With Selection.Hyperlinks(1)
.Follow NewWindow:=False, AddHistory:=True
If .SubAddress <> "" Then
MsgBox .SubAddress
Sheets(Split(.SubAddress, "!")(0)).Select
MsgBox Split(.SubAddress, "!")(0)
Range(Split(.SubAddress, "!")(1)).Select
MsgBox Split(.SubAddress, "!")(1)
End If
End With
End Sub
sylvain_66
Messages postés19Date d'inscriptionmardi 26 mai 2020StatutMembreDernière intervention28 juillet 2020 26 mai 2020 à 17:34
Le Pivert
merci pour l'explication,
de ce côté j'ai compris la box me donne bien l'info ^^
mais de mon côté ma macro plante toujours au même endroit
Peux tu m'envoyer le fichier que tu as préparé, pour voir ce qui cloche chez moi !
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 Modifié le 26 mai 2020 à 18:43
salut le Pivert
désolé mais avec le chomage partiel, je ne suis pas toujours connecté à temps
peux tu m'envoyé le lien pour lundi prochain stp
merci d'avance
je viens de créer un nouveau fichier excel avec
un onglet Synoptic
j'ai copié la macro : cela ne fonctionne pas
j'ai mis un lien web : cela fonctionne, la page web s'ouvre mais la macro plante après :
erreur d'exécution '9'
l'indice n'appartient pas à la sélection
elle plante sur la ligne :
Sheets(Split(.SubAddress, "!")(0)).Select
et pour revenir à ma demande
le lien hypertexte fait référence à un autre onglet du fichier et une cellule,
donc avec ce type de lien cela ne fonctionne pas
De ton côté, avais tu mis un lien vers onglet ou vers un site web ?
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 15 juin 2020 à 14:35
Voilà un code avec un lien vers une feuille. Lien situé Sheets("synoptic").Range("AE20") et un lien vers un site web situé Sheets("synoptic").Range("AE23")
les 2 fonctionnent:
Option Explicit
'vers une feuille
Sub Macro1()
Sheets("synoptic").Select
Range("AE20").Select
With Selection.Hyperlinks(1)
.Follow NewWindow:=False, AddHistory:=True
If .SubAddress <> "" Then
Sheets(Split(.SubAddress, "!")(0)).Select
Range(Split(.SubAddress, "!")(1)).Select
End If
End With
End Sub
'vers un site web
Sub Macro2()
Sheets("synoptic").Range("AE23").Hyperlinks(1).Follow NewWindow:=True
End Sub
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 Modifié le 15 juin 2020 à 17:50
Tu aurais pu dire que le lien consistait à faire la sélection sur une plage !
Je ne vois pas l’intérêt de ce code. Il faut faire une macro pour chaque lien?
voilà la macro:
Sub synoptic()
On Error Resume Next
Sheets("synoptic").Select
Dim plage As Range
Range("AE20").Select
With Selection.Hyperlinks(1)
.Follow NewWindow:=False, AddHistory:=True
If .SubAddress <> "" Then
plage = Split(.SubAddress, "!")(1) 'range
End If
End With
Sheets("Synoptic diagram").Select
Range(Range(plage)).Select
End Sub
sylvain_66
Messages postés19Date d'inscriptionmardi 26 mai 2020StatutMembreDernière intervention28 juillet 2020 7 juil. 2020 à 13:41
Salut Le_pivert,
j'ai repris la macro,
nouveau problème :
celle-ci recherche dans les cellules de B20 à B23 le chiffre "1"
si elle trouve le chiffre, elle sélectionne la cellule de la même ligne mais de la colonne AE
c'est le lien hypertexte, vu dans la macro précédente
celui-ci renvoie à une sélection
la macro copie la sélection et la colle dans un nouvelle onglet à un endroit bien précis
ensuite, même macro pour recherche chiffre 2
ensuite, même macro pour recherche chiffre 3
etc...
cela fonctionne mais les macros sélectionnent toujours le lien hypertexte où il y a le chiffre 1, donc copie à chaque fois la même sélection
je t'ai mis le lien du fichier pour mieux comprendre
peux tu analyser stp, et voir pourquoi les macros sélectionnent toujours le même lien hypertexte
sylvain_66
Messages postés19Date d'inscriptionmardi 26 mai 2020StatutMembreDernière intervention28 juillet 2020 7 juil. 2020 à 15:11
Re Le_Pivert
en fait, je reprends tout et, même la macro que tu m'as donné pour lien hypertexte avec plage, ne fonctionne plus ?
voir ci-dessous
elle fonctionne uniquement si l'on sélectionne avant le lien hypertexte dans le fichier !
peux tu regarder stp
Sub synoptic()
On Error Resume Next
Sheets("synoptic").Select
Dim plage As Range
Range("AE20").Select
With Selection.Hyperlinks(1)
.Follow NewWindow:=False, AddHistory:=True
If .SubAddress <> "" Then
plage = Split(.SubAddress, "!")(1) 'range
End If
End With
Sheets("Synoptic diagram").Select
Range(Range(plage)).Select
End Sub
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 Modifié le 7 juil. 2020 à 18:39
Comme ceci:
Sub synoptic()
recherche (1)
recherche (2)
End Sub
Sub recherche(ByVal nombre As Integer)
Dim diasyn As Worksheet, spesyndia As Worksheet, syn As Worksheet
Dim img As Object
Dim ligne As Long, position As Long, chiffre As Long, plage As Long
Application.ScreenUpdating = False
Set syn = Worksheets("Synoptic")
Set diasyn = Worksheets("Synoptic diagram")
Set spesyndia = Worksheets("Specific Synoptic diagram")
spesyndia.Select
Cells.Select
Selection.Delete
For Each img In ActiveSheet.Shapes
img.Delete
Next
Sheets("Synoptic").Select
On Error Resume Next
position = 1
For ligne = 20 To 53
If syn.Cells(ligne, 2).Value = "" Then
ElseIf syn.Cells(ligne, 2).Value = nombre Then 'recherche la ligne ou se trouve "1"
Cells(ligne, 31).Select
With Selection.Hyperlinks(1)
.Follow NewWindow:=False, AddHistory:=True
If .SubAddress <> "" Then
plage = Split(.SubAddress, "!")(1) 'sélectionne le lien hypertexte
End If
End With
diasyn.Select
Range(Range(plage)).Select 'sélectionne la plage du synoptic recherché
Selection.Copy
spesyndia.Select
Cells(position, 1).Select
ActiveSheet.Paste
End If
Next
Application.ScreenUpdating = True
End Sub
sylvain_66
Messages postés19Date d'inscriptionmardi 26 mai 2020StatutMembreDernière intervention28 juillet 2020 8 juil. 2020 à 15:45
re Le_pivert
as tu testé ta 1ére macro, car en relançant, celle-ci, il ne se passe rien ?
celle où le lien hypertexte doit ouvrir la sélection ?
de mon côté, cela ne fonctionne pas !
test et rep moi stp
21 juil. 2020 à 10:50
C'est simple!
Tu peux le faire toi même
Je ne peux pas faire plus
Bon courage