hello,
Le problème consiste à copier du texte formaté (avec couleurs de caractères, caractères gras , soulignés etc...)dans un contrôle de type RichtextBox, ici c'est le contrôle MSREdit Class qui est utilisé.
Pour réaliser cette action en VBA, j'utiliser un copier de la cellule et j'envoie un message de coller au contrôle MSREdit.
Mais voilà, pour l'instant lorsque j'exécute le code suivant :
Les couleurs sont perdues et le texte dans le contrôle MSREdit reste en noir et blanc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Const WM_COPY = &H301 Private Const WM_PASTE = &H302 Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _ hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _ lParam As Any) As Long Sub Bouton2_Cliquer() ActiveSheet.Range("D1").Copy SendMessage Sheets("Feuil1").AMSREdit1.hWnd, WM_PASTE, 0, ByVal 0& End Sub.
Par contre si je copie la cellule, la colle dans un nouveau document word et copie le texte collé dans word et bien j'ai les couleurs quand je colle dans mon contrôle.
Cela fait comme si le copier Word avait quelque chose de plus que le copier Excel (peut être le format RTF) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub Bouton2_Cliquer() Dim oWord As Object Dim oDoc As Object ActiveSheet.Range("D1").Copy Set oWord = CreateObject("word.application") Set oDoc = oWord.Documents.Add oWord.Selection.Paste oWord.Visible = False oDoc.Range.Select oWord.Selection.Copy SendMessage Sheets("Feuil1").AMSREdit1.hWnd, WM_PASTE, 0, ByVal 0& oDoc.Close SaveChanges:=wdDoNotSaveChanges oWord.Quit End Sub
Si quelqu'un à une solution sans passer par word ce qui fait un peu usine à gaz ?
Ami calmant, J.P
Partager