Précédent   Forum des professionnels en informatique > 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 Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/03/2011, 12h41   #1
Invité de passage
 
Homme Benoit Meras
Analyse système
Inscription : mars 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : Homme Benoit Meras
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Analyse système
Secteur : Transports

Informations forums :
Inscription : mars 2011
Messages : 5
Points : 0
Points : 0
Par défaut Ouvrir un document Excel attaché à un document word via macro word

Bonjour tout le monde,

Je cherche à faire une manipulation précise sur un tableau de donnée depuis word.

Il me manque principalement l'accès aux données excel depuis word.

Contexte :
* Document word à nombre de page variable
* Document excel attaché au document word nommé "toto version x.y.xls"

Pour le moment, je ne sais pas acceder du tout au doc excel et c'est mon point de blacage. J'ai écrit un premier jet de ma macro pour traiter les info d'un tableau présent sous word et je souhaiterai passer au traitement des infos directement via le tableau excel.

Macro qui parcourt le tableau pour effectuer des recherches de texte correspondant aux cellules du tableau.


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub Macro1() 
Dim cellcontent As String 
 
Set aColumn = ActiveDocument.Tables(2).Columns(1) 
For Each aCell In aColumn.Cells 
aCell.Range.Select 
cellcontent = "[" & Selection 
cellcontent = Left(cellcontent, Len(cellcontent) - 2) 
cellcontent = cellcontent & "]" 
With Selection.Find 
.Text = cellcontent 
.Wrap = wdFindContinue 
End With 
Selection.Find.Execute 
 
' Voici la partie concernant l'action à exercer sur les exigences du tableau 
Selection.StartOf Unit:=wdParagraph 
Selection.MoveEnd Unit:=wdParagraph 
Selection.Delete 
 
Next aCell 
 
End Sub
J'ai trouvé les infos sur comment ouvrir un document excel à adresse fixe mais pas pour un excel "attaché"
bmeras est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 13h24   #2
Responsable Word

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

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

Informations forums :
Inscription : février 2006
Messages : 17 321
Points : 29 220
Points : 29 220
Salut,

Tu peux juste l'activer, mais pas y accéder.
__________________
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 28/03/2011, 14h17   #3
Invité de passage
 
Homme Benoit Meras
Analyse système
Inscription : mars 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : Homme Benoit Meras
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Analyse système
Secteur : Transports

Informations forums :
Inscription : mars 2011
Messages : 5
Points : 0
Points : 0
Merci pour le retour rapide.

Je souhaitais effectivement modifier le document word à partir d'information présente dans le document excel.
Si je comprends bien, je suis contraint de rajouter une étape hors macro pour récupérer les données sous excel et les mettre directement dans le document word pour les utiliser.

"L'activer" sert pour quelle finalité ? Juste d'acceder aux paramètres du document excel attaché mais pas le contenu ?
bmeras est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 14h33   #4
Responsable Word

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

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

Informations forums :
Inscription : février 2006
Messages : 17 321
Points : 29 220
Points : 29 220
Salut,

L'activer revient à faire un double clic sur l'objet.

Maintenant, il est possible de faire un transfert des données de Excel vers Word, mais sans passer par un Objet.

On prélève les données pour les mettre dans un tableau Word.
__________________
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 29/03/2011, 01h02   #5
pgz
Expert Confirmé Sénior
 
Avatar de pgz
 
Homme Pierre GONZALEZ
Développeur Office VBA
Inscription : août 2005
Messages : 3 412
Détails du profil
Informations personnelles :
Nom : Homme Pierre GONZALEZ
Âge : 58
Localisation : France

Informations professionnelles :
Activité : Développeur Office VBA
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 412
Points : 5 934
Points : 5 934
Bonjour.

Finalement, quel est ton problème : trouver le chemin du classeur lié?

Cordialement,

PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham
Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon
pgz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 09h19   #6
Invité de passage
 
Homme Benoit Meras
Analyse système
Inscription : mars 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : Homme Benoit Meras
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Analyse système
Secteur : Transports

Informations forums :
Inscription : mars 2011
Messages : 5
Points : 0
Points : 0
Oui, je n'arrive pas à
1 - trouver le chemin ou l'identifiant du fichier excel
2 - l'ouvrir via word

une fois dedans, je pourrais récupérer les données dont j'ai besoin pour les coller dans le document word.
bmeras est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 10h36   #7
pgz
Expert Confirmé Sénior
 
Avatar de pgz
 
Homme Pierre GONZALEZ
Développeur Office VBA
Inscription : août 2005
Messages : 3 412
Détails du profil
Informations personnelles :
Nom : Homme Pierre GONZALEZ
Âge : 58
Localisation : France

