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

VBA Word Discussion :

Macro pour enregistrer plusieurs fichiers sur différents chemins d'accès


Sujet :

VBA Word

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Macro pour enregistrer plusieurs fichiers sur différents chemins d'accès
    Bonjour à tous,

    Je suis à la recherche d'une macro qui pourrait aller porter un fichier dans un certain dossier selon le numéro du fichier.

    En détails, je fais une macro qui sépare chacune des sections en fichier individuel. Cette macro doit maintenant enregistrer chacun des fichiers dans le bon dossier correspondant. Tout irait bien si les noms des dossiers n'étaient que les numéros de dossiers. Malheureusement, ce sont le nom des dossiers ET leur nom de ville...

    Ici ma macro:
    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
    34
    35
    36
    37
    38
    39
    40
     
    Sub couper_sections()
       Application.Browser.Target = wdBrowseSection
       Dim nom0, nom1, nom2, nom3, nom4, nom5, nom6, nomtl As String
     
     
       For i = 1 To ((ActiveDocument.Sections.Count) - 1)
     
          'Selectionne et copie le texte de la section dans le presse-papier
          ActiveDocument.Bookmarks("\Section").Range.Copy
     
          'Crée un nouveau document et colle le texte du presse-papier
          Documents.Add
          Selection.Paste
     
     
         nom0 = ActiveDocument.Paragraphs(11).Range.Words(6)
         nom1 = ActiveDocument.Paragraphs(11).Range.Words(7)
         nom2 = ActiveDocument.Paragraphs(11).Range.Words(8)
         nom3 = ActiveDocument.Paragraphs(11).Range.Words(9)
         nom4 = ActiveDocument.Paragraphs(11).Range.Words(10)
         nom5 = ActiveDocument.Paragraphs(11).Range.Words(11)
         nom6 = ActiveDocument.Paragraphs(11).Range.Words(12)
     
         nomtl = nom0 & nom1 & nom2 & nom3 & nom4 & nom5 & nom6
     
         ChangeFileOpenDirectory "X:\DOCUM\3910\3913 Gestion_redev_elimin\18 developpement_informatique\test\" _
         & nom2 & "\" & nom4 + nom5 + nom6 & "\Subvention"
     
    '     ActiveDocument.Protect Password:="mddep", NoReset:=False, Type:=wdAllowOnlyFormFields
     
         ActiveDocument.SaveAs FileName:=nomtl & "_test.doc"
    '
     
         ActiveDocument.Close savechanges = True
     
          'section suivante
         Application.Browser.Next
       Next i
    End Sub
    Et mon document commence toujours par:

    Québec, le 15 janvier 2013

    Monsieur X
    Maire
    Municipalité de Québec (ligne #6)
    4, 2e Rang Centre
    Québec (Québec) X0X 0X0


    N/Réf. : 3911-01-110-0059 (ligne #11)


    Et mes liens de dossiers sont:

    X:\DOCUM\3910\3913 Gestion_redev_elimin\18 developpement_informatique\test\01\110-0059 - Québec\Subvention

    Lorsque le cheminement du dossier est:

    X:\DOCUM\3910\3913 Gestion_redev_elimin\18 developpement_informatique\test\01\110-0059\Subvention

    Tout va comme sur des roulettes!!

    Évidemment, ils ne s'appellent pas tous - Québec

    Avez-vous des idées??
    ps: j'ai déjà essayé "*\Subvention"


    Merci d'avance!

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    L'opérateur de concaténation (addition de deux chaînes de caractères) est le & (esperluette).

    Rien ne sert de changer cette propriété : ChangeFileOpenDirectory

    Si tu mets le chemin complet dans le SaveAs, ça fonctionne tout aussi bien.

    Essaie pour chaque étape de faire un Debug.print pour voir ce qui est utilisé.

    Ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Debug.print "X:\DOCUM\3910\3913 Gestion_redev_elimin\18 developpement_informatique\test\" _
         & nom2 & "\" & nom4 + nom5 + nom6 & "\Subvention"
    Ou encore
    Je comprend pas tout.

    Ce qui te manque c'est la municipalité ?

    Elle est sur la ligne 6

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    activedocument.Paragraphs(6).Range.Words(3).Text
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Pas de problème avec le nom du document (nomtl), tout fonctionne bien


    Avec debug.print :
    X:\DOCUM\3910\3913 Gestion_redev_elimin\18 developpement_informatique\test\01\110-0059*\Subvention

    Hors l'étoile ne devrait-elle pas sortir une chaîne de caractères quelconque et ainsi chercher le dossier commençant par 110-0059 peut importe la suite de caractères suivantes?

    Je n'ai pas réussit à prendre juste le nom de la ville, le nombre de caractères change à chaque fois (ex: Canton d'Albertville qui aura le nom de dossier 110-0060 - Albertville)
    Ce qu'il me manque pourrait effectivement être la municipalité, malheureusement ce n'est pas toujours une municipalité et dans les dossiers le mot "municipalité" n'est pas inscrit
    ex:
    Mon dossier se nomme 110-0059 - Québec et pas 110-0059 - Municipalité de Québec ou juste 110-0059... ce qui serait beaucoup plus simple!


    Bref, je pourrais aussi essayer de prendre tous les caractères qui se trouvent sur la ligne #11 avant "(Québec)", mais je n'en suis pas plus capable!


    ps: un énorme merci pour l'aide

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Si le mot que tu souhaites est le dernier, il suffit prendre le dernier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    activedocument.Paragraphs(11).Range.Words((activedocument.Paragraphs(11).Range.Words.Count)-2).Text
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Ce n'est pas le dernier!

    Un autre exemple:

    Québec, le 15 janvier 2013

    Monsieur X
    Maire
    Territoire non organisé de Notre-Dame-des-Neiges (ligne #6)
    4, 2e Rang Centre
    Notre-Dame-des-Neiges (Québec) X0X 0X0 (ligne #8)


    N/Réf. : 3911-01-110-0059 (ligne #11)


    Tu vois mon problème? Ce n'est jamais le même nombre de mots

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Dans ce cas, c'est ingérable, sauf si tu fais une comparaison avec toutes les valeurs possibles pour trouver la bonne.

    Je suppose que ton fichier est le résultat d'un publipostage.

    Dans ce cas, tu peux toujours enregistrer lors de chaque fusion et pas quand elle est terminée.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #7
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Dans ce cas, c'est ingérable, sauf si tu fais une comparaison avec toutes les valeurs possibles pour trouver la bonne.

    Je suppose que ton fichier est le résultat d'un publipostage.

    Dans ce cas, tu peux toujours enregistrer lors de chaque fusion et pas quand elle est terminée.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Oui je pense m'en être rendue compte finalement.

    Je vais changer probablemnet les noms de dossiers pour seulement le numéro du dossier, ça va être plus simple!!!

    Mais un gros merci pour avoir essayé!

  9. #9
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Une donnée fixe à un endroit fixe, c'est facile.
    Si la taille de la donnée est variable et sa taille variable, ça devient très compliqué.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  10. #10
    Futur Membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Hey hey!!

    Nous avons trouvé la réponse finalement à mon bureau!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
         cherche = Dir("X" & ":\" & "DOCUM\3910\3913 Gestion_redev_elimin\18 developpement_informatique\test\" _ 
    & nom2 & "\" & nom4 + nom5 + nom6 & "*", vbDirectory)
     
     
         ChangeFileOpenDirectory "X:\DOCUM\3910\3913 Gestion_redev_elimin\18 developpement_informatique\test\" _
         & nom2 & "\" & cherche & "\Subvention"

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

Discussions similaires

  1. [XL-2002] Macros pour enregistrer le fichier
    Par minimoack dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/01/2013, 09h30
  2. Prob macro pour enregistrer un doc sur ftp avec vba
    Par darkogro dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/06/2010, 08h21
  3. [HTML] Macro pour modifier plusieur fichier html
    Par naouah dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 16/01/2009, 09h40
  4. Crée macro pour enregistrer en fichier .csv
    Par jonki dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/07/2008, 14h24
  5. Chemin pour enregistrer un fichier sur le serveur
    Par Scrountch dans le forum Glassfish et Payara
    Réponses: 3
    Dernier message: 11/03/2008, 11h52

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