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

Word Discussion :

Réintégrer des données importées dans Excel vers un doc Word balisé et protégé [Toutes versions]


Sujet :

Word

  1. #1
    Futur Membre du Club
    Homme Profil pro
    SR
    Inscrit en
    Décembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SR

    Informations forums :
    Inscription : Décembre 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Réintégrer des données importées dans Excel vers un doc Word balisé et protégé
    Bonjour,
    Dans le cadre de corrections de fiches produits pour du catalogue, j'utilise une trame Word avec des champs de textes balisés pour pouvoir les récupérer via une macro dans un tableau Excel* (oui, ils bossent encore sur ce type de système !). J'effectue le gros de mes corrections sur le tableau (pour des raisons de lisibilité et de cohérence, les données étant souvent du même type, c'est un gain de temps considérable !).
    Jusque là, tout fonctionne : j'ai, par exemple, 300 fiches Word dans un dossier qui vont être importées dans mon tableau et je commence alors mes corrections. En revanche, les documents originaux restent inchangés et vont conserver toutes leurs erreurs éventuelles. Copier-coller les corrections à la main est tout simplement rébarbatif, long et source d'erreur, surtout sur plusieurs centaines de fiches…

    J'aurais donc tout simplement souhaité savoir s'il existait un moyen , en vba ou autre, de renvoyer les données importées à leur fichier Word d'origine (ou vers une trame vide qui sera renommée manuellement ou selon certaines données du fichier, par exemple sa référence…). J'ai essayé par publipostage, mais ne me paraît pas compatible avec les champs balisés… Le fichier Word est, lui, protégé en écriture (à l'exception des champs, bien évidemment).

    Mes recherches sont restées infructueuses…

    Je joins à cela un dossier test comprenant un exemple de trame Word + le tableau avec macro.
    Il faut simplement changer dans la macro cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chemin = "C:\MettreCheminAbsolu\"
    Je vous remercie pour votre attention !
    (j'arrive à peu près à lire le vba, mais j'ai toujours un peu de mal à l'écrire )
    Fichiers attachés Fichiers attachés

  2. #2
    Futur Membre du Club
    Homme Profil pro
    SR
    Inscrit en
    Décembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SR

    Informations forums :
    Inscription : Décembre 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    je suis tombé là-dessus :
    http://www.info-3000.com/word/formfields/index.php
    donc on peut bien modifier un champ de texte sur un document protégé (si j'ai bien compris) ; l'idéal serait maintenant de pouvoir le faire à partir de données d'un tableau Excel, avec comme nom de variable l'entête du tableau…

    Je demande avant tout l'avis d'un expert en vba qui pourrait me confirmer que c'est possible, je suis prêt à faire les recherches nécessaires pour essayer de coder moi-même le reste (encore que j'aurai sûrement besoin d'aide !), car ça me permettrait de gagner énormément de temps et je ne voudrais pas en perdre trop en cherchant une solution qui n'existe pas !

    En tout cas, j'espère que ma requête est claire.

    Merci

    P.S. : je suis sur Word 2007

  3. #3
    Futur Membre du Club
    Homme Profil pro
    SR
    Inscrit en
    Décembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SR

    Informations forums :
    Inscription : Décembre 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Alors, je continue…
    J'ai trouvé quelques pistes, mais ça bloque toujours.
    En suivant le didacticiel précédent :
    http://www.info-3000.com/word/formfields/index.php
    j'arrive à modifier un champ, même si la protection du document est activée, avec la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    FormFields("chapitre").Result = "Nouveau chapître"
    End Sub


    En revanche, avec la macro ci-dessous, je pense que j'approche de ma solution, mais j'ai un message qui m'indique :
    "Erreur d'exécution '6124':
    Impossible de modifier cette sélection car elle est protégée."


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Sub RetourVersWord()
     
    Dim WordApp As Word.Application
    Dim WordDoc As Word.Document
     
        Set WordApp = CreateObject("word.application")    'ouvre une session Word
        Set WordDoc = WordApp.Documents.Open("C:\Users\asus\Desktop\testMacro\test2.doc")    'ouvre le document Word
        WordApp.Visible = False    'Word est masqué pendant l'opération
     
     
        WordDoc.Bookmarks("chapitre").Range.Text = Cells(2, 1)
        WordDoc.Bookmarks("sousChapitre").Range.Text = Cells(2, 1)
        WordDoc.Bookmarks("nom").Range.Text = Cells(3, 1)
        WordDoc.Bookmarks("marque").Range.Text = Cells(4, 1)
        WordDoc.Bookmarks("code").Range.Text = Cells(5, 1)
        WordDoc.Bookmarks("reference").Range.Text = Cells(6, 1)
        WordDoc.Bookmarks("prix").Range.Text = Cells(7, 1)
        WordDoc.Bookmarks("descriptif").Range.Text = Cells(8, 1)
        WordDoc.Bookmarks("composition").Range.Text = Cells(9, 1)
        WordDoc.Bookmarks("tailles").Range.Text = Cells(10, 1)
        WordDoc.Bookmarks("coloris").Range.Text = Cells(11, 1)
        WordDoc.Bookmarks("poids").Range.Text = Cells(12, 1)
        WordDoc.Bookmarks("homme").Range.Text = Cells(13, 1)
        WordDoc.Bookmarks("femme").Range.Text = Cells(14, 1)
        WordDoc.Bookmarks("mixte").Range.Text = Cells(15, 1)
        WordDoc.Bookmarks("enfant").Range.Text = Cells(16, 1)
     
     
     
        WordApp.Visible = True    'affiche le document Word
     
     
    End Sub
    Est-ce parce que dans le premier cas, ma macro est liée au document Word et dans le second au tableau Excel ?

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Moi, ce que j'en dis c'est que c'est bien du trouble pour pas grand chose. Dans Word, on peut insérer des tableaux Excel avec Liaison et le document Word est mis à jour automatiquement avec le rafraîchissement des liaisons à l'ouverture du fichier Word. Au besoin, les données liées modifiées dans Excel peuvent être mises à jour manuellement dans l'interface de Word. On peut même obliger la mise à jour automatique à l'impression du fichier. Et puis, sauf horreur de ma part, un double-clic sur un tableau lié dans Word, ouvre le fichier Excel d'origine et quand le fichier est modifié et que l'on ferme Excel, Word demande s'il faut mettre son tableau à jour.

    Et puis, dans les champs disponibles dans Word, il y a des champs bases de données.

    Mais bon, si tu veux absolument une macro oublie moi. Je n'ouvre presque jamais les pièces jointes, et encore plus rarement les fichiers de macros.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    SR
    Inscrit en
    Décembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SR

    Informations forums :
    Inscription : Décembre 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour,
    Merci pour ta réponse, j'irai voir de ce côté à l'occasion.

    Pour mon souci, c'est quasiment réglé, le seul problème que j'ai, c'est l'envoi de variables string comportant plus de 255 caractères. J'ai cru comprendre que c'était comme ça et pas autrement, du coup, j'ai fait deux dossiers de réception avec un qui comporte les fiches complètes et l'autre celles avec les textes manquants, et je fais une petite finition à la main un peu sale, mais efficace et tant pis !

    Du coup, Clément, ta solution permettrait d'ignorer ce problème de texte trop long, peut-être ? Je regarde la tête que ça a et je vois quoi faire, sinon, je "résolve" le post.
    Merci

    (Je me suis douté que ma PJ allait peut-être être mal perçue, surtout avec une macro chelou ! J'ai bien compris l'article, merci !)

  6. #6
    Futur Membre du Club
    Homme Profil pro
    SR
    Inscrit en
    Décembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SR

    Informations forums :
    Inscription : Décembre 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bon, alors j'aurais une dernière chose à demander. Tout fonctionne de mon côté à part cette histoire de 255 caractères… Selon certains, les variables de type String peuvent contenir jusqu'à "2 billions characters", soit, si j'ai bien compris, 2 milliards. C'est super, mais ça ne se vérifie pas dans mon cas. Bref ! Je clos ici le sujet.

    Pour info, pour que cela fonctionne, avec la dernière macro, j'ai remplacé":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WordDoc.Bookmarks(NomChamp).Range.Text = Cells(1, 1)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WordDoc.FormFields(NomChamp).Result = Cells(1, 1)

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

Discussions similaires

  1. [PR-2007] importer des données Project dans excel
    Par dmoluc dans le forum VBA Project
    Réponses: 1
    Dernier message: 26/09/2013, 14h22
  2. Importation des données de fichier Excel vers MySQL
    Par franco9 dans le forum Requêtes
    Réponses: 1
    Dernier message: 14/01/2013, 19h14
  3. Importer des données commentaires de Excel vers MySQL
    Par anissa2 dans le forum Requêtes
    Réponses: 0
    Dernier message: 13/12/2012, 15h48
  4. importé des données XML dans excel
    Par function_Help dans le forum Excel
    Réponses: 1
    Dernier message: 29/02/2012, 21h45
  5. Import des données oracle dans excel
    Par irouni dans le forum Excel
    Réponses: 7
    Dernier message: 10/12/2007, 15h47

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