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 :

Enregistré un document word dans un dossier dont le nom est incomplet


Sujet :

VBA Word

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Enregistré un document word dans un dossier dont le nom est incomplet
    Bonjour à tous,

    Voilà mon soucis:
    je dois enregistrer un document word généré automatiquement.
    je l'enregistre avec un nom qui est récupéré sur le document par une recherche sur vba (jusque la pas de problème)
    dans un dossier comportant en partie le même nom.
    Exemple : le nom récupéré est 15A001 mais le nom du dossier ou je dois enregistrer est 15A001 PORTO.

    voila une partie de mon du code

    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
    41
    42
    43
    44
    45
     
    Sub VerifieExistenceRepertoire()
    Selection.Find.ClearFormatting
        With Selection.Find
            .Text = "D743/"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
    Selection.Find.Execute
        With Selection
            .MoveRight Unit:=wdWord, Count:=1, Extend:=6
        If Selection.Fields.Count = 1 Then Selection.Fields(1).Update
    End With
     
     
    Dim NumDossier As Variant
    Set NumDossier = ActiveDocument.Range(Selection.Start + 5, Selection.End)
    Dim NomCourrier As String
    NomCourrier = NumDossier & "_AVIS"
     
    Dim Chemin As String
     
    Chemin = "C:\Users\AG23984N\Desktop\Nouveau dossier\" & NumDossier & "*"
     
     
     
    Application.changefileopendirectory "C:\Users\AG23984N\Desktop\Nouveau dossier\" & NumDossier & "*"
     
     
        ActiveDocument.ExportAsFixedFormat OutputFileName:= _
            NomCourrier + MES, ExportFormat:= _
            wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
            wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
            Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
            CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
            BitmapMissingFonts:=True, UseISO19005_1:=False
     
    End Sub

    la fonction dir trouve bien le dossier mais pour définir le chemin pour enregistrer cela ne suffit pas.

    Comment puis-je faire ??

    Merci

  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,

    La ligne avec "changefileopendirectory" n'est pas utile.
    Il te suffit de l'inclue dans le "filename".

    ex : "C:\Temp\monFihier.docm"

    Si tu as besoin d'une concaténation, soit tu le fais dans une variable, soit tu le fais en direct dans l'argument.
    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
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Merci pour ta réponse mais ce n'est pas la question
    je met changefileopendirectory plusieurs fois après cette partie

    Le problème reste le même comment enregistrer dans un dossier dont je n'est qu'une partie du nom?

  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,

    Désolé, suis passé à côté.

    il faut travailler avec du FSO et chercher dans la liste des répertoire obtenu celui qui contient les morceau que tu as.

    http://warin.developpez.com/access/fichiers/
    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
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut



    Bonjour,

    en utilisant la fonction VBA Dir comme pourtant indiqué dans son aide et son exemple …



    ______________________________________________________________________________________________________
    Je suis Charlie, Bardo, Sousse
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  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,


    Je pense que c'est le "*" qu pose problème.
    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
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Salut,


    La fonction Dir que j'ai essayée marche (pas comme je le voudrai) cad que elle trouve que le dossier existe mais je ne peu pas y enregistrer mon fichier
    pour ce qui est des "*" c est ce qui me permet avec Dir de trouver mon dossier sans renseigner le nom complet.

  8. #8
    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 la fonction Dir, je ne dis pas, mais dans les chemins d'enregistrement, les * sont des caractères interdits, il y en a d'autres.
    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 !

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Salut à tous ,

    Voilà j'ai réussi a résoudre mon propre problème ^^

    au cas ou je mets le code avec du FSO (même s'il doit y avoir plus simple)

    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
    Dim objFSO As Object
    Dim objFolder As Object
    Dim objSubFolder As Object
    Dim i As Integer
     
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
     
    Set objFolder = objFSO.GetFolder("C:\Users\AG23984N\Desktop\Nouveau dossier\")
    i = 1
     
    For Each objSubFolder In objFolder.SubFolders
     
     
     
     
    If Left(objSubFolder.Name, 6) = NumDossier Then
        CheminAffaire = objSubFolder.Path
     
     
     
    End If
     
     
        i = i + 1
    Next objSubFolder

  10. #10
    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,

    Je vais donner mon avis.

    il y a certainement pour toncas, plus simple qu'avec FSO, mais avec FSO, quand on maîtrise un peu, on peut faire beaucoup plus.
    Et c'est là que ça fait une différence.
    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 !

Discussions similaires

  1. [XL-2010] VBA exel - Rechercher un classeur dans un sous dossier dont le nom est inconnu
    Par rsuf91 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/12/2014, 14h10
  2. Réponses: 1
    Dernier message: 13/12/2012, 15h45
  3. Enregistrer un document word dans ma base
    Par devvanjier dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 02/09/2010, 02h56
  4. Réponses: 4
    Dernier message: 15/04/2008, 17h41
  5. copy dans un dossier dont le nom contient un espace
    Par amirym dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 23/06/2007, 19h54

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