Précédent   Forum du club des développeurs et IT Pro > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 08/01/2013, 14h01   #1
CODYCO
Membre confirmé
 
Avatar de CODYCO
 
Homme
Webplanneur
Inscription : avril 2009
Messages : 199
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webplanneur
Secteur : Bâtiment

Informations forums :
Inscription : avril 2009
Messages : 199
Points : 225
Points : 225
Par défaut Liaison mise à jour

Bonjour à tous et une bonne année 2013.

Je relance un vieux sujet que j'avais déjà évoquer en 2012 mais sans vraiment avoir trouver de soluce, donc au cas ou certain peuvent m'aider
on ne sait jamais.

En essayer de faire claire notre parck info était en office 2003, sur des fichiers word nous avons un grand nombre de liaison avec excel (collage avec liaison), jusque la pas de problème, parfois il arrivait que des liaisons ce casse, bref, j'avais une petite macro qui me réparer les liasions, cool.

Sauf que voila maintenant notre parck info est en office 2010, et la patatra,
j'ai bien essayer d'adapter la macro mais rien ne va plus, je continu à récupérer et réparer mes liaisons sur des tableaux excel, mais cela ne marche pas sur les graphiques...help

Je joins le code...

Code :
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
62
63
64
65
66
67
68
 
Sub MAJ_Liaison()
Dim alink As Field, linktype As Range, linkfile As Range
Dim linklocation As Range, i As Integer, j As Integer, linkcode As Range
Dim Message, Title, Default, Newfile
Dim counter As Integer
 
'Nom1 = Application.ActiveDocument.Name
'Nom1 = Mid(Nom1, 1, 4)
 
'Crée une fenetre d'acces vers fichier excel pour définir le fichier
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
 
'Définie la boite de dialogue excel ouvrir
Set objExcel = Application.FileDialog(msoFileDialogFilePicker)
With objExcel
 
If .Show = -1 Then
            For Each Source In .SelectedItems
                chemin = Source
                Temp = Replace(chemin, "\", "\\")
                chemin = Replace(Temp, "W:", "\\\\Sntp0350\\Travail")
                If chemin Like "*2011*" Then
                  Nom1 = "2011"
                ElseIf chemin Like "*2012*" Then
                  Nom1 = "2012"
                End If
                'chemin = "\\\\Sntp0350\\Travail" & Temp
            Next Source
End If
End With
'Décompose et recompse le lien des liaisons
counter = 0
For Each alink In ActiveDocument.Fields
If alink.Type = wdFieldLink Then
 
Set linkcode = alink.Code
i = InStr(linkcode, Chr(34))
Set linktype = alink.Code
linktype.End = linktype.Start + i
j = InStr(Mid(linkcode, i + 1), Chr(34))
Set linklocation = alink.Code
linklocation.Start = linklocation.Start + i + j - 1
 
If linklocation Like "*2011*" Then
Nom2 = "2011"
ElseIf linklocation Like "*2012*" Then
Nom2 = "2012"
End If
linklocation = Replace(linklocation, Nom2, Nom1)
If counter = 0 Then
Set linkfile = alink.Code
linkfile.End = linkfile.Start + i + j - 1
linkfile.Start = linkfile.Start + i
Message = "Veuillez confirmer le nouveau chemin pour les liaisons "
Format " & linkfile "
Title = "Update Lien"
Default = chemin
Newfile = InputBox(Message, Title, Default)
End If
 
 
linkcode.Text = linktype & Newfile & linklocation
counter = counter + 1
End If
Next alink
End Sub
__________________
Webplanneur comme disait Plastik...

Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
CODYCO est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 14h17   #2
Heureux-oli
Responsable Word


 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 18 877
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 18 877
Points : 39 090
Points : 39 090
Salut,

Pourquoi utilser des Range pour le contenu des champs ?
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 15h49   #3
CODYCO
Membre confirmé
 
Avatar de CODYCO
 
Homme
Webplanneur
Inscription : avril 2009
Messages : 199
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webplanneur
Secteur : Bâtiment

Informations forums :
Inscription : avril 2009
Messages : 199
Points : 225
Points : 225
Que me proposes tu ? crois tu vraiment que le problème peux venir de là?
__________________
Webplanneur comme disait Plastik...

Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
CODYCO est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 16h48   #4
Heureux-oli
Responsable Word


 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 18 877
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 18 877
Points : 39 090
Points : 39 090
Salut,

J'en ai aucune idée.
Tu n'as pas de message d'erreur ?

Perso, je n'ai pas ce problème de liens brisés et je n'ai pas testé ton code.

Mais s'il ne fonctionne pas, tu devrais avoir un message et la ligne qui pose problème.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 08h57   #5
CODYCO
Membre confirmé
 
Avatar de CODYCO
 
Homme
Webplanneur
Inscription : avril 2009
Messages : 199
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webplanneur
Secteur : Bâtiment

Informations forums :
Inscription : avril 2009
Messages : 199
Points : 225
Points : 225
En faite mon soucis est bien la c'est que je n'ai pas de message d'erreur, mais que seule les liens de tableau sont réparés et pas les graphiques...
__________________
Webplanneur comme disait Plastik...

Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
CODYCO est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h24.


 
 
 
 
Partenaires

Hébergement Web