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

Excel Discussion :

Placement de lien hypertexte


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de Citrax
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2014
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2014
    Messages : 188
    Par défaut Placement de lien hypertexte
    Bonjour a tous, j'ai un ptit probleme de programmation qui me bloque depuis quelques mois et a present tout le wkd.
    J'explique :

    Apres avoir bricolé une macro a partir de bout de codes et de mes minis connaissances, j'arrive presque a terme mais la je bloque diablement sur des liens hypertextes:

    Ce que je cherche a faire, c'est que lorsque je clique en Liste sur une reference d'un tableau, excel me cree automatiquement une page suivant un model de suivi bien defini.
    La nouvelle page creee est ainsi renommée par le nom de la ref, et la case titre de mon tableau s'incremente de la reference source.

    Suite a cela et puisque le tableau est destiné a cumuler 10 a 50 feuilles differentes par exemple, il me faut imperativement un lien hypertexte pour ne pas par la suite explorer la barre de defilement infiniement.

    Jusqu'ici tout marche presque au poil, mais je n'arrive pas a placer chaque nouveau lien en face de ma reference d'origine.

    En somme si je clique sur A3, le lien doit se trouver en B3
    Si je clique sur A4 le nouveau lien doit tomber en B4.


    Je chauffe, je brule, je n'y arrive pas donc si quelqu'un peu m'aider svp en m'expliquant mon erreur et ce qui manque; merci d'avance.

    Ci joint un model.
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si tu souhaites écrire dans la cellule de la colonne qui suit la colonne A, il suffit d'utiliser la propriété Offset
    Soit avec ActiveCell (en supposant que cette cellule est sélectionnée)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.Offset(columnoffset:=1)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A2").Offset(columnoffset:=1)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre très actif Avatar de Citrax
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2014
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2014
    Messages : 188
    Par défaut
    Bonjour Philippe, merci et meilleurs voeux a tous les habitués tant que j'y suis.

    Alors cette piste du offset je ne l'avais pas du tout exploré. Merci
    Par contre la cellule de depart n'etant justement pas selectionnée, le lien apparait toujours dans la meme cellule meme s'il s'agit des colonnes suivantes...

    Or c'est la le probleme, une reference doit apporter un lien,
    , deux references, deux lien, et ainsi de suite.

    Ai-je oublié une condition des le depart ?

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Edite la procédure qui déclenche la création de tes feuilles afin que l'on puisse mieux t'aider car pour ma part et je ne suis pas le seul, je n'ouvre jamais les classeurs qui sont joint à l'ouverture d'une discussion.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre très actif Avatar de Citrax
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2014
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2014
    Messages : 188
    Par défaut
    Mille pardon, il est vrai que la mefiance est de rigueur avec les tableurs.
    Alors voila :

    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
    Option Explicit
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim cel As Range
    Dim ws As Worksheet
    Dim nom As String
    Dim Nextcell As Long
     
    If Target.Column <> 1 Then Exit Sub
    On Error Resume Next
    nom = Target.Value
        If nom = "" Then Exit Sub
            For Each ws In Worksheets
        If ws.Name = nom Then
            Call MsgBox("Cette référence a déjà été créée!", vbCritical, "Opération inutile")
            Exit Sub
        End If
    Next ws
    Sheets("Mdl").Copy After:=Sheets(Sheets.Count)
    ActiveSheet.Name = nom
    With Worksheets("Liste")
                Nextcell = .Range & 1
                .Hyperlinks.Add Anchor:=.Range("B" & Nextcell + 1), Address:="", _
                                SubAddress:="'" & nom & "'!A1", TextToDisplay:=nom
            End With
    End Sub

    *Je crois qu'en position 22 la partie nextcell et range sont foireuses car elles n'apportent pas grand chose malgrés mes modifs.

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Mille pardon, il est vrai que la mefiance est de rigueur avec les tableurs.
    Il ne s'agit pas de méfiance mais d'esprit de partage. Cela permet à toutes personnes lisant cette discussion de pouvoir lire l'entièreté des questions et réponses sans devoir télécharger des dizaines de classeurs.

    Pour revenir à la question initiale ActiveCell est correcte puisque tu as fait un double clic mais on peut également utiliser Target.Offset
    Moi j'utilise toujours la formule LIEN_HYPERTEXTE à la place de la propriété Hyperlink de la cellule
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =LIEN_HYPERTEXTE("[HyperlinkAuto.xlsm]Fevrier!A1";"Fevrier")
    Voici donc la procédure modifiée en utilisant cette formule mais rien ne t'empêche de l'adapter.
    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
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     Dim cel As Range
     Dim ws As Worksheet
     Dim nom As String
     Dim Nextcell As Long
     Dim myFormula As String, Quote As String
     Quote = Chr(34)
     If Target.Column <> 1 Then Exit Sub
     On Error Resume Next
     nom = Target.Value
         If nom = "" Then Exit Sub
             For Each ws In Worksheets
         If ws.Name = nom Then
             Call MsgBox("Cette référence a déjà été créée!", vbCritical, "Opération inutile")
             Exit Sub
         End If
     Next ws
     Sheets("Mdl").Copy After:=Sheets(Sheets.Count)
     ActiveSheet.Name = nom
     With Worksheets("Liste")
      myFormula = "=HYPERLINK(" & Quote & "[<WorkBook>]<Sheet>!A1" & Quote & "," & Quote & "<Sheet>" & Quote & ")"
      myFormula = Replace(myFormula, "<WorkBook>", ThisWorkbook.Name)
      myFormula = Replace(myFormula, "<Sheet>", ActiveSheet.Name)
      Target.Offset(columnoffset:=1).Formula = myFormula
     '            Nextcell = .Target.Value & 1
     '            .Hyperlinks.Add Anchor:=.Range("B" & Nextcell + 5), Address:="", _
     '                            SubAddress:="'" & nom & "'!A1", TextToDisplay:=nom
     End With
    End Sub
    Lignes ajoutées
    Ligne 6 (Déclaration de variables) ainsi que les lignes 20 à 24

    Attention que si le classeur est renommé il y aura un problème avec les liens déjà inséré. Dans ce cas là j'ajoute la fonction CELLULE("nomfichier")
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Membre très actif Avatar de Citrax
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2014
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2014
    Messages : 188
    Par défaut Resolu
    Merci Philippe, c'est du grand art et vous m'avez bien sauvé.

    Ca fonctionne impec.
    Il me manquait forcement cette variable ou une ligne. Et si je regrette un poil de n'avoir trouvé seul, je potasserai votre maniere de faire car j'etais a un doigt....enfin trois doigts....enfin trois lignes de code d'arriver a quelques chose.

    Comme vous me l'avez bien fait comprendre, il y plusieurs manieres d'interpreter et d'editer un code.
    Bonne continuation.

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

Discussions similaires

  1. [FLASH 5] Comment créer un lien hypertexte
    Par ajit dans le forum Flash
    Réponses: 4
    Dernier message: 30/03/2006, 12h26
  2. [FLASH MX] Liens hypertext pour naviguer dans ma page
    Par marie64dk dans le forum Flash
    Réponses: 13
    Dernier message: 10/08/2004, 16h17
  3. [Lien hypertexte]Mettre un lien dans un JTextPane
    Par Pill_S dans le forum Composants
    Réponses: 8
    Dernier message: 23/05/2004, 19h20
  4. lien hypertexte dans une anim flash
    Par vedder dans le forum Flash
    Réponses: 17
    Dernier message: 14/01/2004, 14h11
  5. Liens Hypertexte simple comme en HTML ?!
    Par oazar dans le forum Flash
    Réponses: 3
    Dernier message: 17/10/2003, 00h25

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