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

VBA Word Discussion :

Modifer des liens avec une macro


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Points : 12
    Points
    12
    Par défaut Modifer des liens avec une macro
    Bonjour tout le monde,

    J'ai une macro que j'arrive pas a faire marcher et vu qu'elle est pas de moi et que je suis une tanche en VBA, je compte sur vous...

    Voila, le but c'est de modifier des liens: J'ai un doc word qui se met a jour sur un classeur excel. Mon souci c'est la police (toujours la quand il faut pas ceux-la... lol).

    Je voudrais changer mes liens.

    Pour resumer:

    J'ai des liens qui ressemblent a ca:

    { LINK Excel.Sheet.8"C:\\...adressedulien..." Sheetl!R762C15 \a \r }

    et a ca:

    { LINK Excel.Sheet.8"C:\\...adressedulien..." Sheetl!R762C15 \a \r \* MERGEFORMAT }


    Les liens de la premiere forme doivent absolument etre change en:

    { LINK Excel.Sheet.8"C:\\...adressedulien..." Sheetl!R762C15 \a \r \* CHARFORMAT }

    Et les liens de la deuxieme forme aussi si possible (ca evitera les surprises...)


    Ce sont des liens vers des cellules Excel mis en place par: collage special, lien, RTF


    La macro donnees par Berylion ne fonctionne pas ou je ne sais pas la faire fonctionner.


    Voila, voila, si vous pouviez me sauver la mise sur ce coup la, ce serait franchement cool parcequ'il commence a me saouler ce catalogue...

    Ci-dessous la macro

    Sub Nemka2()
    '
    ' Nemka2 Macro
    ' Macro created 22/06/2007 by v-pfl
    '
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Application.ScreenUpdating = False
    For Each fld In ThisDocument.Fields
    ......If fld.Type = 56 Then
    ..........If Right(fld.Code.Text, 14) = "\* MERGEFORMAT" Then
    ..............fld.Code.Text = Left(fld.Code.Text, Len(fld.Code.Text) - 14) & "\* CHARFORMAT"
    ..........ElseIf Right(fld.Code.Text, 13) <> "\* CHARFORMAT" Then
    ..............fld.Code.Text = fld.Code.Text & "\* CHARFORMAT"
    ..........End If
    .....End If
    Next
    ThisDocument.Fields.Update
    Application.ScreenUpdating = True
    End Sub
    P.S.: les points (.......) c'est pour materialiser les decalages.



    Merci a tous,

    Take Care

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Au 14ième message, tu ne sais pas encore utiliser les balises code ? Alors je vais t'expliquer tout ça :
    Tu sélectionnes le code, tu fais un clic su l'icône # épicétou

    Je regarde si je peux faire quelque chose pour toi (sans garantie)
    A+

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Tu pourrais tester ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For Each fld In ActiveDocument.Fields
        If fld.Type = 56 Then
            If InStr(fld.Code.Text, "\* MERGEFORMAT ") <> 0 Then
                fld.Code.Text = Left(fld.Code.Text, Len(fld.Code.Text) - Len("\* MERGEFORMAT ")) & "\t " & "\* CHARFORMAT "
               ElseIf InStr(fld.Code.Text, "\* CHARFORMAT ") = 0 Then
                fld.Code.Text = fld.Code.Text & "\t " & " * CHARFORMAT "
            End If
        End If
    Next
    Tu dis
    A+

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Ouskel'n'or, T'es un amour!!!

    Merci tout plein tout beaucoup, je viens de voir ton message. Un lundi matin qui commence comme ca, ca fait toujours plaisir!!!!

    Ca a marche nickel chrome cadmium. Merci, encore merci et mille fois merci (ma reconnaissance est a la hauteur du temps que tu m'a sauve)

    A bientot sur le forum.

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Toutes mes confuses, j'ai zappe, d'habitude je le fais, promis...

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

Discussions similaires

  1. Problèmes pour tracer des graphiques avec une macro
    Par Margoooot dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/08/2011, 17h19
  2. Renommer des variables avec une macro SAS
    Par zellinho dans le forum Macro
    Réponses: 15
    Dernier message: 21/03/2011, 17h57
  3. Script qui ouvre des liens avec une fin préprogrammée
    Par petibonohm dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/03/2011, 14h05
  4. rajouter des doublons avec une macro dans une colonne
    Par Banel dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/08/2008, 23h58
  5. Réponses: 4
    Dernier message: 24/04/2008, 09h31

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