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 Discussion :

Création de Dossiers avec Excel et création de fichiers avec word


Sujet :

VBA

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2017
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Création de Dossiers avec Excel et création de fichiers avec word
    Bonjour tout le monde.

    Je viens vers vous car après de nombreuses recherches, je ne trouve pas mon bonheur.

    Je cherche à réaliser 2 choses avec les outils Office.

    1/Création de dossiers et sous-dossiers

    Fichier : https://we.tl/uHHgvHUWSV

    Je souhaite générer des dossier avec 1 sous dossier à partir d'une liste sur Excel.

    Onglet : HVAC Status

    J'utilise 2 parties sur mon fichier Excel :

    - Une cellule avec le chemin d'accès pour créer le dossier qui est en "E5".
    - Colonne A = Nom du dossier

    Voici la macro que j'ai utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub créer_dossiers()
    On Error Resume Next
    Dim lig As Byte, cptr As Byte
    lig = Range("A65536").End(xlUp).Row
    For cptr = 1 To lig
    MkDir "C:\Users\timothee.vanderhorst\Documents\test"
    MkDir "C:\Users\timothee.vanderhorst\Documents\test\" & Cells(cptr, 1)
    Next
    End Sub
    J'aimerais utiliser directement la case "E5" plutôt que de devoir ré-ouvrir la macro à chaque fois pour changer le chemin d'accès.
    Je ne vois pas du tout comment créer un seul sous-dossier (à nommer Fichiers) par dossier créé via la colonne A.

    Comme suit :

    C:\Users\timothee.vanderhorst\Documents\test\TF - HVAC - 101.01.01 GASCONDENSATIEKETEL\Fichiers
    C:\Users\timothee.vanderhorst\Documents\test\TF - HVAC - 101.01.02 CONDENSERENDE GASWANDKETELS\Fichiers
    C:\Users\timothee.vanderhorst\Documents\test\TF - HVAC - 101.02.03 EXPANSIESYSTEEM\Fichiers
    ......



    2/Publipostage depuis Excel

    Fichier : https://we.tl/z7Ld2rYCNL

    J'ai crée un modèle Word qui effectue un publipostage depuis mon premier fichier Excel avec l'onglet "HVAC DATAS".

    J'ai bien trouvé une macro afin de publiposter tous mes fichiers en les séparant tous, mais je ne sais pas comment faire pour les mettre dans mes dossiers crées (pas les sous-dossier, bien les dossiers créés précédemment via la colonne A).

    Voici la macro utilisé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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    'Publipostage > Word, enregistrement individuel en PDF
     
    Sub TestPublipostPdf()
    ' Déclaration des variables
    Dim iR As Integer
    Dim i As Integer
    Dim oDoc As Document
    Dim DocName As String
    Dim oDS As MailMergeDataSource
     
    ' Affectation des objets
    Set oDoc = ActiveDocument
    Set oDS = oDoc.MailMerge.DataSource
     
    iR = oDoc.MailMerge.DataSource.RecordCount
    Debug.Print iR
    For i = 1 To iR
        With oDoc.MailMerge
            'Définition du premier et dernier enregistrement
            .DataSource.FirstRecord = i
     
            .DataSource.LastRecord = i
            ' Envoi des données dans un nouveau document
            .Destination = wdSendToNewDocument
            ' Exécution du publipostage
            .Execute
            ' Actualisation de l'enregistrement pour la sauvegarde
            .DataSource.ActiveRecord = i
            'Utilisation de deux champs pour obtenir le nom du document ; remplacer le chiffre 6 par le numéro de colonne qui contient l'adresse mail
            'si c'est pour un envoi sur outlook avec la macro en individuel ou par le n° de col qui servira de nom ) votre pdf
             DocName = .DataSource.DataFields(2).Value
                'Si vous souhaitez utiliser deux champs pour nommer votre document retirez la quote devant la ligne qui suit et remplacer le n° de colonne
             DocName = DocName & "-" & .DataSource.DataFields(4).Value
            Debug.Print DocName; i
        End With
        ' Chemin de Sauvegarde du document publiposté ; modifier le chemin avec les guillemets sans oublier de mettre un \ à la fin
        With ActiveDocument
            'N'oubliez pas de rajouter un \ après le nom de votre dossier et avant la fermeture des guillemets
            .SaveAs "C:\Users\timothee.vanderhorst\Documents\test\" & DocName & ".pdf", wdExportFormatPDF
            .Close False
     
        End With
    Next i
    End Sub
     
    'Publipostage > Word, enregistrement individuel en DOC
     
     
    Sub TestPublipostDoc()
    ' Déclaration des variables
    Dim iR As Integer
    Dim i As Integer
    Dim oDoc As Document
    Dim DocName As String
    Dim oDS As MailMergeDataSource
     
    ' Affectation des objets
    Set oDoc = ActiveDocument
    Set oDS = oDoc.MailMerge.DataSource
     
    iR = oDoc.MailMerge.DataSource.RecordCount
    Debug.Print iR
    For i = 1 To iR
        With oDoc.MailMerge
            'Définition du premier et dernier enregistrement
            .DataSource.FirstRecord = i
     
            .DataSource.LastRecord = i
            ' Envoi des données dans un nouveau document
            .Destination = wdSendToNewDocument
            ' Exécution du publipostage
            .Execute
            ' Actualisation de l'enregistrement pour la sauvegarde
            .DataSource.ActiveRecord = i
            'Utilisation de deux champs pour obtenir le nom du document ; remplacer le chiffre 6 par le numéro de colonne qui contient l'adresse mail
            'si c'est pour un envoi sur outlook avec la macro en individuel ou par le n° de col qui servira de nom ) votre doc
             DocName = .DataSource.DataFields(2).Value
               'Si vous souhaitez utiliser deux champs pour nommer votre document retirez la quote devant la ligne qui suit et remplacer le n° de colonne
             DocName = DocName & "-" & .DataSource.DataFields(4).Value
            Debug.Print DocName; i
        End With
        ' Chemin de Sauvegarde du document publiposté ; modifier le chemin avec les guillemets sans oublier de mettre un \ à la fin
        With ActiveDocument
        'N'oubliez pas de rajouter un \ après le nom de votre dossier et avant la fermeture des guillemets
            .SaveAs "C:\Users\timothee.vanderhorst\Documents\test\" & DocName & ".doc"
            .Close
        End With
    Next i
    End Sub
    Comme je l'ai écris plus haut, je souhaite que ces documents uniques soient bien à leur place à savoir ce genre d'architecture :

    C:\Users\timothee.vanderhorst\Documents\test\TF - HVAC - 101.01.01 GASCONDENSATIEKETEL\voorblaad technische fiche 101.01.01 GASCONDENSATIEKETEL.doc
    C:\Users\timothee.vanderhorst\Documents\test\TF - HVAC - 101.01.01 GASCONDENSATIEKETEL\voorblaad technische fiche 101.01.02 CONDENSERENDE GASWANDKETELS.doc
    C:\Users\timothee.vanderhorst\Documents\test\TF - HVAC - 101.01.01 GASCONDENSATIEKETEL\voorblaad technische fiche 101.02.03 EXPANSIESYSTEEM.doc
    ......


    Dans l'attente d'une âme charitable qui puisse m'aider.

    Merci à vous !!
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, parmi une myriade, à adapter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Option Explicit
     
    Private Sub CreationDossier(sDossier As String)
    Dim sChaine As String
        sChaine = Environ("comspec") & " /c mkdir " & sDossier
        Shell sChaine, 0
    End Sub
     
    Sub Tst()
    Dim sChemin As String
        sChemin = "C:\Essai1\Essai2\Essai3\Essai4\Essai5"
        CreationDossier sChemin
    End Sub

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2017
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour kiki29,

    Avec ce bout de code, je peux l'adapter pour créer plusieurs dossiers ou 1 seul ?

    Merci.

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/03/2016, 19h05
  2. Ouvrier un fichier avec macro depuis un autre fichier avec macro
    Par Jeanvaljean44 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/11/2008, 11h23
  3. gerer les erreurs de fichiers avec excel en automation
    Par avenger-france dans le forum Excel
    Réponses: 2
    Dernier message: 07/11/2007, 18h39
  4. Lecture d'un fichier avec Excel . .
    Par Flow_75 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/06/2006, 21h59

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