Informations professionnelles :
Activité : Développeur Office VBA
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 412
Points : 5 934
Points : 5 934
Bonjour.

Tu dois trouver un objet conteneur de données Excel liées. Ces objets sont de type Shape (ou InLineShap) ou Field.
Ces objets ont une propriété LinkFormat qui renvoie l'objet du même nom. Et l'objet LinkFormat a une propriété SourceFullName.

Le code dépend largement de la façon dont tu vas trouver l'objet conteneur. Par exemple pour le Fields(1) du document
Code :
sFullName = ThisDocument.Fields(1).LinkFormat.SourceFullName
te donne dans sFullName le nom complet du classeur.

Cordialement,

PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham
Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon
pgz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 16h55   #8
Invité de passage
 
Homme Benoit Meras
Analyse système
Inscription : mars 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : Homme Benoit Meras
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Analyse système
Secteur : Transports

Informations forums :
Inscription : mars 2011
Messages : 5
Points : 0
Points : 0
Je bloque effectivement pour récuperer le nom complet de l'objet excel.

Si j'ai bien compris (et vu que je ne le trouve pas dans les propriétés sous word), je dois récupérer cette référence via macro. Pas de soucis jusque là.

Cependant, je ne sais pas ou récupérer l'info sur le type d'objet (Field, Shapes, InLineShap) dont il s'agit. J'ai essayé sans succès avec les différents formats de faire tourner une macro du type que tu m'as fourni :
Citation:
ActiveDocument.InlineShapes(1).LinkFormat.SourceFullName
.

Je pensais pas que Word pourrait me faire galérer pour aller chercher les informations sur le nom de ces objets
bmeras est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 18h00   #9
pgz
Expert Confirmé Sénior
 
Avatar de pgz
 
Homme Pierre GONZALEZ
Développeur Office VBA
Inscription : août 2005
Messages : 3 412
Détails du profil
Informations personnelles :
Nom : Homme Pierre GONZALEZ
Âge : 58
Localisation : France

Informations professionnelles :
Activité : Développeur Office VBA
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 412
Points : 5 934
Points : 5 934
Bonjour.

Si tu ne sais pas où sont tes objets liés, tu peux essayer ce code, qui devrait t'aider à les localiser
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
Sub bmeras()
Dim oFld As Word.Field, oShp As Word.Shape, oIShp As Word.InlineShape, sFullName As String
 
For Each oFld In ThisDocument.Fields
    On Error Resume Next
        sFullName = oFld.LinkFormat.SourceFullName
        If Err.Number = 0 Then MsgBox "Fields(" & oFld.Index & ") : lié à " & sFullName
        Err.Clear
    On Error GoTo 0
Next oFld
 
For Each oIShp In ThisDocument.InlineShapes
    On Error Resume Next
        sFullName = oIShp.LinkFormat.SourceFullName
        If Err.Number = 0 Then MsgBox "InLineShapes en " & oIShp.Range.Start & " : lié à " & sFullName
        Err.Clear
    On Error GoTo 0
Next oIShp
 
For Each oShp In ThisDocument.Shapes
    On Error Resume Next
        sFullName = oShp.LinkFormat.SourceFullName
        If Err.Number = 0 Then MsgBox "Shapes(""" & oShp.Name & """) : lié à " & sFullName
        Err.Clear
    On Error GoTo 0
Next oShp
 
End Sub
Il faudra voir ensuite avec ce que tu obtiens.

Cordialement,

PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham
Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon
pgz est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/04/2011, 14h45   #10
Invité de passage
 
Homme Benoit Meras
Analyse système
Inscription : mars 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : Homme Benoit Meras
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Analyse système
Secteur : Transports

Informations forums :
Inscription : mars 2011
Messages : 5
Points : 0
Points : 0
Merci pour le retour détaillé.
En effet, je sais ou est situé mon document dans Word mais pas via vba.

Je vais essayer de faire tourner ça pour enfin mettre la main sur la ref du doc
bmeras est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 17h27   #11
Invité de passage
 
Homme Alban Vassault
Conseil - Consultant en systèmes d'information
Inscription : avril 2011
Messages : 1
Détails du profil
Informations personnelles :
Nom : Homme Alban Vassault
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Conseil

Informations forums :
Inscription : avril 2011
Messages : 1
Points : 1
Points : 1
Bonjour,

Je pense avoir le même besoin que Bmeras, je suis intéressé par la suite donnée à cette résolution. Juste pour être certain d'être dans un cas équivalent : je souhaite extraire les données de feuilles de calcul insérées sous word (insertion-> objet -> feuilles de calcul) pour les regrouper sous excel .

Est ce équivalent à ce que tu souhaites bmeras ?

Merci,
obi1.
Obi1-Kenobi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h46.


 
 
 
 
Partenaires

Hébergement Web