Macro Copier/Coller données Excel vers document Word avec Signets

julien91080

XLDnaute Occasionnel
Bonjour à tous,

Etant novice en Excel et en VBA, je me permets de solliciter votre aide. Voici mon problème : J’essai de créer une base Excel comprenant diverses informations sur des écoles. Ce fichier Excel comprend 3 boutons :

- Consulter une fiche école: en sélectionnant le nom d’une école dans la colonne « Ecole » et en cliquant sur le bouton, la macro créée un document Word dans un répertoire bien défini si la fiche n’existe pas (ici dans « Mes documents » sur mon poste, à adapter pour que cela fonctionne chez vous) sinon, si la fiche existe déjà, la macro affiche la fiche.

- Remplir fiche : en sélectionnant le nom d’une école dans la colonne "Ecole" et en cliquant sur le bouton, la macro va chercher la fiche école vierge et un fichier « Template » (Répertoire défini aussi dans « Mes documents », à adapter). La macro Copie/Colle le Template sur la fiche école et impacte les données du fichier Excel via des signets.

- Mise à jour Fiche : en sélectionnant le nom d’une école dans la colonne "Ecole" et en cliquant sur le bouton, la macro va chercher la fiche école remplie et met à jour les signets en fonction des données du tableau.

Mon problème est que les boutons « Remplir fiche » et « Mise à jour fiche » fonctionnent une fois sur deux occasionnant une « Erreur 642 ». Ce problème empêche l’utilisateur de créer ou de mettre à jour plusieurs fiches d’affilé.

Pensez-vous pourvoir m’aider ?

Si oui, modifiez dans les Modules 2 et 3, les adresses pour le fichier « Template » et pour situer la création des fiches.
Dans Microsoft Visual Basic > Outils > Références > j’ai coché « Visual Basic For Applications », « Microsoft Excel 11.0 Object Library », « OLE Automation », « Microsoft Office 11.0 Object Library » et « Microsoft Word 11.0 Object Library ».

Je précise qu’il aurait probablement été plus simple de le faire sous Access mais je ne peux pas l’utiliser. De plus, si vous voyez une autre manière de faire sous Excel, je suis preneur.

Merci par avance pour votre aide, je m’en remets à vous et à votre expertise.
 

Pièces jointes

  • Problème Excel.xls
    52 KB · Affichages: 139
  • Problème Excel.xls
    52 KB · Affichages: 148
  • Problème Excel.xls
    52 KB · Affichages: 150

Yaloo

XLDnaute Barbatruc
Re : Macro Copier/Coller données Excel vers document Word avec Signets

Bonjour Julien,

Oui, chez moi aussi la mise à jour ne se fait qu'une seule fois. J'ai tourné le problème dans tous les sens et ne comprends vraiment pas pourquoi.

A+

Martial
 

Staple1600

XLDnaute Barbatruc
Re : Macro Copier/Coller données Excel vers document Word avec Signets

Bonjour à tous

Yaloo: (suite de mon message du fil doublon de julien)
Je viens de regarder ton zip.
Quand tu dis que la mise à jour ne se fait qu'une seule fois
(Quelle est la procédure VBA en cause?)


Personnellement, dans ce cas de figure, j’opterai pour le publipostage (excel + word)

Un truc du genre:
1) Je modifie des données dans le fichier Excel (dans le lequel j'ajoute un champ MAJ)
2) Lors du publipostage, je filtre les données (avec les options avancées du publipostage (Filtrer et trier les enregistrements)
3) Ainsi seules les fiches avec X dans la colonne MAJ serait générées.
Voir exemple succinct ci-dessous:
testpub.jpg
 
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Macro Copier/Coller données Excel vers document Word avec Signets

Re,

Je remet un zip avec mes derniers fichiers, car il fallait modifier les signets dans les fichiers Word.

C'est la procédure : InsererTexte

A+
 

Pièces jointes

  • Julien.zip
    39.4 KB · Affichages: 48
  • Julien.zip
    39.4 KB · Affichages: 44
  • Julien.zip
    39.4 KB · Affichages: 51

Yaloo

XLDnaute Barbatruc
Re : Macro Copier/Coller données Excel vers document Word avec Signets

Re,

Désolé, je n'avais pas vu ta modification.

J'avais bien pensé au publipostage, ou à tout écraser, mais il me semble me rappeler que Julien tenait à garder les feuilles de chaque école car il y insère des données qui ne sont pas dans le fichier Excel.

A+
 

julien91080

XLDnaute Occasionnel
Re : Macro Copier/Coller données Excel vers document Word avec Signets

Mesieurs,

