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 :

Enregistrer des documents qui porte le même nom [WD-2003]


Sujet :

VBA Word

  1. #1
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut Enregistrer des documents qui porte le même nom
    Voilà :

    Sur un document Word j'ai une macro qui me permet d'enregistrer le document dans un repertoire precis dans un dossier precis en fonction d'un champ du document (les champs sont renseigné par une BD Access 2003)

    Voici le 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
    Sub MonPubli()
    Dim myDoc As Document
    Dim stName As String
    Dim iPrec As Integer
    Set myDoc = ActiveDocument
    Dim stRep As String
     
    With myDoc.MailMerge
        .DataSource.ActiveRecord = wdFirstRecord
        While iPrec < .DataSource.ActiveRecord
            .DataSource.FirstRecord = .DataSource.ActiveRecord
            .DataSource.LastRecord = .DataSource.ActiveRecord
            .Destination = wdSendToNewDocument
            .Execute
    stName = "D:\Company\PM\SE\" & .DataSource.DataFields(1) & "\FAX.doc"
    Debug.Print stName
    '-------------------------------------------------------------------------------
    '----------------Vérifie si le fichier existe déjà -----------------------------
    If Dir(stName) <> "" Then
    MsgBox ("Le Document Existe Déjà, Faire Enregistrer Sous et le Renommer")
    Exit Sub
    Else
    End If
    '-------------------------------------------------------------------------------
    '-----------------Vérifie si le Dossier existe déjà-----------------------------
    stRep = .DataSource.DataFields(1)
    Dim Chemin As String
                'Vérifie si le répertoire existe.
        If Dir("D:\Company\PM\SE", vbDirectory + vbHidden) <> "" Then
                'Vérifie que le dossier à créer n'existe pas déjà dans le répertoire
            If Dir("D:\Company\PM\SE" & "\" & stRep, vbDirectory + vbHidden) = "" Then _
                MkDir "D:\Company\PM\SE" & "\" & stRep
        End If
    '---------------------------------------------------------------------------------------------------------------
            ActiveDocument.SaveAs stName
            ActiveDocument.PrintOut
            myDoc.PrintOut
            ActiveDocument.Close False
            iPrec = .DataSource.ActiveRecord
     
        Wend
    End With
    myDoc.Parent.Quit False
    End Sub
    Toutefois, je voudrais le modifier :

    D'aprés le code, lorsque dans le dossier, un document nommé "Fax.doc" existe déjà je voudrais qu'à la fin de celui que j'ai et que ne peut donc pas enregistrer, il s'y rajoute "2" (par exemple) pour obtenir "Fax2.doc" et si celui ci existe déjà je puisse avoir "Fax3.doc" (même si c'est un truc qui ne doit arriver que trés rarement)

    J'espère mettre bien expliqué

  2. #2
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut,

    Dans ton code,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    '-------------------------------------------------------------------------------
    '----------------Vérifie si le fichier existe déjà -----------------------------
    If Dir(stName) <> "" Then
    MsgBox ("Le Document Existe Déjà, Faire Enregistrer Sous et le Renommer")
    Exit Sub
    Else
    End If
    il faut remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
       nb = 1
       While Dir(stName) <> ""
          If (nb = 1) Then
             stName = Left(stName, Len(stName) - 4)
          Else
             stName = Left(stName, Len(stName) - Len(Trim(Str$(nb))) - 4)
          End If
          nb = nb + 1
          stName = stName + Trim(Str$(nb)) + ".doc"
       Wend
    @+

  3. #3
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut
    J'ai testé et on dirait que ça marche nickel




    Si j'ai un problème je reviendrais

  4. #4
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Citation Envoyé par FCL31 Voir le message
    J'ai testé et on dirait que ça marche nickel
    De rien

    Citation Envoyé par FCL31 Voir le message
    Si j'ai un problème je reviendrais
    Pas de problème, normalement on devrait être là .

    @+

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

Discussions similaires

  1. [Google Maps] Des villes qui portent le même nom dans diffèrents pays
    Par bhrochdi dans le forum APIs Google
    Réponses: 2
    Dernier message: 15/10/2014, 11h18
  2. feuille qui porte le même nom impossible a créer
    Par phileurof dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 10/11/2013, 16h21
  3. Réponses: 2
    Dernier message: 13/01/2011, 18h14
  4. Réponses: 4
    Dernier message: 26/09/2006, 11h42

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