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 :

Ecrire en append un hyperlink dans word [Toutes versions]


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
    Technicien maintenance
    Inscrit en
    Mai 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 55
    Par défaut Ecrire en append un hyperlink dans word
    Bonjour à tous,

    Depuis ma VBA Excel, je créé un fichier Word dans lequel j'ajoute du texte. Mon souci est que ce texte doit être en "hyperlink" et surtout s'ecrire en append a chaque fois... Voici mon code :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    Sub Test()
     
        'Déclaration des variables
        Dim nom As String
        Dim NomDoc As String
        Dim Chemin As String
        Dim appWD As Word.Application
        Dim oDoc As Word.Document
     
        'Initialisatoion variables
        nom = "ListeLiens"
        NomDoc = nom & ".doc"
     
        'Vérification du nom pour etre sur qu'il n'est pas vide
        If Len(nom) = 1 Then
            MsgBox ""
            Exit Sub 'si la ligne ne contient ni nom ni prénom on quitte
        End If
     
        'On indique le dossier d'enregistrement du .doc
        Chemin = "P:\" & NomDoc
        On Error Resume Next
     
        'On créer l'objet et on vérifie sont existance
        Set appWD = CreateObject("Word.Application")
        If Err.Number <> 0 Then
            Set appWD = CreateObject("Word.Application")
        End If
        'On repart du début si erreur
        On Error GoTo 0
     
        'On vérifie que le chemin existe et on ouvre le document
        If Dir(Chemin) <> "" Then
            Set oDoc = appWD.Documents.Open(Chemin)
        Else
        'On ecrit dans le document
        Set oDoc = appWD.Documents.Add
            With oDoc
                With .Sections(1).Range
                    .Font.Bold = True 'en gras
                    .Font.Italic = True 'en italique
                    .Text = "TATA"
                    .InsertAfter vbLf & "TOTO "
                    .Hyperlinks.Add Anchor:=.Sections(1).Last.Range, _
                        Address:="http://toto.com", _
                        ScreenTip:="totobulle", _
                        TextToDisplay:="totolink"
                End With
                .SaveAs Chemin
            End With
        End If
        appWD.Visible = True
        appWD.Activate
     
    End Sub
    J'ai essayé de réécrire cette ligne "Anchor:=.Sections(1).Last.Range" de la façon suivante : ".Hyperlinks.Add Anchor:=Sections(1).Range.End".

    Bref cela ne fonctionne pas... J'ai un message d'erreur me disant que ce qui est écrit dans "Anchor" est faux. Le message d'erreur est :

    Nom : Capture.JPG
Affichages : 249
Taille : 16,7 Ko

    Si je change la ligne par ".Hyperlinks.Add Anchor:=.Sections(1).Range" alors cela fonctionne mais m'écrase les premières lignes saisies.

    Avez-vous une solution s'il-vous-plaît ?

  2. #2
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 55
    Par défaut
    Bonjour,

    Merci à ceux qui se sont penchés sur le sujet. De mon côté, je ne sais pas si c'est la meilleur solution mais voici ce que j'ai bidouiller pour que cela fonctionne :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    Sub Test()
     
        'Déclaration des variables
        Dim nom As String
        Dim NomDoc As String
        Dim Chemin As String
        Dim appWD As Word.Application
        Dim oDoc As Word.Document
     
        'Initialisatoion variables
        nom = "ListeLiens"
        NomDoc = nom & ".doc"
     
        'Vérification du nom pour etre sur qu'il n'est pas vide
        If Len(nom) = 1 Then
            MsgBox ""
            Exit Sub 'si la ligne ne contient ni nom ni prénom on quitte
        End If
     
        'On indique le dossier d'enregistrement du .doc
        Chemin = "C:\" & NomDoc
        On Error Resume Next
     
        'On créer l'objet et on vérifie sont existance
        Set appWD = CreateObject("Word.Application")
        If Err.Number <> 0 Then
            Set appWD = CreateObject("Word.Application")
        End If
        'On repart du début si erreur
        On Error GoTo 0
     
        'On vérifie que le chemin existe et on ouvre le document
        If Dir(Chemin) <> "" Then
            Set oDoc = appWD.Documents.Open(Chemin)
        Else
        'On ecrit dans le document
        Set oDoc = appWD.Documents.Add
            With oDoc
                With .Paragraphs(1).Range
                    .Font.Bold = True 'en gras
                    .Font.Italic = True 'en italique
                    .Text = "TATA"
                    .InsertAfter vbLf & "TOTO "
                    .InsertAfter vbLf
                    .Hyperlinks.Add Anchor:=.Paragraphs(3).Range, _
                        Address:="http://toto.com", _
                        ScreenTip:="totobulle", _
                        TextToDisplay:="totolink"
                    .InsertAfter vbLf
                    .Hyperlinks.Add Anchor:=.Paragraphs(4).Range, _
                        Address:="http://toto.com", _
                        ScreenTip:="totobulle", _
                        TextToDisplay:="totolink"
                End With
                .SaveAs Chemin
            End With
        End If
        appWD.Visible = True
        appWD.Activate
     
    End Sub
    J'ai rajouté un "vbLf" entre chaque lien et j'ai incrémenté mes numéros de paragraphes.

  3. #3
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 113
    Par défaut
    Salut

    Hum, je n'ai pas d'avis sur la problématique de base mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    'Vérification du nom pour etre sur qu'il n'est pas vide
        If Len(nom) = 1 Then
            MsgBox ""
            Exit Sub 'si la ligne ne contient ni nom ni prénom on quitte
        End If
    Len("") renvoie 0, len("a") renvoie 1
    Pourquoi ne pas simplement tester si nom = "" ?

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

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

Discussions similaires

  1. [VBA Excel] Ecrire en couleur dans un Word
    Par eagleleader dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/11/2007, 10h03
  2. demander à VBA Excel de trouver la même ligne dans un autre classeur
    Par melodyyy dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 06/12/2006, 16h15
  3. [vba excel] Recherche valeur d'une textbox dans une feuille
    Par vanessaferraz dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/08/2006, 10h55
  4. [VBA-Excel] copier plusieurs fois une colonne dans une feuille Excel
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 09/08/2006, 18h43
  5. [VBA Excel] ecrire le caractere " avec une macro
    Par oktopuces dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/09/2005, 22h56

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