enregistrer une sélection excel au format word

stash

XLDnaute Nouveau
Bonjour,

jai un code que j'utilisais pour sauvegarder au format PDF....
Est il possible de l'adapter pour sauvegarder au format word?
j'essaye avec le code ci dessous, mais je bloque sur le TYPE....
le rest c'est ok, ça m'enregistre mes 3 feuilles avec le bon nom, mais au format pdf...
Code:
Sub Enreg_word()

    Dim LeCode As String, LeRep As String
    LeCode = ActiveSheet.Name
    LeRep = ThisWorkbook.Path & "\" 
    ActiveSheet.ExportAsFixedFormat Type:=xlTypeDOCX, Filename:= _
        ActiveSheet.Range("A1"), Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        From:=1, To:=3, OpenAfterPublish:=True
    
           
    End Sub
Cette macro est sur le module 1, avec le mouton "exporter FT"

Merci de votre aide
 

Fichiers joints

stash

XLDnaute Nouveau
Re : enregistrer une sélection excel au format word

J'ai ce code^^

il me permet de créer le document word avec les données que je veux(sauvegarde d'une séelction au format word)
par contre, comment faire pour pour que le document ainsi créé se sauvegarde dans le même dossier que le fichier excel(et non dans "mes documents"?

Et autre question...comment faire pour que la mise en page(zone impression) soit identique sur le doc word que sur le fichier source excel?

Mille merci!!!!!!


Code:
Sub Excel_Word()
 
Dim oWdApp As Word.Application 'et non Object
Dim oWdDoc As Word.Document 'et non Object

'Lancer une instance Word
Set oWdApp = CreateObject("Word.Application")
 
'Ouvrir un nouveau document
Set oWdDoc = oWdApp.Documents.Add
 
'Rendre Word visible
oWdApp.Visible = True
 
'Copier une plage depuis Excel
ActiveSheet.Range("B1:I132").Copy
 
'Coller la plage dans Word
oWdApp.Selection.Paste
oWdApp.Selection.Tables(1).AutoFitBehavior (wdAutoFitWindow)
 
 Application.CutCopyMode = False
 
     Dim Chemin As String, NomFich As String

    '** Sauvegarde du fichier Word **
        'Information du chemin de sauvegarde
        Chemin = "C:\Users\croquanterie\Desktop\Test automatisation FT CDD\"
        
        'Information du nom du fichier
        NomFich = [A1]
 
    If Dir(Chemin & NomFich) <> "" Then
        NomFich = NomFich
        MsgBox "Le fichier existe déjà et sera enregistré sous : " & NomFich
    End If
    
    oWdApp.ActiveDocument.SaveAs Filename:=NomFich, FileFormat:=wdFormatDocument _
    , LockComments:=False, Password:="", AddToRecentFiles:= _
        True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
        False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
        SaveAsAOCELetter:=False

End Sub
 

Paf

XLDnaute Barbatruc
Re : enregistrer une sélection excel au format word

Bonjour,

comment faire pour pour que le document ainsi créé se sauvegarde dans le même dossier que le fichier excel
a priori en modifiant la ligne de code ainsi
Code:
        'Information du chemin de sauvegarde
        Chemin = ActiveWorkbook.Path
A+
 

stash

XLDnaute Nouveau
Re : enregistrer une sélection excel au format word

Le problème reste....
merci quand même d'avoir pris le temps de me répondre^^
 

Paf

XLDnaute Barbatruc
Re : enregistrer une sélection excel au format word

Re

j'avais lu un peu vite le reste du code

à essayer:

modifier Chemin = ActiveWorkbook.Path en Chemin = ActiveWorkbook.Path & "\"

et
oWdApp.ActiveDocument.SaveAs Filename:=NomFich,... en oWdApp.ActiveDocument.SaveAs Filename:=Chemin & NomFich,...

A+
 

stash

XLDnaute Nouveau
Re : enregistrer une sélection excel au format word

lol...j'ai trouver^^
on remplace
Code:
  Filename:=NomFich
par
Code:
Filename:="C:\Users\croquanterie\Desktop\Test automatisation FT CDD" & "\" _
& Range("A1").Value
Ce qui donne au final
Code:
Sub Excel_Word()
 
Dim oWdApp As Word.Application 'et non Object
Dim oWdDoc As Word.Document 'et non Object

'Lancer une instance Word
Set oWdApp = CreateObject("Word.Application")
 
'Ouvrir un nouveau document
Set oWdDoc = oWdApp.Documents.Add

 
'Rendre Word visible
oWdApp.Visible = True
 
'Copier une plage depuis Excel
ActiveSheet.Range("B1:I132").Copy
 
'Coller la plage dans Word
oWdApp.Selection.Paste
oWdApp.Selection.Tables(1).AutoFitBehavior (wdAutoFitWindow)
 
 Application.CutCopyMode = False
 
     Dim Chemin As String, NomFich As String

    '** Sauvegarde du fichier Word **
        'Information du chemin de sauvegarde
        Chemin = "C:\Users\croquanterie\Desktop\Test automatisation FT CDD" & "\"
        
        'Information du nom du fichier
        NomFich = [A1]
 
    If Dir(Chemin & NomFich) <> "" Then
        NomFich = NomFich
        MsgBox "Le fichier existe déjà et sera enregistré sous : " & NomFich
    End If
    
    oWdApp.ActiveDocument.SaveAs Filename:="C:\Users\croquanterie\Desktop\Test automatisation FT CDD" & "\" _
& Range("A1").Value, FileFormat:=wdFormatDocument _
    , LockComments:=False, Password:="", AddToRecentFiles:= _
        True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
        False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
        SaveAsAOCELetter:=False

End Sub
Il me reste plus qu'à mettre automatiquement en page le document avant sauvegarde^^
 
Dernière édition:

stash

XLDnaute Nouveau
Re : enregistrer une sélection excel au format word

Code:
'Ouvrir un nouveau document
Set oWdDoc = oWdApp.Documents.Add

'Corriger les marges
With oWdDoc.PageSetup
 .LeftMargin = "20"
 .RightMargin = "20"
 .TopMargin = "5"
 .BottomMargin = "5"
 
End With
Avec ces ligne en plus, j'arrive à imposer le marges.....

plus que le texte à mettre en forme....je me retrouve avec des interlignes multiples, et 10 points sous les lignes.....je veux interligne simple et 0 point en dessous des lignes de texte.....
 

stash

XLDnaute Nouveau
Re : enregistrer une sélection excel au format word

Personne ne peut m'aider sur les interligne et points dessous?
 

stash

XLDnaute Nouveau
Re : enregistrer une sélection excel au format word

j'ai trouvé!!!!!

C'était un paramètre par défaut de word à changer.... tout con en fait^^
 
Dernière édition:

Discussions similaires


Haut Bas