Copier du texte dans Excel vers une autre application

Le
Coriandre
Bonjour à tous,

Ca fait bien longtemps que je n'ai plus manipulé de macros dans Excel.
Ma question va donc sans doute vous paraître bien triviale

Je cherche à copier le contenu (texte) de plusieurs cellules en ligne dans
Excel et à copier ce texte (transformé en texte brut) vers une autre
application A (c'est un logiciel professionnel, utilisant probablement Word
comme logiciel de texte.).

Si je copie/colle tel quel, le résultat se retrouve dans A sous forme de
tableau.
Or je ne veux que du texte brut, avec chaque ligne (correspondant aux
différentes cellules de Excel) les unes sous les autres inscrites dans
l'appli A.

Illustration :
à partir de ça dans Excel (les lignes sont des cellules fusionnées) :
__________________
blabla
__________________
blibli
__________________
bloblo
__________________


je souhaite obtenir ça dans A :

blabla
blibli
bloblo


J'ai pensé à utiliser Notepad (ouvrir Notepad par macro, copier le texte de
Excel vers Notepad ouvert, puis ensuite je copie le texte à la main dans
Notepad et le colle dans l'appli A).
Mais je ne sais pas si on peut piloter Notepad (écrire dedans) avec Excel,
ni comment.
Utiliser Word me semble bien lourd pour un besoin aussi simple.

En fait, j'aimerais copier le texte des lignes dans Excel vers le presse
papier, mais sous forme de texte brut, de sorte que je n'aie plus qu'à
coller ce texte (brut) dans l'application A.
Est-ce possible par une macro simple ?

Merci de votre aide.

--
Coriandre
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
stephane62
Le #20102991
Bonjour,

Copier dans excel,

puis dans l'application => Edition => Collage Special => Texte sans Mise en
forme


stephane

"Coriandre" wrote:

Bonjour à tous,

Ca fait bien longtemps que je n'ai plus manipulé de macros dans Excel.
Ma question va donc sans doute vous paraître bien triviale...

Je cherche à copier le contenu (texte) de plusieurs cellules en ligne dans
Excel et à copier ce texte (transformé en texte brut) vers une autre
application A (c'est un logiciel professionnel, utilisant probablement Word
comme logiciel de texte.).

Si je copie/colle tel quel, le résultat se retrouve dans A sous forme de
tableau.
Or je ne veux que du texte brut, avec chaque ligne (correspondant aux
différentes cellules de Excel) les unes sous les autres inscrites dans
l'appli A.

Illustration :
à partir de ça dans Excel (les lignes sont des cellules fusionnées) :
__________________
blabla
__________________
blibli
__________________
bloblo
__________________
....

je souhaite obtenir ça dans A :

blabla
blibli
bloblo
....

J'ai pensé à utiliser Notepad (ouvrir Notepad par macro, copier le texte de
Excel vers Notepad ouvert, puis ensuite je copie le texte à la main dans
Notepad et le colle dans l'appli A).
Mais je ne sais pas si on peut piloter Notepad (écrire dedans) avec Excel,
ni comment.
Utiliser Word me semble bien lourd pour un besoin aussi simple.

En fait, j'aimerais copier le texte des lignes dans Excel vers le presse
papier, mais sous forme de texte brut, de sorte que je n'aie plus qu'à
coller ce texte (brut) dans l'application A.
Est-ce possible par une macro simple ?

Merci de votre aide.

--
Coriandre




Coriandre
Le #20103101
"stephane62" de news:
Copier dans excel,

puis dans l'application => Edition => Collage Special => Texte sans Mise
en
forme



Il n'y a pas d'accès aux fonctions de collage (ni de collage spécial) dans
l'application en question, c'est pourquoi mon problème se pose.
L'application n'a pas été conçue pour coller du texte venu d'ailleurs,
seulement pour le créer de novo.
Il n'y a pas non plus de clic droit.

Peut-être que ça fonctionnerait avec un raccourci clavier ?
En espérant que c'est bien Word qui est utlisé par l'appli A.
Existe-t-il un raccourci clavier pour "collage spécial" ?

--
Coriandre



"Coriandre" wrote:

Bonjour à tous,

Ca fait bien longtemps que je n'ai plus manipulé de macros dans Excel.
Ma question va donc sans doute vous paraître bien triviale...

Je cherche à copier le contenu (texte) de plusieurs cellules en ligne
dans
Excel et à copier ce texte (transformé en texte brut) vers une autre
application A (c'est un logiciel professionnel, utilisant probablement
Word
comme logiciel de texte.).

