Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel

Advertisement

Réponse
 
LinkBack Outils de la discussion
Vieux 25/11/2007, 10h10   #1 (permalink)
XLDnaute Occasionel
 
Avatar de Claudy
 
Date d'inscription: août 2005
Localisation: Namur
Messages: 311
Wink .xls vers .doc

Bonjour,
Un userform dans une feuille .xls....OK, pas de problème.
Comment importer les données de l'USF dans un modèle word aux emplacements prévus("signets" ) de ce doc ?
Auriez vous un petit exemple qui pourrait m'aider?
Merci d'avance et bon dimanche.
Claudy
Claudy est déconnecté   Réponse avec citation
ANNONCES
Vieux 25/11/2007, 10h24   #2 (permalink)
XLDnaute Occasionel
 
Date d'inscription: septembre 2006
Localisation: Quiberon
Messages: 466
Par défaut Re : .xls vers .doc

Bonjour à tous,

As tu essayé:

activedocument.bookmarks("le nom de ton signet").InsertAfter textbox1 (si tes données à transférer se trouve ds un textbox)?
Bonne journée
joss56 est déconnecté   Réponse avec citation
Vieux 25/11/2007, 10h56   #3 (permalink)
XLDnaute Impliqué
 
Avatar de tatiak
 
Date d'inscription: février 2005
Messages: 640
Par défaut Re : .xls vers .doc

Bonjour Claudy, bonjour Joss

Je me permets de proposer ma p'tite méthodologie pour écrire dans word.

Pour ce type de besoin, je crée un document word qui me sert de modèle (ici dans l'exemple ModèleDocument.doc, situé dans un sous répertoire Document), si besoin avec signet (nommé ici "SIGNET_A CREER_DANS_DOCUMENT_WORD") et tableau (ici un seul tableau donc wordDoc.tables(1)).

Dans un premier temps, la macro crée une instance Word et ouvre le modèle :
Code:
Sub Vers_Word()
Dim NDF As String, NDF2 As String
Dim WordApp As Word.Application
Dim WordDoc As Word.Document

    NDF = ActiveWorkbook.Path & "\ModèleDocument.doc"
    NDF2 = ActiveWorkbook.Path & "\Document" & Sheets("Feuil1").Range("A1").text & ".doc"
    
    On Error Resume Next
    Set WordApp = CreateObject("Word.Application")
    Set WordDoc = WordApp.Documents.Open(NDF, ReadOnly:=False)
A noter : on prévoit dès le début de sauvegarder le document avec un nom comportant ici le contenu de la cellule A1 (un nom de client par exemple) pour ne pas écraser le modèle.

Puis il convient d'écrire les données :
* pour écrire à partir du signet "SIGNET_A CREER_DANS_DOCUMENT_WORD" (ici le contenu de la cellule A2 :
Code:
    With WordApp
        .Visible = False
        .Selection.Goto What:=wdGoToBookmark, Name:="SIGNET_A CREER_DANS_DOCUMENT_WORD"
        .Selection.TypeText Text:= Sheets("Feuil1").Range("A2").Value
* pour écrire dans le tableau 1 ligne 1, colonne 2 (ici le contenu de la cellule A3) :
Code:
        With WordDoc.Tables(1)
            .Cell(1, 2).Range.InsertAfter Sheets("Feuil1").Range("A3").Value
        End With
Ne pas oublier de sauvegarder le document sous le nom défini précédemment :
Code:
    WordDoc.Application.ActiveDocument.SaveAs NDF2
Enfin, il convient de fermer le tout proprement et de libérer la mémoire en mettant les variables à zéro :
Code:
    WordApp.Application.Quit
    Set WordDoc = Nothing
    Set WordApp = Nothing

Ce qui donne au global :
Code:
Sub Vers_Word()
Dim NDF As String, NDF2 As String
Dim WordApp As Word.Application
Dim WordDoc As Word.Document

    NDF = ActiveWorkbook.Path & "\ModèleDocument.doc"
    NDF2 = ActiveWorkbook.Path & "\Document" & Sheets("Feuil1").Range("A1").text & ".doc"
    
    On Error Resume Next
    Set WordApp = CreateObject("Word.Application")
    Set WordDoc = WordApp.Documents.Open(NDF, ReadOnly:=False)
    
    With WordApp
        .Visible = False
        .Selection.Goto What:=wdGoToBookmark, Name:="SIGNET_A CREER_DANS_DOCUMENT_WORD"
        .Selection.TypeText Text:= Sheets("Feuil1").Range("A2").Value

        With WordDoc.Tables(1)
            .Cell(1, 2).Range.InsertAfter Sheets("Feuil1").Range("A3").Value
        End With
    End With
    
    WordDoc.Application.ActiveDocument.SaveAs NDF2
    WordApp.Application.Quit
    Set WordDoc = Nothing
    Set WordApp = Nothing

End Sub
La référence MS Word machin est activéé bien sûr!

Pour adapter à partir d'un Usf, il suffit de remplacer les contenus des cellules par les valeurs des champs de l'Usf (macro dans le code de l'Usf également) et le tour est joué!

Bon ouikend
__________________
Visitez le Blog-à-tatiak!
tatiak est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

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 oui
Pingbacks are oui
Refbacks are oui


Discussions similaires
Discussion Auteur Forum Réponses Dernier message
Importer de SQL vers EXCEL puis vers MACRO kolivier Forum Excel 18 09/11/2007 10h35
Boucle While Textbox1 vers colonne1, tb2 vers col2 etc ?? Jeanbulle Forum Excel 2 07/08/2007 23h18
Copier une ligne vers une autre sheet excel et ensuite vers l'imprimante beegees Forum Excel 2 24/06/2007 18h01
vers un copier vers le haut à partir de plusieurs feuiles luluberlu Forum Excel Downloads - Archives 0 24/02/2004 20h22
tri colA vers B et B vers A cmoidoudou Forum Excel Downloads - Archives 6 16/04/2003 14h45


Fuseau horaire GMT +2. Il est actuellement 12h22.


(C) 2006 Excel Downloads