[VBA] Récupérer un text et sa mise en forme et le coller dans le document actif
Tags :
Dernière réponse : dans Programmation
Bonjour,
Je souhaiterai récupérer un texte et sa mise en page (fichier type word) et le coller automatiquement (a partir du curseur) dans le document actif (celui sur lequel je travaille). Pour cela je veux activer une macro qui me demande quel fichier (text et mise en forme de celui-ci) je veux inserer (copier) dans mon document actif par l'intermédiaire d'une boite de dialogue Ouvrir (Open). Je suis totalement débutant si quelqu'un peu m'aider a créer ces ligne de code j'en sera enchanter ! Merci
Je souhaiterai récupérer un texte et sa mise en page (fichier type word) et le coller automatiquement (a partir du curseur) dans le document actif (celui sur lequel je travaille). Pour cela je veux activer une macro qui me demande quel fichier (text et mise en forme de celui-ci) je veux inserer (copier) dans mon document actif par l'intermédiaire d'une boite de dialogue Ouvrir (Open). Je suis totalement débutant si quelqu'un peu m'aider a créer ces ligne de code j'en sera enchanter ! Merci
Autres pages sur : vba recuperer text mise forme coller document actif
Lassé par la pub ? Créez un compte
Salut,
Débutant ou pas, nous ne ferons pas ton travail à ta place.
Mais nous allons t'aider quand même.
-----------
Bienvenue donc dans le monde de la programmation.
Je t'invite à démarrer l'enregistreur de macro, et à faire à la main, la procédure que tu décris.
Tu obtiendras un code que je te propose de publier ici (pour ce faire, n'oublie pas d'utiliser la balise [code]). On en discutera alors.
A te lire.
Débutant ou pas, nous ne ferons pas ton travail à ta place.
Mais nous allons t'aider quand même.
-----------
Bienvenue donc dans le monde de la programmation.
Je t'invite à démarrer l'enregistreur de macro, et à faire à la main, la procédure que tu décris.
Tu obtiendras un code que je te propose de publier ici (pour ce faire, n'oublie pas d'utiliser la balise [code]). On en discutera alors.
A te lire.
- zeb a édité ce message
- | Alerter
Merci pour ta réponse si rapide,
J'en suis pas encore la !
J'ai fais exactement se que tu m'as conseiller voici les codes que j'obtiens (j'ai les fais en 3 étapes ou macro) :
- 1° ouvre le fichier word et copie le text (dans ce cas si c'est uniquement un mot mais je pense que la démarche est la même pour un text plus long)
[Sub Macro1()
'
' Macro1 Macro
'
'
ChangeFileOpenDirectory "C:\Users\Pierre-Antoine\Desktop\Macro\"
Documents.Open FileName:="Hello.docx", ConfirmConversions:=False, ReadOnly _
:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
, Format:=wdOpenFormatAuto, XMLTransform:=""
Selection.MoveRight Unit:=wdCharacter, Count:=7, Extend:=wdExtend
Selection.Copy
Application.WindowState = wdWindowStateMinimize
Application.WindowState = wdWindowStateNormal
End Sub]
2° Je colle les éléments copier
[Sub Macro2()
'
' Macro2 Macro
'
'
Selection.PasteAndFormat (wdPasteDefault)
End Sub]
3° je ferme le fichier dans lequel j'ai copier le text
[Sub Macro3()
'
' Macro3 Macro
'
'
ActiveWindow.Close
End Sub]
Donc voici les lignes de code obtenu, évidement un certain nombre de questions me viennent à l'esprit :
- Le fichier dans lequel j'aimerai copier les informations n'est pas tout le temps le même ,je doit donc faire ouvrir une boite de dialogue, sélectionner un fichier et copier son contenu en intégralité.
ouf ce point est le plus compliqué pour moi pour l'instant !
-Il me faut aussi réussir a lier les macros entre elles il me semble qu'il faut simplement intégrer la macro sans intégrer la ligne [End sub] je pense qu'un seul [End sub] a la fin de l'ensemble et la syntaxe correct, c'est ça ?
Enfin déjà un grand merci pour ta réponse si simple et efficace
Je suis impatient de comprendre comment ouvrir les fichiers grace aux boites de dialogues et comprendre les fonctions et leur utilisation
Merci
J'en suis pas encore la !
J'ai fais exactement se que tu m'as conseiller voici les codes que j'obtiens (j'ai les fais en 3 étapes ou macro) :
- 1° ouvre le fichier word et copie le text (dans ce cas si c'est uniquement un mot mais je pense que la démarche est la même pour un text plus long)
[Sub Macro1()
'
' Macro1 Macro
'
'
ChangeFileOpenDirectory "C:\Users\Pierre-Antoine\Desktop\Macro\"
Documents.Open FileName:="Hello.docx", ConfirmConversions:=False, ReadOnly _
:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
, Format:=wdOpenFormatAuto, XMLTransform:=""
Selection.MoveRight Unit:=wdCharacter, Count:=7, Extend:=wdExtend
Selection.Copy
Application.WindowState = wdWindowStateMinimize
Application.WindowState = wdWindowStateNormal
End Sub]
2° Je colle les éléments copier
[Sub Macro2()
'
' Macro2 Macro
'
'
Selection.PasteAndFormat (wdPasteDefault)
End Sub]
3° je ferme le fichier dans lequel j'ai copier le text
[Sub Macro3()
'
' Macro3 Macro
'
'
ActiveWindow.Close
End Sub]
Donc voici les lignes de code obtenu, évidement un certain nombre de questions me viennent à l'esprit :
- Le fichier dans lequel j'aimerai copier les informations n'est pas tout le temps le même ,je doit donc faire ouvrir une boite de dialogue, sélectionner un fichier et copier son contenu en intégralité.
ouf ce point est le plus compliqué pour moi pour l'instant !
-Il me faut aussi réussir a lier les macros entre elles il me semble qu'il faut simplement intégrer la macro sans intégrer la ligne [End sub] je pense qu'un seul [End sub] a la fin de l'ensemble et la syntaxe correct, c'est ça ?
Enfin déjà un grand merci pour ta réponse si simple et efficace
Je suis impatient de comprendre comment ouvrir les fichiers grace aux boites de dialogues et comprendre les fonctions et leur utilisation
Merci
- | Alerter
heu ,
Je suis désolé j'arrive pas encore a faire plusieurs choses a la fois
J'y vais lentement .
Mais si quelqu'un peu continuer a m'aider sa serai sympa
Enfin j'arrive a faire apparaitre la boite de dialogue avec ça :
[
Dim fso As String
fso = Application.Dialogs(wdDialogFileFind).Show
]
Enfin c'est du bidouillage avec un vieux poste de Zeb
Mais bon je suis tjr complétement bloquer pour ouvrir le fichier
je ne comprend pas comment une fonction renvois un nom et/ou un chemin
ou si une fonction existe pour sélectionner un fichier (ac une boite de dialogue), puis l'ouvrir directement ?
Bon je test quelques trucs mais ça reste vraiment du chinois pour moi .
Est ce qu'il existe un site ou quoi que se soit qui répertorie tout les différents type de variables et fonctions complexes ?
Si vous pouvais me répondre sa me serai utile .
Merci
Je suis désolé j'arrive pas encore a faire plusieurs choses a la fois
J'y vais lentement .
Mais si quelqu'un peu continuer a m'aider sa serai sympa
Enfin j'arrive a faire apparaitre la boite de dialogue avec ça :
[
Dim fso As String
fso = Application.Dialogs(wdDialogFileFind).Show
]
Enfin c'est du bidouillage avec un vieux poste de Zeb
Mais bon je suis tjr complétement bloquer pour ouvrir le fichier
je ne comprend pas comment une fonction renvois un nom et/ou un chemin
ou si une fonction existe pour sélectionner un fichier (ac une boite de dialogue), puis l'ouvrir directement ?
Bon je test quelques trucs mais ça reste vraiment du chinois pour moi .
Est ce qu'il existe un site ou quoi que se soit qui répertorie tout les différents type de variables et fonctions complexes ?
Si vous pouvais me répondre sa me serai utile .
Merci
- | Alerter
- | Alerter
j'arrive a faire apparaitre la boite de dialogue avec ça :
Sub Macro1() Dim fso As String fso = Application.Dialogs(wdDialogFileFind).Show End Sub
A ce point la est-ce que le nom du fichier est enregistrer dans ma variable donc ici "fso" ? c'est ce que je crois .
il me reste à rechercher le chemin .
Sélectionner en intégrant la totalité du texte.
Bon alors je replace correctement les petites macros enregistrer avec le mode enregistrement de word qui me donne les codes suivant:
Sub SelectionOuvre() ' ' SelectionOuvre Macro ' ' ChangeFileOpenDirectory "C:\Users\XXXXXX\Desktop\Macro\" Documents.Open FileName:="Hello.docx", ConfirmConversions:=False, ReadOnly _ :=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _ :="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _ , Format:=wdOpenFormatAuto, XMLTransform:="" Selection.MoveRight Unit:=wdCharacter, Count:=7, Extend:=wdExtend Selection.Copy Application.WindowState = wdWindowStateMinimize Application.WindowState = wdWindowStateNormal End Sub
2° Je colle les éléments copier
Sub Colle() ' ' Colle Macro ' ' Selection.PasteAndFormat (wdPasteDefault) End Sub
3° je ferme le fichier dans lequel j'ai copier le texte
Sub Fermer() ' ' Fermer Macro ' ' ActiveWindow.Close End Sub
Dans cette macro cela ferme la fenêtre active alors que je veux fermer la fenêtre du document copier (peut-être en plaçant cette macro avant de coller dans mon document principal.
Enfin j'ai compris que pour regrouper des macros il suffit de l'appeler a l'aide de :"Call' nom de la macro' ".
Voila je pense que tout est en ordre dans ce message et que je commence a comprendre un petit peu.
Merci
- | Alerter
- | Alerter
Lassé par la pub ? Créez un compte
![[:zeb:4] [:zeb:4]](http://m.bestofmedia.com/sfp/design/usr/fr/smilies/e9/8b/zeb:4.gif)