Je cherche à envoyer le texte saisi (longueur variable) sur une textbox
excel dans un fichier word sans passer par une feuille excel ceci afin
d'importer le texte tel quel et l'insérer dans un tableau word existant.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel Josserand
Bonsoir, Ajoute un commandButton et cette macro: Le texte sera ecri dans le DocAOUvrir Private Sub CommandButton1_Click() Dim LTexte As String LTexte = TextBox1.Value Set AppWord = CreateObject("Word.Application") With AppWord .Visible = True .Documents.Open Filename:="C:AJETERDocAOuvrir.doc" With AppWord.Selection .TypeParagraph .TypeText Text:=LTexte End With End With End Sub Daniel
FAQ MPFE http://dj.joss.free.fr/faq.htm
"GA" a écrit dans le message de news:
Bonjour à tous,
Je cherche à envoyer le texte saisi (longueur variable) sur une textbox excel dans un fichier word sans passer par une feuille excel ceci afin d'importer le texte tel quel et l'insérer dans un tableau word existant.
Quelqu'un peut-il m'aider ?
Merci beaucoup
Cordialement
Bonsoir,
Ajoute un commandButton et cette macro:
Le texte sera ecri dans le DocAOUvrir
Private Sub CommandButton1_Click()
Dim LTexte As String
LTexte = TextBox1.Value
Set AppWord = CreateObject("Word.Application")
With AppWord
.Visible = True
.Documents.Open Filename:="C:AJETERDocAOuvrir.doc"
With AppWord.Selection
.TypeParagraph
.TypeText Text:=LTexte
End With
End With
End Sub
Daniel
FAQ MPFE
http://dj.joss.free.fr/faq.htm
"GA" <gerard.a.ayme@wanadoo.fr> a écrit dans le message de news:
usFENCKDFHA.2540@TK2MSFTNGP09.phx.gbl...
Bonjour à tous,
Je cherche à envoyer le texte saisi (longueur variable) sur une textbox
excel dans un fichier word sans passer par une feuille excel ceci afin
d'importer le texte tel quel et l'insérer dans un tableau word existant.
Bonsoir, Ajoute un commandButton et cette macro: Le texte sera ecri dans le DocAOUvrir Private Sub CommandButton1_Click() Dim LTexte As String LTexte = TextBox1.Value Set AppWord = CreateObject("Word.Application") With AppWord .Visible = True .Documents.Open Filename:="C:AJETERDocAOuvrir.doc" With AppWord.Selection .TypeParagraph .TypeText Text:=LTexte End With End With End Sub Daniel
FAQ MPFE http://dj.joss.free.fr/faq.htm
"GA" a écrit dans le message de news:
Bonjour à tous,
Je cherche à envoyer le texte saisi (longueur variable) sur une textbox excel dans un fichier word sans passer par une feuille excel ceci afin d'importer le texte tel quel et l'insérer dans un tableau word existant.
Quelqu'un peut-il m'aider ?
Merci beaucoup
Cordialement
Gaenonius
Tu peux passer par un objet DataObject (la bibliothèque "Microsoft Forms 2.0 Object Library" doit être cochée dans les références de ton projet Excel pour que cet objet soit disponible). Ensuite utilise ce genre de syntaxe :
'''''''''''''''''''''''''''''' Sub CopieDansWord() Dim Wrd As Object, Donnee As New DataObject, Texte
Texte = "Hello world !" 'ou le texte de ton textbox Donnee.SetText Texte Donnee.PutInClipboard
Je cherche à envoyer le texte saisi (longueur variable) sur une textbox excel dans un fichier word sans passer par une feuille excel ceci afin d'importer le texte tel quel et l'insérer dans un tableau word existant.
Quelqu'un peut-il m'aider ?
Merci beaucoup
Cordialement
Tu peux passer par un objet DataObject (la bibliothèque "Microsoft Forms 2.0
Object Library" doit être cochée dans les références de ton projet Excel pour
que cet objet soit disponible).
Ensuite utilise ce genre de syntaxe :
''''''''''''''''''''''''''''''
Sub CopieDansWord()
Dim Wrd As Object, Donnee As New DataObject, Texte
Texte = "Hello world !" 'ou le texte de ton textbox
Donnee.SetText Texte
Donnee.PutInClipboard
Je cherche à envoyer le texte saisi (longueur variable) sur une textbox
excel dans un fichier word sans passer par une feuille excel ceci afin
d'importer le texte tel quel et l'insérer dans un tableau word existant.
Tu peux passer par un objet DataObject (la bibliothèque "Microsoft Forms 2.0 Object Library" doit être cochée dans les références de ton projet Excel pour que cet objet soit disponible). Ensuite utilise ce genre de syntaxe :
'''''''''''''''''''''''''''''' Sub CopieDansWord() Dim Wrd As Object, Donnee As New DataObject, Texte
Texte = "Hello world !" 'ou le texte de ton textbox Donnee.SetText Texte Donnee.PutInClipboard
Je cherche à envoyer le texte saisi (longueur variable) sur une textbox excel dans un fichier word sans passer par une feuille excel ceci afin d'importer le texte tel quel et l'insérer dans un tableau word existant.
Quelqu'un peut-il m'aider ?
Merci beaucoup
Cordialement
GA
Bonsoir, Ajoute un commandButton et cette macro: Le texte sera ecri dans le DocAOUvrir Private Sub CommandButton1_Click() Dim LTexte As String LTexte = TextBox1.Value Set AppWord = CreateObject("Word.Application") With AppWord .Visible = True .Documents.Open Filename:="C:AJETERDocAOuvrir.doc" With AppWord.Selection .TypeParagraph .TypeText Text:=LTexte End With End With End Sub Daniel
FAQ MPFE http://dj.joss.free.fr/faq.htm
"GA" a écrit dans le message de news:
Bonjour à tous,
Je cherche à envoyer le texte saisi (longueur variable) sur une textbox excel dans un fichier word sans passer par une feuille excel ceci afin d'importer le texte tel quel et l'insérer dans un tableau word existant.
Quelqu'un peut-il m'aider ?
Merci beaucoup
Cordialement
Merci beaucoup pour cette réponse qui fonctionne à merveille...
Mais comment faire pour respecter la mise en page éventuelle existante dans word. Le texte se met au début du fichier.....avant le titre. En fait j'ai plusieurs textbox et j'aimerais envoyé le texte de chacune d'elle à des endroits précis du fichier word: paragraphes différents....
Est-ce possible ???
Merci encore pour l'aide extra...
Cordialement
Bonsoir,
Ajoute un commandButton et cette macro:
Le texte sera ecri dans le DocAOUvrir
Private Sub CommandButton1_Click()
Dim LTexte As String
LTexte = TextBox1.Value
Set AppWord = CreateObject("Word.Application")
With AppWord
.Visible = True
.Documents.Open Filename:="C:AJETERDocAOuvrir.doc"
With AppWord.Selection
.TypeParagraph
.TypeText Text:=LTexte
End With
End With
End Sub
Daniel
FAQ MPFE
http://dj.joss.free.fr/faq.htm
"GA" <gerard.a.ayme@wanadoo.fr> a écrit dans le message de news:
usFENCKDFHA.2540@TK2MSFTNGP09.phx.gbl...
Bonjour à tous,
Je cherche à envoyer le texte saisi (longueur variable) sur une textbox
excel dans un fichier word sans passer par une feuille excel ceci afin
d'importer le texte tel quel et l'insérer dans un tableau word existant.
Quelqu'un peut-il m'aider ?
Merci beaucoup
Cordialement
Merci beaucoup pour cette réponse qui fonctionne à merveille...
Mais comment faire pour respecter la mise en page éventuelle existante
dans word. Le texte se met au début du fichier.....avant le titre.
En fait j'ai plusieurs textbox et j'aimerais envoyé le texte de chacune
d'elle à des endroits précis du fichier word: paragraphes différents....
Bonsoir, Ajoute un commandButton et cette macro: Le texte sera ecri dans le DocAOUvrir Private Sub CommandButton1_Click() Dim LTexte As String LTexte = TextBox1.Value Set AppWord = CreateObject("Word.Application") With AppWord .Visible = True .Documents.Open Filename:="C:AJETERDocAOuvrir.doc" With AppWord.Selection .TypeParagraph .TypeText Text:=LTexte End With End With End Sub Daniel
FAQ MPFE http://dj.joss.free.fr/faq.htm
"GA" a écrit dans le message de news:
Bonjour à tous,
Je cherche à envoyer le texte saisi (longueur variable) sur une textbox excel dans un fichier word sans passer par une feuille excel ceci afin d'importer le texte tel quel et l'insérer dans un tableau word existant.
Quelqu'un peut-il m'aider ?
Merci beaucoup
Cordialement
Merci beaucoup pour cette réponse qui fonctionne à merveille...
Mais comment faire pour respecter la mise en page éventuelle existante dans word. Le texte se met au début du fichier.....avant le titre. En fait j'ai plusieurs textbox et j'aimerais envoyé le texte de chacune d'elle à des endroits précis du fichier word: paragraphes différents....
Est-ce possible ???
Merci encore pour l'aide extra...
Cordialement
PMO
Bonjour,
Voici une piste mais en VBA.
CELA FAIT A partir d'Excel affiche un UserForm contenant une zone de texte Ce texte est récupéré dans la 1ère cellule d'un document Word Il peut remplacer ou être concaténer avec le texte existant de la cellule Word
NECESSAIRE DE FAIRE Dans le menu VBE Outils/Références cocher "Microsoft Word x.0 Object Library " Un UserForm avec la propriété (Name) = "UserForm1" Dans l'UserForm une TextBox avec la propriété (Name) = "TextBox1" Dans l'UserForm un CommandButton OK avec la propriété (Name) = "CommandButton1"
CODE A COPIER DANS UN MODULE GENERAL Sert à lancer le UserForm. La procédure "LanceUserForm" apparaît dans la boîte de macro Adapter les constantes CHEMIN et MYDOCUMENT selon le chemin et le nom du document Word. Ce document Word doit contenir un tableau d'au moins une cellule **************************** '### IMPERATIF POUR LE BON FONCTIONNEMENT ### '### Dans le menu VBE Outils/Références cocher ### '### Microsoft Word x.0 Object Library ### Option Explicit '############################## '### Adapter les constantes ### '### selon votre usage ### '############################## Public Const CHEMIN As String = "c:" Public Const MYDOCUMENT As String = "essai.doc" '_____________________ Sub LanceUserForm() UserForm1.Show End Sub ****************************
CODE A COPIER DANS LE CODE DU USERFORM **************************** Option Explicit '_____________________________ Private Sub CommandButton1_Click() Dim A$ Dim isOpen As Object Dim myWord As Word.Application Dim doc As Word.Document Dim bool As Boolean Dim OldText$ Dim reponse% Dim R As Word.Range '---- Récupère le texte, si vide on sort ---- A$ = TextBox1.Text If A$ = "" Then Exit Sub '---- Vérifie si Word est déjà ouvert ---- On Error Resume Next Set isOpen = GetObject(, "Word.Application") '---- Ouvre une nouvelle instance de Word ---- Set myWord = New Word.Application
'°°° Word était déjà ouvert °°° If Not isOpen Is Nothing Then '/// Vérifie si MYDOCUMENT est déjà ouvert /// For Each doc In Documents If doc.Name = MYDOCUMENT Then bool = True doc.Activate Exit For End If Next doc If bool Then 'Si MYDOCUMENT est déjà ouvert Set doc = isOpen.ActiveDocument Else 'Si MYDOCUMENT n'est pas déjà ouvert Set doc = myWord.Documents. _ Open(Filename:=CHEMIN & MYDOCUMENT) End If '°°° Word n'était pas déjà ouvert °°° Else Set doc = myWord.Documents. _ Open(Filename:=CHEMIN & MYDOCUMENT) End If
On Error GoTo Erreur '### Adapter la ligne suivante à votre usage ### '### Ex: si votre tableau contient 5 colonnes ### '### et 10 lignes et que vous voulez inscrire ### '### la valeur de la TextBox en colonne 3 et en ### '### ligne 8 et que votre tableau est le 7ème, ### '### l'expression s'écrira comme suit: ### '### Set R = doc.Tables(7).Cell(8, 3).Range ### Set R = doc.Tables(1).Cell(1, 1).Range OldText$ = R.Text OldText$ = Mid(OldText$, 1, Len(OldText$) - 1) If Len(OldText$) > 1 Then reponse% = MsgBox(prompt:= _ "Le tableau contient déjà le texte suivant:" _ & vbCrLf & vbCrLf & OldText$ & vbCrLf & vbCrLf & _ "Voulez-vous le remplacer (Oui)" & vbCrLf & _ "ou y ajouter le nouveau texte (Non)", _ Buttons:=vbYesNoCancel) Select Case reponse% Case vbCancel GoTo Erreur Case vbYes 'Remplace GoTo Remplace Case vbNo 'Ajoute R.InsertAfter " " & A$ End Select Else Remplace: R.Text = A$ End If doc.Save '---- Pseudo traitement d'erreur ---- Erreur: myWord.Quit Set R = Nothing Set doc = Nothing Set myWord = Nothing '---- Efface la TextBox et ferme l'UserForm ---- TextBox1.Text = "" Me.Hide End Sub '_____________________________ Private Sub UserForm_Activate() '---- Autorise les multilignes dans la TextBox ---- Me.TextBox1.MultiLine = True End Sub ****************************
En espérant que cela répond à votre demande.
Cordialement.
PMO Patrick Morange
Bonjour à tous,
Je cherche à envoyer le texte saisi (longueur variable) sur une textbox excel dans un fichier word sans passer par une feuille excel ceci afin d'importer le texte tel quel et l'insérer dans un tableau word existant.
Quelqu'un peut-il m'aider ?
Merci beaucoup
Cordialement
Bonjour,
Voici une piste mais en VBA.
CELA FAIT
A partir d'Excel affiche un UserForm contenant une zone de texte
Ce texte est récupéré dans la 1ère cellule d'un document Word
Il peut remplacer ou être concaténer avec le texte existant de la cellule Word
NECESSAIRE DE FAIRE
Dans le menu VBE Outils/Références cocher "Microsoft Word x.0 Object Library "
Un UserForm avec la propriété (Name) = "UserForm1"
Dans l'UserForm une TextBox avec la propriété (Name) = "TextBox1"
Dans l'UserForm un CommandButton OK avec la propriété (Name) =
"CommandButton1"
CODE A COPIER DANS UN MODULE GENERAL
Sert à lancer le UserForm. La procédure "LanceUserForm"
apparaît dans la boîte de macro
Adapter les constantes CHEMIN et MYDOCUMENT selon le chemin et le nom
du document Word. Ce document Word doit contenir un tableau d'au moins une
cellule
****************************
'### IMPERATIF POUR LE BON FONCTIONNEMENT ###
'### Dans le menu VBE Outils/Références cocher ###
'### Microsoft Word x.0 Object Library ###
Option Explicit
'##############################
'### Adapter les constantes ###
'### selon votre usage ###
'##############################
Public Const CHEMIN As String = "c:"
Public Const MYDOCUMENT As String = "essai.doc"
'_____________________
Sub LanceUserForm()
UserForm1.Show
End Sub
****************************
CODE A COPIER DANS LE CODE DU USERFORM
****************************
Option Explicit
'_____________________________
Private Sub CommandButton1_Click()
Dim A$
Dim isOpen As Object
Dim myWord As Word.Application
Dim doc As Word.Document
Dim bool As Boolean
Dim OldText$
Dim reponse%
Dim R As Word.Range
'---- Récupère le texte, si vide on sort ----
A$ = TextBox1.Text
If A$ = "" Then Exit Sub
'---- Vérifie si Word est déjà ouvert ----
On Error Resume Next
Set isOpen = GetObject(, "Word.Application")
'---- Ouvre une nouvelle instance de Word ----
Set myWord = New Word.Application
'°°° Word était déjà ouvert °°°
If Not isOpen Is Nothing Then
'/// Vérifie si MYDOCUMENT est déjà ouvert ///
For Each doc In Documents
If doc.Name = MYDOCUMENT Then
bool = True
doc.Activate
Exit For
End If
Next doc
If bool Then 'Si MYDOCUMENT est déjà ouvert
Set doc = isOpen.ActiveDocument
Else 'Si MYDOCUMENT n'est pas déjà ouvert
Set doc = myWord.Documents. _
Open(Filename:=CHEMIN & MYDOCUMENT)
End If
'°°° Word n'était pas déjà ouvert °°°
Else
Set doc = myWord.Documents. _
Open(Filename:=CHEMIN & MYDOCUMENT)
End If
On Error GoTo Erreur
'### Adapter la ligne suivante à votre usage ###
'### Ex: si votre tableau contient 5 colonnes ###
'### et 10 lignes et que vous voulez inscrire ###
'### la valeur de la TextBox en colonne 3 et en ###
'### ligne 8 et que votre tableau est le 7ème, ###
'### l'expression s'écrira comme suit: ###
'### Set R = doc.Tables(7).Cell(8, 3).Range ###
Set R = doc.Tables(1).Cell(1, 1).Range
OldText$ = R.Text
OldText$ = Mid(OldText$, 1, Len(OldText$) - 1)
If Len(OldText$) > 1 Then
reponse% = MsgBox(prompt:= _
"Le tableau contient déjà le texte suivant:" _
& vbCrLf & vbCrLf & OldText$ & vbCrLf & vbCrLf & _
"Voulez-vous le remplacer (Oui)" & vbCrLf & _
"ou y ajouter le nouveau texte (Non)", _
Buttons:=vbYesNoCancel)
Select Case reponse%
Case vbCancel
GoTo Erreur
Case vbYes 'Remplace
GoTo Remplace
Case vbNo 'Ajoute
R.InsertAfter " " & A$
End Select
Else
Remplace:
R.Text = A$
End If
doc.Save
'---- Pseudo traitement d'erreur ----
Erreur:
myWord.Quit
Set R = Nothing
Set doc = Nothing
Set myWord = Nothing
'---- Efface la TextBox et ferme l'UserForm ----
TextBox1.Text = ""
Me.Hide
End Sub
'_____________________________
Private Sub UserForm_Activate()
'---- Autorise les multilignes dans la TextBox ----
Me.TextBox1.MultiLine = True
End Sub
****************************
En espérant que cela répond à votre demande.
Cordialement.
PMO
Patrick Morange
Bonjour à tous,
Je cherche à envoyer le texte saisi (longueur variable) sur une textbox
excel dans un fichier word sans passer par une feuille excel ceci afin
d'importer le texte tel quel et l'insérer dans un tableau word existant.
CELA FAIT A partir d'Excel affiche un UserForm contenant une zone de texte Ce texte est récupéré dans la 1ère cellule d'un document Word Il peut remplacer ou être concaténer avec le texte existant de la cellule Word
NECESSAIRE DE FAIRE Dans le menu VBE Outils/Références cocher "Microsoft Word x.0 Object Library " Un UserForm avec la propriété (Name) = "UserForm1" Dans l'UserForm une TextBox avec la propriété (Name) = "TextBox1" Dans l'UserForm un CommandButton OK avec la propriété (Name) = "CommandButton1"
CODE A COPIER DANS UN MODULE GENERAL Sert à lancer le UserForm. La procédure "LanceUserForm" apparaît dans la boîte de macro Adapter les constantes CHEMIN et MYDOCUMENT selon le chemin et le nom du document Word. Ce document Word doit contenir un tableau d'au moins une cellule **************************** '### IMPERATIF POUR LE BON FONCTIONNEMENT ### '### Dans le menu VBE Outils/Références cocher ### '### Microsoft Word x.0 Object Library ### Option Explicit '############################## '### Adapter les constantes ### '### selon votre usage ### '############################## Public Const CHEMIN As String = "c:" Public Const MYDOCUMENT As String = "essai.doc" '_____________________ Sub LanceUserForm() UserForm1.Show End Sub ****************************
CODE A COPIER DANS LE CODE DU USERFORM **************************** Option Explicit '_____________________________ Private Sub CommandButton1_Click() Dim A$ Dim isOpen As Object Dim myWord As Word.Application Dim doc As Word.Document Dim bool As Boolean Dim OldText$ Dim reponse% Dim R As Word.Range '---- Récupère le texte, si vide on sort ---- A$ = TextBox1.Text If A$ = "" Then Exit Sub '---- Vérifie si Word est déjà ouvert ---- On Error Resume Next Set isOpen = GetObject(, "Word.Application") '---- Ouvre une nouvelle instance de Word ---- Set myWord = New Word.Application
'°°° Word était déjà ouvert °°° If Not isOpen Is Nothing Then '/// Vérifie si MYDOCUMENT est déjà ouvert /// For Each doc In Documents If doc.Name = MYDOCUMENT Then bool = True doc.Activate Exit For End If Next doc If bool Then 'Si MYDOCUMENT est déjà ouvert Set doc = isOpen.ActiveDocument Else 'Si MYDOCUMENT n'est pas déjà ouvert Set doc = myWord.Documents. _ Open(Filename:=CHEMIN & MYDOCUMENT) End If '°°° Word n'était pas déjà ouvert °°° Else Set doc = myWord.Documents. _ Open(Filename:=CHEMIN & MYDOCUMENT) End If
On Error GoTo Erreur '### Adapter la ligne suivante à votre usage ### '### Ex: si votre tableau contient 5 colonnes ### '### et 10 lignes et que vous voulez inscrire ### '### la valeur de la TextBox en colonne 3 et en ### '### ligne 8 et que votre tableau est le 7ème, ### '### l'expression s'écrira comme suit: ### '### Set R = doc.Tables(7).Cell(8, 3).Range ### Set R = doc.Tables(1).Cell(1, 1).Range OldText$ = R.Text OldText$ = Mid(OldText$, 1, Len(OldText$) - 1) If Len(OldText$) > 1 Then reponse% = MsgBox(prompt:= _ "Le tableau contient déjà le texte suivant:" _ & vbCrLf & vbCrLf & OldText$ & vbCrLf & vbCrLf & _ "Voulez-vous le remplacer (Oui)" & vbCrLf & _ "ou y ajouter le nouveau texte (Non)", _ Buttons:=vbYesNoCancel) Select Case reponse% Case vbCancel GoTo Erreur Case vbYes 'Remplace GoTo Remplace Case vbNo 'Ajoute R.InsertAfter " " & A$ End Select Else Remplace: R.Text = A$ End If doc.Save '---- Pseudo traitement d'erreur ---- Erreur: myWord.Quit Set R = Nothing Set doc = Nothing Set myWord = Nothing '---- Efface la TextBox et ferme l'UserForm ---- TextBox1.Text = "" Me.Hide End Sub '_____________________________ Private Sub UserForm_Activate() '---- Autorise les multilignes dans la TextBox ---- Me.TextBox1.MultiLine = True End Sub ****************************
En espérant que cela répond à votre demande.
Cordialement.
PMO Patrick Morange
Bonjour à tous,
Je cherche à envoyer le texte saisi (longueur variable) sur une textbox excel dans un fichier word sans passer par une feuille excel ceci afin d'importer le texte tel quel et l'insérer dans un tableau word existant.