Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Word > VBA Word

Réponse
 
Outils de la discussion
Vieux 03/11/2008, 13h26   #1 (permalink)
Invité de passage
 
Date d'inscription: mai 2008
Messages: 5
Par défaut template .dot changer nom de fichier

Bonjour,

Voici mon problème:

Je génère des fichiers Word depuis une base de données Acces, ces fichiers sont basés sur des modèles de documents.
Les documents Word sont affichées à l'écran pour être vérifié et(ou) modifié par l'utilisateur. L'utilisateur peut para la suite enregistrer le document.
Mon problème c'est que le nom du document est "document#.doc" et au moment de l'enregistrement le nom prend les premiers mots du documents, moi ce que je veux c'est pouvoir changer le nom du document au moment de ça génération.

PS: Si le problème a déjà été posté ou s'il existe un faq merci de m'y redirigé, après plusieurs recherches je n'ai pas trouvé.

Ma fonction:
Code :
 
Public Function PrintDocument() As Boolean
    Dim rs As Recordset
    
    Dim szDocumentPath As String
    Dim szDocumentName As String
    Dim szDocumentPathName As String
    Dim szDocumentTarget As String
    Dim szDocumentID As String
    Dim pathDossierTraites As String
    
 
    szDocumentPath = "C:\Test\"
    szDocumentName = "FichierTest.dot"
    szDocumentPathName = szDocumentPath & szDocumentName
    
    'Répertoire d'enregistrement des documents
    pathDossierTraites = "C:\Save\"
    
    If FileExists(szDocumentPathName) Then
    
        objWord.Documents.Add (szDocumentPathName) ' Ouvertur du modèle de document
 
        Options.DefaultFilePath(wdDocumentsPath) = pathDossierTraites ' Indication du répertoire d'enregistrement
        
        'Merge Data
        If MergeData() Then 
                PrintDocument = True
        Else
            MsgBox "Merge Error"
        End If
        
        'Set focus on WinWord
        objWord.Visible = True
        objWord.Activate
        
    Else
        MsgBox "Impossible de localiser le template : " & szDocumentPath
        'LogDocument DocumentID, "Error : Template Not found"
        Set objWord = Nothing
    End If
 
End Function
 
 
Kezotett est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/11/2008, 16h42   #2 (permalink)
Responsable Word
 
Avatar de Heureux-oli
 
Date d'inscription: février 2006
Localisation: Morlanwelz (Carnières)
Âge: 44
Messages: 10 459
Par défaut

Bonjour et bienvenue sur les forums Office de DVP.

Je vais te donner deux liens vers des tutoriels sur le publipostage.

http://heureuxoli.developpez.com/off.../publipostage/

http://heureuxoli.developpez.com/publipostage/

L'enregistrement des fichiers y est abordé.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Ne posez pas de question par MP, c'est inutile.
Les rubriques Office recrutent.
Ma page d'accueil
Consultez nos FAQ !! Word ; Access ; Outlook ; Excel ; PowerPoint ; SharePoint
Si vous pensez que certains sujets manquent dans la FAQ, aidez nous !
Des images
Heureux-oli est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 05/11/2008, 18h09   #3 (permalink)
Invité de passage
 
Date d'inscription: mai 2008
Messages: 5
Par défaut

Merci pour la réponse mais après avoir lu les documents, les solutions apportés ne répondent pas à mes besoins.
Ce qui est proposé dans les solutions c'est d'enregistrer les documents par la base access.
Ce que je souhaite c'est définir le nom du document mais laisser libre choix à l'utilisateur d'enregistrer ou non le document.

D'autre suggestions de la communauté ?
Kezotett est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/11/2008, 18h43   #4 (permalink)
Responsable Word
 
Avatar de Heureux-oli
 
Date d'inscription: février 2006
Localisation: Morlanwelz (Carnières)
Âge: 44
Messages: 10 459
Par défaut

Citation:
Mon problème c'est que le nom du document est "document#.doc" et au moment de l'enregistrement le nom prend les premiers mots du documents, moi ce que je veux c'est pouvoir changer le nom du document au moment de ça génération.
C'est donc après la génération que tu veux enregistrer le document et pas au moment de la génération.

Il suffit d'utiliser une boîte de dialogue.

Code :
Dim Dlg as FileDialog
 
