IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

lien hypertexte vers source


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2012
    Messages : 63
    Par défaut lien hypertexte vers source
    Bonjour,

    j'ai un petit bout de code (simple et surement mal fait...) qui extrait quelques données d'un onglet pour les coller dans un autre onglet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Sub maj()
     
    Dim plage As Range, clz As Range
    Dim derlige As Long
    Sheets("clos").Range("a2:c3000").Clear
    Sheets("clos").Range("e2:e3000").Clear
    Sheets("FICHIER GAL").Select
      derlige = Range("A65536").End(xlUp).Row
        Set plage = Range("A2:A" & derlige)
    Range("f2").Select
    Application.ScreenUpdating = False
     
    For Each clz In plage
            If ActiveCell.Interior.Color = RGB(127, 127, 127) Then
            If ActiveCell.Offset(0, 2).MergeCells Then
            ActiveCell.Offset(0, -4).Copy
            Sheets("clos").Cells(65535, 5).End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
                ActiveCell.Offset(1, 0).Select
                Else
                ActiveCell.Offset(0, -4).Copy
                Sheets("clos").Cells(65535, 1).End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
                ActiveCell.Offset(0, 1).Copy
                Sheets("clos").Cells(65535, 2).End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
                ActiveCell.Copy
                Sheets("clos").Cells(65535, 3).End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
                Application.CutCopyMode = False
            End If
         End If
            ActiveCell.Offset(1, 0).Select
     Next clz
     Calculate
    Application.ScreenUpdating = True
     
    End Sub
    J'aimerais mettre un lien (hypertexte ?) sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveCell.Offset(0, 1).Copy
                Sheets("clos").Cells(65535, 2).End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
    pour que sur dans la feuille "clos", en cliquant sur la valeur copiée, cela me ramène sur la feuille "FICHIER GAL" à l'endroit source de cette valeur...

    J'ai beau chercher, j'ai du mal à saisir le fonctionnement des liens. Tout ce que j'arrive à faire me mets un lien sur une mauvaise donnée, dans la mauvaise feuille, lien qui ramène au classeur entier

    Merci pour votre aide!!!

  2. #2
    Membre Expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 475
    Par défaut
    Bonjour

    Voici un début: met le lien hypertexte qui renvoie vers la feuille Gal et la cellule B15

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
            "'Fichier Gal'!B15", TextToDisplay:="'Fichier Gal'!B15"

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2012
    Messages : 63
    Par défaut
    Bonjour,

    merci pour ce début

    Les liens sont créés mais dans l'onglet "FICHIER GAL", et ce pour chaque valeur que la macro trouve; le lien renvoi toujours dans ce meme onglet à la cellule B15.

    J'aimerais que les liens soient créés dans l'ongler "clos" et renvoi, pour chaque valeur de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveCell.Offset(0, 1).Copy
                Sheets("clos").Cells(65535, 2).End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
    à la cellule correspondante dans "FICHIER GAL"...
    J'avoue que je bloque...

    Je ne trouve pas de référence qui décrive vraiment les liens et comment les mettre en place.

    Est-il possible de créer un lien sur une valeur copiée ou faut-il créer une autre macro pour retraiter les infos ?

    En essayant de retraiter de tout, j'obtiens rien de bien valable, mes valeurs reprennent la premiere ligne du FICHIER GAL...

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2012
    Messages : 63
    Par défaut
    Re-bonjour,

    j'insiste sur mon problème... ou plutôt je persévère

    En m'inspirant d'une des (nombreuses) solution de Mercatog http://www.developpez.net/forums/d12...cellule-texte/

    J'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub LienHyp()
    Dim LastLig As Long
    Dim Fich As String
    Dim cel As Range
     
    Application.ScreenUpdating = False
    With Worksheets("clos")
        'Dernière ligne remplie de la colonne A
        LastLig = .Range("A" & .Rows.Count).End(xlUp).Row
     
       For Each cel In .Range("B2:B" & LastLig)
            Fich = Sheets("FICHIER GAL").Range("G:G").Find(cel.Value, LookIn:=xlValues, lookat:=xlWhole)
            .Hyperlinks.Add Anchor:=.Cells("B2" & LastLig), Address:=Fich, TextToDisplay:=.Cells("B2" & LastLig).Value
            Next cel
    End With
    End Sub
    Mais j'ai un débogage sur la ligne du lien hypertexte, encore...
    Une fois de plus si quelqu'un à une idée

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2012
    Messages : 63
    Par défaut
    J'y suis presque...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub LienHyp()
    Dim LastLig As Long
    Dim Fich As String
    Dim cel As Range
     
    Application.ScreenUpdating = False
    With Worksheets("clos")
        'Dernière ligne remplie de la colonne A
        LastLig = .Range("A" & .Rows.Count).End(xlUp).Row
     
       For Each cel In .Range("B2:B" & LastLig)
            Fich = Sheets("FICHIER GAL").Range("G:G").Find(cel.Value, LookIn:=xlValues, lookat:=xlWhole).Address
            .Hyperlinks.Add Anchor:=cel, Address:=Fich, TextToDisplay:=CStr(cel.Value)
            Next cel
    End With
    End Sub
    Par contre il veut absolument m'ouvrir un fichier qui n'existe pas mais qui a pour nom l'adresse de la cellule à laquelle j'aimerais que le lien me renvoi...

    Comment faire pour qu'il me renvoi à la cellule concernée dans l'onglet concerné sans qu'il veuille m'ouvrir un fichier inexistant ?

    Merci

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Change le nom de la feuille pour qu'il ne comporte plus d'espace (FICHIER GAL --> FICHIER_GAL et teste ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub LienHyp()
    Dim cel As Range, i As Integer
     
    With Worksheets("clos")
        For i = 2 To .Cells(Rows.Count, 2).End(xlUp).Row
            Set cel = Sheets("FICHIER_GAL").Range("G:G").Find(.Cells(i, 2).Value, LookIn:=xlValues, lookat:=xlWhole)
            If Not cel Is Nothing Then
                .Hyperlinks.Add Anchor:=.Cells(i, 2), Address:="", SubAddress:="FICHIER_GAL!" & cel.Address(0, 0), TextToDisplay:=.Cells(i, 2).Value
            End If
        Next
    End With
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer un lien hypertext vers le lecteur CD
    Par SilverHawk35000 dans le forum VBA Word
    Réponses: 1
    Dernier message: 13/07/2007, 13h58
  2. Lien hypertexte vers Access?
    Par Hydex dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/06/2007, 13h59
  3. VBA EXCEL lien hypertext vers command_button
    Par massilia80 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/05/2007, 17h18
  4. Excel : lien hypertexte vers un autre fichier avec nom page
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/11/2005, 09h33
  5. Comment exporter un lien hypertexte vers excel
    Par Celia1303 dans le forum Access
    Réponses: 2
    Dernier message: 11/10/2005, 09h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo