Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[vba] créer doc word sur base donnée XLS

Babelge, le vendredi 7 juillet 2006 à 12:55:03
Bien le bonjours mes chers lecteurs,

Je souhaite créer des documents en partant de donnée disponible dans une feuille de donnée XLS ou une requete access.

Solution 1> un simple publipostage
Oui mais il s'agit de créer plusieurs documents différents sur base d'un même enregistrement (l'enregistrement est une commande à un prestataire ou fournisseur et les documents sont... bon de commande, transmis du bon de commande au prestataires, transmis à la compta, transmis de la facture à la compta,...) et pas plusieurs documents identiques/personnalisés sur base d'enregistrement différents.


Solution 2> une macro word qui ouvre une instance de XL, le fichier de donnée, lit des données et crée le document en consquence.
Je n'ai pas encore essayé

Solution 3 > une macro XL qui ouvre une instance de word en lui transmettant des données et en lui faisant créer les divers documents.
Oui mais là j'ai testé et je n'arrive pas à utiliser avec fruit un "aller au signet" du document word pour insérer une donnée
Par exemple

Dim Docu As Object
Set Docu = CreateObject("Word.Application")
With Docu ' l'instance de WOrd
.Documents.Open "C:\doctest2.doc"
.Application.Selection.GoTo What:=wdGoToBookmark, Name:="StopDate"
.Application.Selection.InsertDateTime DateTimeFormat:="dddd d MMMM yyyy"
end with

J'ai un message d'erreur
"5102 - vous avez tapé plusieurs destination pour une page, une ligne, une note de bas de page, une note de fin ou un commentaire"

Alors que le code utilisé directement dans word (sans référence à la variable objet docu) permet d'atteindre le signet et d'insérer le texte ou la date).


Par quel bout prendriez vous le problème?

PS: le vba, je découvre... l'automation c'est du tout tout neuf pour moi.
Répondre à Babelge  Signaler ce message aux modérateurs Aller au dernier message

1


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Kobaya, le dimanche 9 juillet 2006 à 23:10:15
salut Babelge,

essaie ceci, ça fonctionne bien chez moi :
Sub OuvrirFichierWord()
    Dim objWord As Word.Application
    Dim Docu    As Word.Document
    
    ' création de l'objet Word
    Set objWord = New Word.Application
    
    ' Word visible
    objWord.Visible = True
    
    'ouverture du fichier
    Set Docu = objWord.Documents.Open("D:\doctest2.doc")
    ' positionnement sur le signet
    objWord.Selection.GoTo What:=wdGoToBookmark, Name:="StopDate"
    ' insertion de la date
    objWord.Selection.InsertDateTime DateTimeFormat:="dddd d MMMM yyyy"
    
    ' sauvegarde
    Docu.Save
    ' fermeture du document
    Docu.Close
    ' quitter Word
    objWord.Quit
    
    ' libérer la mémoire des variables objet
    Set Docu = Nothing
    Set objWord = Nothing
End Sub
A+,
Kobaya.
Répondre à Kobaya

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Babelge, le mardi 18 juillet 2006 à 12:46:01
Merci de m'avoir répondu.

J'ai été contrain de m'absenter un temps et je ne peux te répondre qu'aujourd'hui. Désolé.

J'ai testé ta macro mais j'ai des message d'erreur sans doute lié au fait qu'il y a des choses sur ton système qui ne le sont pas sur le mien.

Ainsi, pour ces trois lignes,
Dim objWord As Word.Application
Dim Docu As Word.Document
Set objWord = New Word.Application
j'ai l'erreur :
"type d'fini par l'utilisateur non défini"

En cherchant un peu j'ai compris qu'il fallait définir "Word" avec type... oui mais comment et où... je ne sais?

J'ai essayé dans le même module, juste avant la macro (ou dans un module suivant, sans rien d'autre)
Public Type Word
Application As Object
Document As Object
End Type
Répondre à Babelge

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Kobaya, le mardi 18 juillet 2006 à 21:52:46
as-tu coché la référence Microsoft Word x.x Object Library dans le menu Outils\Références de l'éditeur VBA ?

A+,
Kobaya.
Répondre à Kobaya

4


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Babelge, le vendredi 21 juillet 2006 à 09:27:34
Oui,
Word object library 11.0 et office object library11.0 sont cochés.
Répondre à Babelge

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Matrix, le jeudi 6 décembre 2007 à 16:50:07
Babelge, a mon avis, je serai partis d'un doc Word et j'aurai utilisé son outil de publipostage avec en fichier source ton fichier XLS.

Dans le doc, je ferai plusiers pages des formulaires à la suite - tous ceux de ta liste. Puis, j'introduis les different champs (colonnes du XLS) où il faut dans les formulaires. C'est fait.

En suite, la fonction Word de publipostage te permets soit de faire tous les formulaires pour tout le contenu de ton XLS soit tu choisis les ligne d'XLS qui t'interessent.
Répondre à Matrix

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Babelge, le vendredi 7 décembre 2007 à 07:42:02
Merci de ta réponse,

Comme je disais en introduction, il s'agit de créer PLUSIEURS documents DIFFERENTS sur base d'un même enregistrement (l'enregistrement est une commande à un prestataire ou fournisseur et les documents sont... bon de commande, transmis du bon de commande au prestataires, transmis à la compta, transmis de la facture à la compta,...) et pas plusieurs documents identiques/personnalisés sur base d'enregistrement différents.

La simplicité du publipostage est aussi son handicap. C'est prévu pour un document, plusieurs enregistrement.
A la limite, je pourrais mettre l'ensemble de mes documents dans un seul fichier word, mais ça va avoir une forte influence sur l'organisation des fichiers.
Il faut que j'y réfléchisse. Je ne dois pas perdre plus de temps à rechercher mes petits que celui que je gagne à éditer les documents.

Merci quand même.
Répondre à Babelge

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Matrix, le vendredi 7 décembre 2007 à 12:43:21
Nous sommes d'accord. Un fichier type - Doc Word - pour tous tes formulaires (bon de commande, transmis du bon de commande au prestataires, transmis à la compta, transmis de la facture à la compta,...).

Ceci dit:
1/ As-tu un fichier XLS par prestataire ou fournisseur qui regroupe toutes les commandes de ce prestataire ou fournisseur (une commande par ligne et toutes sur une même feuille)?
2/ Un XLS regoupant toutes les commandes (en ligne sur une feuille) pour tous les prestataires ou fournisseurs? C'est ce que j'ai compris!
Répondre à Matrix

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Babelge, le lundi 10 décembre 2007 à 07:28:56
As ta question, je répond dans le plus simple des cas c'est l'option "2":
Un XLS regoupant toutes les commandes (en ligne sur une feuille) pour tous les prestataires ou fournisseurs.

Par contre, j'ai déjà simplifié pas mal le problème par rapport au réel, car au départ il s'agit de partir d'une base de données ACCESS, et un "set de données" reprend parfois plus d'une ligne de donnée... et là, plus moyen de travailler avec le publipostage!

Ex:
Je passe commande pour deux devis en même temps (au même fournisseur) avec des adresses de livraison différentes pour chacun des devis ( j'ai 29 sites de livraison possible):
ou
Je transmets à la compta plusieurs factures relevant de commande différentes ou plusieurs factures partielles pour une seule et même commande.

Tu vois, je m'étais dis qu'en essayant d'abord de piloter word depuis une macro excell, je me mettrai ensuite à piloter word depuis ACCESS.... je fais des "exercices" en quelque sorte.
C'et un peu pour ça que la solution du publipostage est peu séduisante à mes yeux, c'est fort simple certes, mais aussi fort limitant.

Il n'est pas facilement envisageable de réaliser ces documents directement dans access via les ETATS car dans le texte des commandes, il m'arrive fréquemment de devoir modifier / adapter. On gère des approvisionnement ou des travaux, on gère de l'import ou de l'achat local, avec ou sans taxe incluse, en livraison avion ou bateau, incluse ou à notre charge, avec ou sans formule de retard/ pénalité, dans ou en dehors de marché public... et puis la mise en page d'un état access c'est galère.

Mais merci quand même d'avoir proposé
Répondre à Babelge

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Matrix, le lundi 10 décembre 2007 à 14:40:13
Je comprends mieux la complexité.
Tu as encore une autre solution possible. Sortir des formulaires direct depuis Excel. Suite à tes exemples, je prends 2 hypothèses: 1) même devis pour un fournisseur avec 2 adresses de livraison différentes = ce sont 2 lignes distinctes dans la feuille source, 2) chaque facture partielle pour une commande est une nouvelle ligne dans le fichier source. Puis, je construirai ainsi:

1/ il faut une nouvelle colonne A - obligatoirement - qui sera un index unique. P.ex. une concaténation de num.commande/code.fournisseur/code.adr.livraison/num.facture­ qui permet de traiter les devis et les factures multiples;
2/ dans le menu 'Insérer/Nom/Définir' on définit MonIndex =MesDonees!$A:$A;
3/ on ajoute autant des feuille que des formulaires. Sur chacune je construis un formulaire détaillé avec une place prévue pour la référence définie en 1/ et dans la mise en page il faut enlever l'option du grillage;
4/ dans chaque formulaire à l'endroit de la référence je fait un menu déroulant depuis le menu 'Données/Validation...' avec l'option Liste et la source MonIndex. Cela donne une liste déroulante avec toutes les références de la feuille source;
5/ pour les autres champs du formulaire j'utilise la fonction Excel vlookup (...) pour afficher les autres éléments depuis la feuille source sur la base de la valeur de la référence faite en 4/. Cela permet aussi de faire des calculs dynamiques type TVA si un % est affiché;
6/ dès là l'on peut utiliser l'un ou l'autre des formulaires et choisissant une référence imprimer ou faire un PDF pour e-mail.

Le fichier source deviendra long à temps, alors vu la complexité du suivi et la multitude des options, pense à une solution Access optimisée avec des formulaires calculés, le suivi des factures multiples ou par fournisseur, etc. Avec un cahier des charges clair et l'habitude d'Access on peut faire une application simple et utile en peu de temps.
Répondre à Matrix

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Babelge, le mardi 11 décembre 2007 à 12:11:54
Intéressant, intéressant
Je vais creuser cette idée pour apprendre.

Note que la feuille de données excel sera un export de ma base ACCESS.
Et donc je pourrais trier pour n'exporter dans excel que les dossier en cours en traitement.
Ca permettrai de ne pas allonger inutilement le menu déroulant.

Suite dans quelques jours après mes premiers essais
Répondre à Babelge

Résultats pour [vba] créer doc word sur base donnée XLS

Récupérer doc WORD fermé et non enregistré (Résolu) Bonjour à tous, J'ai créé un doc WORD important. au moment de le fermer j'ai chosi par erreur de ne pas enregistrer le document. Puis-je le récupérer? il s'agit de plans très complexes. si e ne les récupère pas je dois tout refaire!!!... www.commentcamarche.net/forum/affich-2424428-recuperer-doc-word-ferme-et-non-enregistre
Un diaporama avec des documents word (Résolu) bonjour tout le monde, je ne suis pas une experte en informatique mais je m'y intéresse... quelqu'un peut-il m'expliquer une façon simple et si cela est possible de créer un diaporama avec des documents créés avec WORD (genre PPS) merci... www.commentcamarche.net/forum/affich-3485443-un-diaporama-avec-des-documents-word
Créer lien vers document word sur mon site (Résolu) salut: je voudrais savoir si vous voulez comment inssrer u document word sur mon site comme ça il va etre res reussi. alors si vous avez une façon aidez moi et je connais plusieurs site qui le fon mais je ne sais pas comment. merci d'avance www.commentcamarche.net/forum/affich-5458831-creer-lien-vers-document-word-sur-mon-site

Résultats pour [vba] créer doc word sur base donnée XLS

Extraire toutes les images d'un document Word/PowerPoint/ExcelPour extraire toutes les images d'un document Word, vous avez besoin.... d'OpenOffice.org ! Procédure 1) Lancez OpenOffice Writer 2) Ouvrez votre document Word 3) Enregistrez-le en format OpenDocument (.odt) www.commentcamarche.net/faq/sujet-5348-extraire-toutes-les-images-d-un-document-word-powerpoint-excel
Comment faire reconnaître à Word des abréviations (alias)Comment faire des mots rapides sous Word Il est possible, lors de la rédaction d’un document Word, de remplacer automatiquement une abréviation ou un symbole par un mot complet utilisé plusieurs fois dans le texte : Dans l'exemple ci-dessous,... www.commentcamarche.net/faq/sujet-11270-comment-faire-reconnaitre-a-word-des-abreviations-alias
[Word] Supprimer tous les liens hypertextesLorsque vous copiez-collez un extrait d'une page web, vous risquez fort d'obtenir dans le texte de nombreux liens hypertextes. Voici deux solutions pour supprimer les liens hypertextes d'un document Word. 1° solution : un lien hypertexte à la... www.commentcamarche.net/faq/sujet-4765-word-supprimer-tous-les-liens-hypertextes

Résultats pour [vba] créer doc word sur base donnée XLS

Protection document Word avec publipostage (Résolu)Bonjour, Je cherche à protéger une document Word (pour éviter toute modification intempestive) mais aussi de pouvoir utiliser le publipostage. Si quelqu'un a une idée, merci de me la communiquer. www.commentcamarche.net/forum/affich-1879078-protection-document-word-avec-publipostage
Convertir un doc word en pdf sur mac ?? (Résolu)comment convertir un doc word en pdf sur mac, sacahnt que pdfcreator c sur pc et que les autres trucs sont payants ?? je dois envoyer un cv sur internet mais pas moyen de le faire car il faut le convertir pour qu'il soit lisible par tous les... www.commentcamarche.net/forum/affich-2669769-convertir-un-doc-word-en-pdf-sur-mac
Document word sous open office (Résolu)bonjour, j'ai effacer par erreur le logiciel word et je n'est pas le cd par contre j'avait mis mes document word sur le bureau. on ma dit de telecharger open office et la je pouvait reavoir mes document word. alors je l'ai... www.commentcamarche.net/forum/affich-2210056-document-word-sous-open-office

Résultats pour [vba] créer doc word sur base donnée XLS

Télécharger Word ViewerLa visionneuse Word Viewer vous permet d'ouvrir des documents Word 2003 et des documents créés avec toutes les versions précédentes de Microsoft Word pour Windows® et Microsoft Word pour Macintosh. Outre les fichiers de document Word (.doc), vous... www.commentcamarche.net/telecharger/telecharger-207-word-viewer
Télécharger Free Word/Doc Txt to Image Jpg/Jpeg Bmp Tiff PngD'habitude, ce sont les images que l'on insère dans les documents Word, Excel ou PowerPoint. Cette fois ci, c'est un peu l'inverse, parce qu'on va convertir ces documents au format image. All to Image Jpg/Jpeg Bmp Tiff Png Converter est un outil... www.commentcamarche.net/telecharger/telecharger-34056392-free-word-doc-txt-to-image-jpg-jpeg-bmp-tiff-png
Télécharger Quick Word to PDFPour transférer vos documents le plus en sécurité possible, il n'y a pas mieux que le format PDF. Alors, pour convertir vos documents Word en PDF, adoptez le programme quick Word to PDF. Quick Word to PDF est un outil qui s'intègre à l'interface de... www.commentcamarche.net/telecharger/telecharger-34056353-quick-word-to-pdf