Comme Yaloo le disait, une partie présente sur chaque fiche est une partie "Commentaires" saisissable par l'utilisateur directement (et uniquement) sur la fiche. Autrement dit, cette partie n'est pas présente dans Excel.
Du coup, il ne faut pas tout écraser.

Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : Macro Copier/Coller données Excel vers document Word avec Signets

Re

Et où est le problème dans ce cas?
Il suffit de modifier les façons de faire (c'est ce que je ferai si le problème était le mien) car manipuler les signets dans word par vba est souvent source de problème
(voir sur le net les infos sur les signets notamment sur les sites de quelques MVP word (anglophones) et sur la faq word (francophone)

Comme la piste du publipostage ne semble pas validée, je m'éclipse ;) car je pense que votre solution initiale risque à l'usage d'être plus problématique (qu'elle ne l'est déjà)
 

Staple1600

XLDnaute Barbatruc
Re : Macro Copier/Coller données Excel vers document Word avec Signets

Re


Le souci avec un signet c'est qu'il facilement être effacé par inadvertance manuellement par l'utilisateur (d’où ma réserve*)

Et comme je le disais c'est ton problème, donc c'est toi qui "choize" la voie empruntée pour le résoudre (à mon avis la voie signets est des plus périlleuses) mais je serai ravi qu'on me prouve le contraire ;)

Je viens de tester InsérerTexte et j'obtiens des résultats bizarres.
Les signets se dupliquent dans le document word.
testsig.jpg

*: je parle en connaissance de cause, j'ai rencontré d'énormes difficultés au taf avec des collègues qui effaçaient signets, champs de fusion ect, ce qui faisait boguer mes codes vba.
J'ai donc du changer mon fusil d'épaule mais ceci est une autre histoire
 
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Macro Copier/Coller données Excel vers document Word avec Signets

Re,

Julien, je ne sais pas si tu as vu, mais Job a posté sur ton autre post un fichier avec sa macro.

Tu trouveras ci-dessous, la macro adaptée à ta demande et à ton fichier, d'après mes tests ça fonctionne parfaitement (merci Job :eek:) et surtout plus d'une fois :rolleyes:

VB:
Option Explicit
Sub InsererTexte()
Dim Appli As Word.Application, WordDoc As Word.Document
Dim s As Object, pos&, i&
On Error Resume Next
Set Appli = CreateObject("Word.Application")
Set WordDoc = Appli.Documents.Open(ThisWorkbook.Path & "\" & ActiveCell & ".doc")
If WordDoc Is Nothing Then MsgBox "'" & ActiveCell & ".doc' est fermé !": Exit Sub
For i = 2 To 23
  Set s = WordDoc.Bookmarks("Signet" & i)
  If s Is Nothing Then MsgBox "Signet inexistant !": GoTo Suite
  On Error GoTo 0
  WordDoc.Activate
  s.Select
  Appli.Options.ReplaceSelection = True
  Appli.Selection.TypeText Cells(ActiveCell.Row, i)
  pos = Appli.Selection.Range.End
  Set s = WordDoc.Range(pos - Len(Cells(ActiveCell.Row, i)), pos)
  WordDoc.Bookmarks.Add "Signet" & i, s
Suite:
Next i
WordDoc.Close True
Appli.Quit
Set Appli = Nothing
Set WordDoc = Nothing
End Sub

A te relire

Martial
 

Pièces jointes

  • Problème Excel.xls
    53 KB · Affichages: 52
  • Problème Excel.xls
    53 KB · Affichages: 44
  • Problème Excel.xls
    53 KB · Affichages: 46

julien91080

XLDnaute Occasionnel
Re : Macro Copier/Coller données Excel vers document Word avec Signets

Martial,

Question qui doit probablement être bête mais question tout de même: pour que la macro n'affiche pas de pop-up "Ecole 2 est fermé!" il faut que la fiche Ecole 2 soit ouverte au préalable? Car j'ai beau l'ouvrir avant d'exécuter la macro mais cela me marque tout le temps "Ecole 2 est fermé!" et même constat si la fiche n'est pas ouverte.

Cordialement
 

julien91080

XLDnaute Occasionnel
Re : Macro Copier/Coller données Excel vers document Word avec Signets

Martial, c'est merveilleux, cela marche effectivement très bien. Mon erreure venait juste du fait que la macro ne va pas chercher dans le dossier "Ecole 2" la fiiche "Ecole 2.doc" mais je pense pouvoir m'en sortir seul à ce sujet.

Un enorme merci à toi Martial mais aussi à Staple1600 et Job75. Merci de votre aide.

Je ne sais pas si il y a un moyen de dire que le sujet est clôturé mais on peut le dire.

Cordialement,

Julien
 

Discussions similaires

Réponses
25
Affichages
1 K

Membres actuellement en ligne

Statistiques des forums

Discussions
312 164
Messages
2 085 877
Membres
103 009
dernier inscrit
dede972