Vba excel copier en gras dans le presse papier

cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011 - 2 janv. 2008 à 22:18
cs_Frederic45 Messages postés 60 Date d'inscription vendredi 26 octobre 2007 Statut Membre Dernière intervention 30 mars 2010 - 7 janv. 2008 à 11:11
Bonsoir,

Je voudrais copier dans le presse papier les valeurs de 3 cellules et mettre l'une des trois (var3) en gras (alors qu'elle ne l'est pas forcemment dans le fichier excel...)

Voici mon code:
Dim MyData As DataObject
Dim var1 As String
Dim var2 As String
Dim var3 As String

var1 = ActiveCell.Value
var2 = ActiveCell.Offset(0, 1).Value
ActiveCell.Offset(0, 2).Font.Bold = True
var3 = ActiveCell.Offset(0, 2).Text

mvar = "Référence: " & var1 & vbNewLine & "Désignation: " & var2 & vbNewLine & "Emballage: " & var3

Set MyData = New DataObject

MyData.SetText mvar
MyData.PutInClipboard

MsgBox (mvar)
End Sub

Merci pour votre aide.
Liro

7 réponses

cs_Frederic45 Messages postés 60 Date d'inscription vendredi 26 octobre 2007 Statut Membre Dernière intervention 30 mars 2010
5 janv. 2008 à 19:30
Bonsoir à tous
Bonsoir Liro
Je suppose que c'est sur Excel.
Je suppose aussi que "mvar" tu la mets dans une cellule.
Afin de contourner le pb, je te propose de traiter la cellule "recevante" avec un code comme celui-ci

Sub essai()
malongueur = Len(Var3)
malongueurtotale = Len(Range("b5"))
'tu traites la cellule recevante
With ActiveCell.Characters(Start:=malongueurtotale - malongueur + 1, Length:=malongueur).Font
        .FontStyle = "Gras"
End With
End Sub

Si toutefois j'ai bien compris

Frédéric
0
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011
6 janv. 2008 à 21:11
Merci Fréd pour ta réponse mais je copie dans le presse papier pour coller aileur (pas dans excel).

En fait j'utilise cette mini macro pour ouvrir un fichier copier des infos dans le pp sans la mise en forme pour coller dans un mail ou un doc word ou autre...

Je voudrais juste qu'une des lignes soit en gras.

Merci
Ludo
0
cs_Frederic45 Messages postés 60 Date d'inscription vendredi 26 octobre 2007 Statut Membre Dernière intervention 30 mars 2010
6 janv. 2008 à 21:56
Bonsoir à tous
Bonsoir Liro

Une solution qui n'est peut être pas très "élégante", mais qui en apparence fonctionne :

Tu mets ton "mvar" dans une cellule excel, tu traites cette cellule comme je te l'ai indiquée dans le code proposé, et tu fais un copy de cette cellule vers word, par exemple....
Tirée par les cheuveux, je te le concède, mais le résultat est là

Frédéric
0
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011
6 janv. 2008 à 22:29
Avant je copiais en sélectionnant les cellule puis ctrl+C mais en collant j'avais le format tableau que je ne voulais pas.

Dans Word je pouvais faire édition>collage spécial>valeur mais dans mon Outlook le menu était grisé, j'ai donc créé cette petite macro.

Dans le code j'ai un ActiveCell.Value pour ne copier que la valeur donc si je copie mvar dans une cellule et qu'ensuite je fait un ActiveCell.Value je n'aurai pas non plus la mise en forme.

Ne peut-on pas manipuler la variable pour la mettre en gras?

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011
6 janv. 2008 à 22:29
Avant je copiais en sélectionnant les cellule puis ctrl+C mais en collant j'avais le format tableau que je ne voulais pas.

Dans Word je pouvais faire édition>collage spécial>valeur mais dans mon Outlook le menu était grisé, j'ai donc créé cette petite macro.

Dans le code j'ai un ActiveCell.Value pour ne copier que la valeur donc si je copie mvar dans une cellule et qu'ensuite je fait un ActiveCell.Value je n'aurai pas non plus la mise en forme.

Ne peut-on pas manipuler la variable pour la mettre en gras?

Merci
0
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011
6 janv. 2008 à 22:30
Oupss! Comment supprimer ce message?
0
cs_Frederic45 Messages postés 60 Date d'inscription vendredi 26 octobre 2007 Statut Membre Dernière intervention 30 mars 2010
7 janv. 2008 à 11:11
Bonjour à tous
Bonjour Liro

Essaie ce code

Sub gras()

var1 = ActiveCell.Value
var2 = ActiveCell.Offset(0, 1).Value
Var3 = ActiveCell.Offset(0, 2).Text

mvar = "Référence: " & var1 & vbNewLine & "Désignation: " & var2 & vbNewLine & "Emballage: " & Var3
malongueur = Len(Var3)
malongueurtotale = Len(mvar)
'tu traites la cellule recevante B5 par exemple
Range(" B5 ") = mvar
Range(" B5 ").Select
With ActiveCell.Characters(Start:=malongueurtotale - malongueur + 1, Length:=malongueur).Font
        .FontStyle = "Gras"
End With
Selection.Copy
'.......et tu envoies
Selection.ClearContents ' efface B5
End Sub

Frédéric
0
Rejoignez-nous