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. 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
    0
    1. OK merci de l'indication

      je suis en 2003 mais je peux mettre 2007,
      0
      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
        0
        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=...
          0
      2. iMPECCABLE TOUT CA !!!!!

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

        Merci bcp !
        0
        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

          0
          1. 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
            0
            1. Modérateur
              Bonjour

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

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

                Mais j'ai bien fait la macro sous Word ;-)
                0
            2. Modérateur
              La macro fonctionne parfaitement.... Où est le problème ?

              m@rina
              0
              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
                0
                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
                  0
                  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
                    0
                    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 !
                      0
                      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
                        0