Excel et extraction

Bonjour,

J'ai mon gestionnaire de parc qui m'a sorti une extraction des postes de l'entreprise sous la forme d'un fichier excel avec 10 onglets (qui correspond à 10 sites differents) et 5 colonnes (par onglet) le nom de ces colonnes : 1/nom pc 2/niveau 3/utilisateur 4/memoire

Je souhaite exporter chaque ligne vers un document "préformaté" où l'on retrouve les éléments

nom pc :
niveau :
utilisateur :
memoire :

et bien sur pour chaque fiche j'aimerais que chaque fiche soit enregistrer sous le nom de la machine

et d'autres lignes qui sont à remplir manuellement

comment faire ? je suis une m@$¤de en excel mais g 1100 postes à gérer

merciiiiiiiiiiiiiiiiiiiiiiiiiiiii

je suis dans le 80 prêt à me deplacer dans les environs LILLE/AMIENS ou sur cette route pour me faire cette manip

merci
Configuration: Windows XP
Internet Explorer 7.0

13 réponses

  1. Modérateur
    Je ne comprends pas ta demande. Les sections se font toutes seules. Ce n'est pas à toi de décider... Si au départ, ton document principal de fusion fait 2 pages, chaque section fera 2 pages. Si le document fait 5 pages, chaque fusion fera 5 pages... Tout dépend de ton doc principal de fusion.

    Quant au nom, je ne comprends pas... J'ai vérifié la macro, je l'ai testée, j'ai juste modifié un détail. Je la remets ici, elle fonctionne parfaitement. Elle doit bien être exécutée sur le document fusionné.

    Sub BreakOnSection2()
    Dim Nom
    Selection.HomeKey Unit:=wdStory
    Application.Browser.Target = wdBrowseSection
    
    For i = 1 To ((ActiveDocument.Sections.Count) - 1)
    
    Set Nom = ActiveDocument.Bookmarks("\Section").Range.Words(3)
    
    Documents.Add
    Selection.Paste
    
    ' supprime le saut de section
    Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
    Selection.Delete Unit:=wdCharacter, Count:=1
    
    ChangeFileOpenDirectory "C:\fiches\"
    DocNum = DocNum + 1
    ActiveDocument.saveas FileName:=Nom & ".doc"
    ActiveDocument.Close
    Application.Browser.Next
    Next i
    End Sub


    m@rina
    1. Re çà commence à marcher

      Les deux derniers points :

      1/ Je trouve sur c:\fiches un seul fichier nommé nom.doc
      2/ et je souhaite que la "section" fasse deux pages et non une à première vue (quand la macro travaille je vois 1400 ouvertures de doc word)

      Merci !
      1. Modérateur
        Bonsoir,

        Ah ben oui, si la fusion n'était pas faite, ça ne risquait pas de marcher... Je ne sais pas pourquoi, mais beaucoup d'utilsiateurs s'arrêtent juste avant de faire la fusion... Faudra unn jour qu'on m'explique pourquoi !!! :D

        Concernant la macro, il te manque l'antislash à la fin du chemin :
        ChangeFileOpenDirectory "C:\fiches\"

        m@rina
        1. héhé voilà la quiche : je n'ai pas fusionné avant l'execution de la macro !!!

          par contre j'ai une erreur voila le n° et le script

          erreur d'execution 4192 la commande a échoué

          Sub BreakOnSection()
          Dim Nom
          ' Used to set criteria for moving through the document by section.
          Application.Browser.Target = wdBrowseSection

          'A mailmerge document ends with a section break next page.
          'Subtracting one from the section count stop error message.
          For i = 1 To ((ActiveDocument.Sections.Count) - 1)

          'Select and copy the section text to the clipboard
          Set Nom = ActiveDocument.Bookmarks("\Section").Range.Words(16)

          'Create a new document to paste text from clipboard.
          Documents.Add
          Selection.Paste

          ' Removes the break that is copied at the end of the section, if any.
          Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
          Selection.Delete Unit:=wdCharacter, Count:=1

          ChangeFileOpenDirectory "C:\fiches"
          DocNum = DocNum + 1
          ActiveDocument.SaveAs FileName:=Nom & ".doc" <------- LIGNE SURLIGNEE
          ActiveDocument.Close
          ' Move the selection to the next section in the document
          Application.Browser.Next
          Next i
          ActiveDocument.Close savechanges:=wdDoNotSaveChanges
          End Sub

          Merci
          1. j'ai mis le 14 mots comme reference du nom de fichier,

            j'execute la macro ma lettre disparait et je ne trouve rien d'enregistrer
            1. Modérateur
              La macro fonctionne parfaitement.... Où est le problème ?

              m@rina
              1. Modérateur
                Bonjour

                En l'occurence, c'est pas de l'Excel, mais du Word !...

                m@rina
                1. Oui oui tout à fait.........................c'est bien pour çà que je suis une bille ...........

                  Mais j'ai bien fait la macro sous Word ;-)
              2. Merci

                de toutes les réponses......... mais étant very noob sur excel.........
                à part les errers récurrentes, j'ai réussi simplement à fermer mes publipostages.........

                oppps
                1. Modérateur
                  Oui, la dernière difficulté réside dans l'enregistrement du fichier avec le nom correct... mais ce n'est pas insurmontable ! ;)

                  J'ai regardé la macro d'un peu plus près. Je constate qu'elle n'est pas nickel chrome mais bon... ça ira.
                  Quand tu lances la macro, il faudra que le point d'insertion se trouve dans la première section.

                  Ensuite, dans la macro, il faut créer une variable pour le nom. Supposant que c'est le 4e mot qui va servir de nom au fichier (si c'est pas le 4e, tu changes) :

                  Dim Nom 'à mettre au début de la macro
                  ...
                  Set nom = ActiveDocument.Bookmarks("\Section").Range.Words(4)

                  à mettre après la fonction de copy

                  et à la place de ActiveDocument.SaveAs FileName:="test_" & DocNum & ".doc"
                  tu mettras :

                  ActiveDocument.SaveAs FileName:=nom & ".doc"


                  Voilà, ça devrait fonctionner.

                  m@rina

                  1. iMPECCABLE TOUT CA !!!!!

                    il me reste plus qu'à trouver la soluce pour enregistrer chaque fiche

                    Merci bcp !
                    1. Modérateur
                      Bonjour,

                      Ton publipostage (quelle que soit la version) va te créer un document constitué d'autant de sections (pages) que de machines.
                      Puisque tu as 10 onglets, tu devras recommencer 10 fois... Mais rassure toi c'est extrêmement rapide.

                      Si ensuite tu souhaites séparer chacun de ces documents résultats du publipostage en autant de fichiers qu'il y a de page, voici la solution :
                      https://support.microsoft.com/en-us/help/216201
                      rubrique : séparer les fichiers par section.

                      m@rina
                      1. Contributeur
                        Hello m@rina ;-)

                        si je comprends bien, la difficulté reste de récupérer dans la macro le champ "nom pc" pour le le mettre dans Filename=...
                    2. OK merci de l'indication

                      je suis en 2003 mais je peux mettre 2007,
                      1. Contributeur
                        salut
                        quelle version d'excel et de word as-tu ?
                        pour faire tes fiches tu peux passer par un publipostage avec word et ton fichier excel comme source des données
                        2007 te permet de faire un document par page donc par enregistrement donc par pc dans ton cas
                        pour les versions antérieures je ne suis pas sûr

                        par contre pour donner à chaque fichier le nom du pc il doit surement falloir passer par une macro et là je peux rien pour toi