Set Dlg = Application.FileDialog(msoFileDialogSaveAs)
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Ne posez pas de question par MP, c'est inutile.
Les rubriques Office recrutent.
Ma page d'accueil
Consultez nos FAQ !! Word ; Access ; Outlook ; Excel ; PowerPoint ; SharePoint
Si vous pensez que certains sujets manquent dans la FAQ, aidez nous !
Des images
Heureux-oli est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 10/11/2008, 18h55   #5 (permalink)
Invité de passage
 
Date d'inscription: mai 2008
Messages: 5
Par défaut

Ach, c'est proche mais c'est pas encore ça.

Dans mon idée c'est réellement l'utilisateur qui est à l'origine de l'action d'enregistrement.
L'application ne génère que le documents avec le bon nom.
Kezotett est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 10/11/2008, 19h07   #6 (permalink)
Responsable Word
 
Avatar de Heureux-oli
 
Date d'inscription: février 2006
Localisation: Morlanwelz (Carnières)
Âge: 44
Messages: 10 459
Par défaut

Reprenons :

Tu veux que le nom du document soit préétabli, mais la sauvegarde pas encore effectuée.
Au moment de la sauvegarde, le nom de la génération est proposé par défaut, mais l'utilisateur doit pouvoir le changer ?
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Ne posez pas de question par MP, c'est inutile.
Les rubriques Office recrutent.
Ma page d'accueil
Consultez nos FAQ !! Word ; Access ; Outlook ; Excel ; PowerPoint ; SharePoint
Si vous pensez que certains sujets manquent dans la FAQ, aidez nous !
Des images
Heureux-oli est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 10/11/2008, 20h00   #7 (permalink)
Invité de passage
 
Date d'inscription: mai 2008
Messages: 5
Par défaut

Tu veux que le nom du document soit préétabli, mais la sauvegarde pas encore effectuée.
Exactement

Au moment de la sauvegarde, le nom de la génération est proposé par défaut, mais l'utilisateur doit pouvoir le changer ?
Si possible (pas de VB dans le document word )

Je sais que ce n'est pas habituel comme développement.
Mais j'ai cherché partout et soit je crée mal mon document, soit c'est pas possible, soit j'ai pas bien cherché
Kezotett est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 10/11/2008, 22h43   #8 (permalink)
Responsable Word
 
Avatar de Heureux-oli
 
Date d'inscription: février 2006
Localisation: Morlanwelz (Carnières)
Âge: 44
Messages: 10 459
Par défaut

Sans VB, c'est pas facile, mais avec une ruse peut-être.
Ce sont en général les premiers mots qui sont pris en comptes.

Comme premiers mots, essaie de mettre les mots que tu veux avoir, diminue la police et met là en blanc !

Je ne vois que cette solution.

Tu as aussi la possibilité de mettre ce que tu veux dans les propriétés de ton document et utilise la propriété Sujet.

Code :
ActiveDocument.BuiltInDocumentProperties("Subject") = mavaleur
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Ne posez pas de question par MP, c'est inutile.
Les rubriques Office recrutent.
Ma page d'accueil
Consultez nos FAQ !! Word ; Access ; Outlook ; Excel ; PowerPoint ; SharePoint
Si vous pensez que certains sujets manquent dans la FAQ, aidez nous !
Des images

Dernière modification par Heureux-oli ; 10/11/2008 à 22h55
Heureux-oli est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 10/11/2008, 23h08   #9 (permalink)
Invité de passage
 
Date d'inscription: mai 2008
Messages: 5
Par défaut

Je cherchais pendant que tu as posté, j'ai trouvé :

ActiveDocument.BuiltInDocumentProperties(wdPropertyTitle) = value

ça marche presque mais ma valeur n'est pas prise en compte comme il faut.

J'ai bien la propriété qui vaut "value" mais quand je fais enregistrer-sous ça donne rien.
Dans le document ouvert quand je fais Propriété-> OK, la "value" est bien prise en compte et mon enregistrer-sous vaut bien "value", c'est bizarre comme réaction de word.

Je continu mon investigation.

Merci pour ton aide, les choses avances.

PS: Après recherche le document prend en compte une autre valeur.
Propriété du document / Onglet Contenu / Titre

Dernière modification par Kezotett ; 10/11/2008 à 23h29
Kezotett est déconnecté   Envoyer un message privé Réponse avec citation
NEWS MS-OFFICEFAQs OFFICETUTORIELS OFFICELIVRES OFFICESOURCES VBA

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Word > VBA Word



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide