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 une copie du document en Word sans enregistrer le doc [WD-2016]


Sujet :

VBA Word

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Points : 145
    Points
    145
    Par défaut enregistrer une copie du document en Word sans enregistrer le doc
    Bonjour,

    J'avais ce code pour enregistrer le document en PDF puis ne pas sauvegarder le document Word :
    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
    Sub EnregistrerPDF()
     
    Dim CheminCompletExport As String
     
         With ActiveDocument
     
     
              CheminCompletExport = "C:\Users\GAE\Desktop\Rapport à récupérer\" & NomSansExtension(.Name) & ".PDF"
             .ExportAsFixedFormat OutputFileName:=CheminCompletExport, ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False
     
        End With
        ActiveWindow.Close SaveChanges:=wdDoNotSaveChanges
     
     
    End Sub
    Je l'ai modifié en ce code mais il y a des erreurs de débogage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim CheminCompletExport As String
     
         With ActiveDocument
     
     
              CheminCompletExport = "C:\Users\GAE\Desktop\Rapport à récupérer\" & NomSansExtension(.Name) & ".docm"
             .ExportAsFixedFormat OutputFileName:=CheminCompletExport, ExportFormat:=wdExportFormatwd, OpenAfterExport:=False
     
        End With
        ActiveWindow.Close SaveChanges:=wdDoNotSaveChanges
     
     
    End Sub
    je pense que l'erreur intervient du fait qu'il y ait un changement de format qui ne s'effectue pas mais je ne sais pas vraiment comment résoudre le problème.

    Merci pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sorbetframboise Voir le message
    Bonjour,

    Votre code comporte une fonction absente dans votre message. Donc en supposant qu'elle fonctionne correctement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub EnregistrerPDF()
     
    Dim CheminCompletExport As String
     
         With ActiveDocument
     
               CheminCompletExport = "C:\Users\GAE\Desktop\Rapport à récupérer\" & NomSansExtension(.Name) & ".PDF"
              .ExportAsFixedFormat OutputFileName:=CheminCompletExport, ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False
              .Close SaveChanges:=False
     
        End With
     
    End Sub

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Points : 145
    Points
    145
    Par défaut
    La fonction est présente dans mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function NomSansExtension(ByVal NomDoc As String) As String
     
    Dim I As Integer, PositionPoint As Integer
     
        For I = Len(NomDoc) To 1 Step -1
            If Mid(NomDoc, I, 1) = "." Then
               PositionPoint = I
               Exit For
            End If
        Next I
        NomSansExtension = ActiveDocument.Words(10) & "-" & ActiveDocument.Words(12)
     
    End Function
    je ne l'ai juste pas mise car le problème ne vient pas de là, je n'arrive pas à enregistrer une copie du document en Word sans enregistrer le document lui même j'ai réussi en PDF mais je n'arrive pas à adapter mon code à du Word.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sorbetframboise Voir le message
    Je serais curieux de savoir ce que donne votre fonction chez vous....

    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
     
    Sub EnregistrerPDF()
     
    Dim CheminCompletExport As String, NouveauNom As String
     
         NouveauNom = NouveauNom2(ActiveDocument)
         If NouveauNom = "Non valide" Then Exit Sub
     
         With ActiveDocument
              CheminCompletExport = "C:\Users\GAE\Desktop\Rapport à récupérer\" & NouveauNom
             ' CheminCompletExport = .Path & "\" & NouveauNom
              .SaveAs2 CheminCompletExport, wdFormatXMLDocumentMacroEnabled
              .Close SaveChanges:=False
        End With
     
    End Sub
     
     
    Function NouveauNom2(ByVal Doc As Document) As String
     
     Dim I As Integer, J As Integer
     
         With Doc
              J = 0
              For I = 1 To .Words.Count
                  Select Case .Words(I).Text
                         Case "", " ", ",", Chr(10), Chr(13), Chr(11), Chr(12), "."  ' A compléter le cas échéant
     
                         Case Else
                            If J = 10 Then NouveauNom2 = .Words(I).Text
                            If J = 12 Then
                               NouveauNom2 = NouveauNom2 & "-" & .Words(I).Text & ".docm"
                               Exit For
                            End If
                            J = J + 1
                  End Select
              Next I
         End With
         If J < 12 Then NouveauNom2 = "Non valide"
     
    End Function

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Points : 145
    Points
    145
    Par défaut
    c'est parfait merci voici le code final, j'ai adapté votre solution à la mienne merci beaucoup.
    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
     
     
    Private Sub CommandButton1_Click()
     
    Dim CheminCompletExport As String
     
         With ActiveDocument
     
     
              CheminCompletExport = "C:\Users\GAE\Desktop\Rapport à récupérer\" & NomSansExtension(.Name) & ".docm"
     
              .SaveAs2 CheminCompletExport, wdFormatXMLDocumentMacroEnabled
              .Close SaveChanges:=False
     
        End With
    ActiveWindow.Close SaveChanges:=wdDoNotSaveChanges
     
    End Sub
     
    Function NomSansExtension(ByVal NomDoc As String) As String
     
    Dim I As Integer, PositionPoint As Integer
     
        For I = Len(NomDoc) To 1 Step -1
            If Mid(NomDoc, I, 1) = "." Then
               PositionPoint = I
               Exit For
            End If
        Next I
        NomSansExtension = ActiveDocument.Words(10) & "-" & ActiveDocument.Words(12)
     
    End Function
    Ce que permet de faire ma fonction, c'est de nommer le document avec les données associées au document exemple :

    Image d'un document non rempli en dehors du numéro d'OT :

    Nom : Capture1.PNG
Affichages : 189
Taille : 14,2 Ko

    Le document s'enregistre automatiquement à l'endroit voulu avec comme nom le numéro d'OT auquel il est associé.

    Nom : Capture2.PNG
Affichages : 188
Taille : 10,8 Ko

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

Discussions similaires

  1. Copié collé tableaux excel à word (sans SELECT)
    Par gollum38 dans le forum VBA Word
    Réponses: 0
    Dernier message: 29/08/2016, 10h06
  2. Réponses: 0
    Dernier message: 28/12/2015, 20h36
  3. [WD-2007] Ajouter une Propriété de document dans Word 2007/2010
    Par yanou91 dans le forum Word
    Réponses: 19
    Dernier message: 09/02/2015, 00h08
  4. Faire une copie de base sans les enregistrements.
    Par ElsasseR dans le forum Access
    Réponses: 4
    Dernier message: 17/12/2006, 16h15
  5. Réponses: 8
    Dernier message: 19/10/2006, 09h47

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