Si je copie/colle tel quel, le résultat se retrouve dans A sous forme de
tableau.
Or je ne veux que du texte brut, avec chaque ligne (correspondant aux
différentes cellules de Excel) les unes sous les autres inscrites dans
l'appli A.

Illustration :
à partir de ça dans Excel (les lignes sont des cellules fusionnées) :
__________________
blabla
__________________
blibli
__________________
bloblo
__________________
....

je souhaite obtenir ça dans A :

blabla
blibli
bloblo
....

J'ai pensé à utiliser Notepad (ouvrir Notepad par macro, copier le texte
de
Excel vers Notepad ouvert, puis ensuite je copie le texte à la main dans
Notepad et le colle dans l'appli A).
Mais je ne sais pas si on peut piloter Notepad (écrire dedans) avec
Excel,
ni comment.
Utiliser Word me semble bien lourd pour un besoin aussi simple.

En fait, j'aimerais copier le texte des lignes dans Excel vers le presse
papier, mais sous forme de texte brut, de sorte que je n'aie plus qu'à
coller ce texte (brut) dans l'application A.
Est-ce possible par une macro simple ?

Merci de votre aide.

--
Coriandre






FS
Le #20159471
Bonjour,

> En fait, j'aimerais copier le texte des lignes dans Excel vers le
> presse papier, mais sous forme de texte brut, de sorte que je n'aie
> plus qu'à coller ce texte (brut) dans l'application A.
> Est-ce possible par une macro simple ?

Simple, tu me diras mais possible, oui. On peut utiliser l'objet
DataObject, qui permet précisément d'envoyer du texte dans le presse
papier. On le colle ensuite où on veut (par macro ou par Ctrl+V, je m'en
suis tenu à cette dernière option).
Mais cet objet n'est pas disponible "en natif" dans VBA. Il faut ajouter
une référence à une bibliothèque d'objets (Microsoft Forms 2.0 Object
Library) et c'est un peu sioux à faire automatiquement (la discussion
archivée à cette adresse m'a fourni la bonne idée de découper le travail
en deux procédures distinctes sinon ça ne compile pas :
http://www.mrexcel.com/forum/showthread.php?t2500)
En résumé, ceci fonctionne dans Excel 2003 et dans Excel 2007 :

'=============================== Sub CopieDansPressePapier()
SetRefMsForms
CopieTexte
End Sub

Sub SetRefMsForms()
Dim tmpUF
'ajoute temporairement un userform au projet pour provoquer
'le référencement auto de la bibliothèque MsForms
'(qui contient l'objet DataObject utilisé pour envoyer le texte
'dans le prese papiers)
Set tmpUF = ThisWorkbook.VBProject.VBComponents.Add(3)
'aussitôt détruit
ThisWorkbook.VBProject.VBComponents.Remove VBComponent:=tmpUF
End Sub

Sub CopieTexte()
Dim txt As String, i&
Dim PP As Object

'1- récupérer le texte brut
'les cellules à traiter sont A1:A5
For i = 1 To 5
txt = txt & Range("A" & i).Text & IIf(i < 5, vbCrLf, "")
Next

'2- l'envoyer dans le presse papier
Set PP = New dataobject
PP.settext txt
PP.putinclipboard

'3- nettoyage (détruire l'userform ne suffit pas)
With ThisWorkbook.VBProject.References
.Remove .Item("MSForms")
End With
End Sub
'===============================
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Coriandre a écrit :
Bonjour à tous,

Ca fait bien longtemps que je n'ai plus manipulé de macros dans Excel.
Ma question va donc sans doute vous paraître bien triviale...

Je cherche à copier le contenu (texte) de plusieurs cellules en ligne
dans Excel et à copier ce texte (transformé en texte brut) vers une
autre application A (c'est un logiciel professionnel, utilisant
probablement Word comme logiciel de texte.).

Si je copie/colle tel quel, le résultat se retrouve dans A sous forme de
tableau.
Or je ne veux que du texte brut, avec chaque ligne (correspondant aux
différentes cellules de Excel) les unes sous les autres inscrites dans
l'appli A.

Illustration :
à partir de ça dans Excel (les lignes sont des cellules fusionnées) :
__________________
blabla
__________________
blibli
__________________
bloblo
__________________
....

je souhaite obtenir ça dans A :

blabla
blibli
bloblo
....

J'ai pensé à utiliser Notepad (ouvrir Notepad par macro, copier le texte
de Excel vers Notepad ouvert, puis ensuite je copie le texte à la main
dans Notepad et le colle dans l'appli A).
Mais je ne sais pas si on peut piloter Notepad (écrire dedans) avec
Excel, ni comment.
Utiliser Word me semble bien lourd pour un besoin aussi simple.

En fait, j'aimerais copier le texte des lignes dans Excel vers le presse
papier, mais sous forme de texte brut, de sorte que je n'aie plus qu'à
coller ce texte (brut) dans l'application A.
Est-ce possible par une macro simple ?

Merci de votre aide.

--
Coriandre


Coriandre
Le #20332601
Bonjour,

Tardivement mais quand même, merci bien de ton aide.

--
Coriandre

______________________________

"FS" news:
Bonjour,

> En fait, j'aimerais copier le texte des lignes dans Excel vers le
> presse papier, mais sous forme de texte brut, de sorte que je n'aie
> plus qu'à coller ce texte (brut) dans l'application A.
> Est-ce possible par une macro simple ?

Simple, tu me diras mais possible, oui. On peut utiliser l'objet
DataObject, qui permet précisément d'envoyer du texte dans le presse
papier. On le colle ensuite où on veut (par macro ou par Ctrl+V, je m'en
suis tenu à cette dernière option).
Mais cet objet n'est pas disponible "en natif" dans VBA. Il faut ajouter
une référence à une bibliothèque d'objets (Microsoft Forms 2.0 Object
Library) et c'est un peu sioux à faire automatiquement (la discussion
archivée à cette adresse m'a fourni la bonne idée de découper le travail
en deux procédures distinctes sinon ça ne compile pas :
http://www.mrexcel.com/forum/showthread.php?t2500)
En résumé, ceci fonctionne dans Excel 2003 et dans Excel 2007 :

'=============================== > Sub CopieDansPressePapier()
SetRefMsForms
CopieTexte
End Sub

Sub SetRefMsForms()
Dim tmpUF
'ajoute temporairement un userform au projet pour provoquer
'le référencement auto de la bibliothèque MsForms
'(qui contient l'objet DataObject utilisé pour envoyer le texte
'dans le prese papiers)
Set tmpUF = ThisWorkbook.VBProject.VBComponents.Add(3)
'aussitôt détruit
ThisWorkbook.VBProject.VBComponents.Remove VBComponent:=tmpUF
End Sub

Sub CopieTexte()
Dim txt As String, i&
Dim PP As Object

'1- récupérer le texte brut
'les cellules à traiter sont A1:A5
For i = 1 To 5
txt = txt & Range("A" & i).Text & IIf(i < 5, vbCrLf, "")
Next

'2- l'envoyer dans le presse papier
Set PP = New dataobject
PP.settext txt
PP.putinclipboard

'3- nettoyage (détruire l'userform ne suffit pas)
With ThisWorkbook.VBProject.References
.Remove .Item("MSForms")
End With
End Sub
'=============================== >
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Coriandre a écrit :
Bonjour à tous,

Ca fait bien longtemps que je n'ai plus manipulé de macros dans Excel.
Ma question va donc sans doute vous paraître bien triviale...

Je cherche à copier le contenu (texte) de plusieurs cellules en ligne
dans Excel et à copier ce texte (transformé en texte brut) vers une autre
application A (c'est un logiciel professionnel, utilisant probablement
Word comme logiciel de texte.).

Si je copie/colle tel quel, le résultat se retrouve dans A sous forme de
tableau.
Or je ne veux que du texte brut, avec chaque ligne (correspondant aux
différentes cellules de Excel) les unes sous les autres inscrites dans
l'appli A.

Illustration :
à partir de ça dans Excel (les lignes sont des cellules fusionnées) :
__________________
blabla
__________________
blibli
__________________
bloblo
__________________
....

je souhaite obtenir ça dans A :

blabla
blibli
bloblo
....

J'ai pensé à utiliser Notepad (ouvrir Notepad par macro, copier le texte
de Excel vers Notepad ouvert, puis ensuite je copie le texte à la main
dans Notepad et le colle dans l'appli A).
Mais je ne sais pas si on peut piloter Notepad (écrire dedans) avec
Excel, ni comment.
Utiliser Word me semble bien lourd pour un besoin aussi simple.

En fait, j'aimerais copier le texte des lignes dans Excel vers le presse
papier, mais sous forme de texte brut, de sorte que je n'aie plus qu'à
coller ce texte (brut) dans l'application A.
Est-ce possible par une macro simple ?

Merci de votre aide.

--
Coriandre




Publicité
Poster une réponse
Anonyme