|
 |

Excel et le Presse-Papier
Sous Excel 2000. Si vous ne l'avez pas déjà fait :
Dans l'éditeur VB, ajoutez une référence à "Microsoft Form 2.0 Object Library." Menu Outils --> Références
Mets la chaîne "Excel est super!" dans le presse-papier:
Sub Envoi()
With New DataObject
.SetText "Excel est super!"
.PutInClipboard
End With
End Sub
Et pour récupérer la chaîne
Sub Retour()
With New DataObject
.GetFromClipboard
Contenu = .GetText(1)
End With
MsgBox Contenu
End Sub
Pour récupérer la chaîne avec "Coller"
Raccourci CTRL V
Sub AvecSendKey()
Application.SendKeys "^{v}"
End Sub
Pour récupérer la chaîne dans la cellule A1
Sub ColleDansA1()
Dim Presspp As New DataObject
Presspp.GetFromClipboard
Range("A1") = Presspp.GetText
End Sub
Pour récupérer la chaîne dans un cadre de texte.
Sub ColleDansCadre()
Dim Presspp As New DataObject
Presspp.GetFromClipboard
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 16.5, 21#, _
186.75, 126.75).Select
Selection.Characters.Text = Presspp.GetText
End Sub
Récupère le texte complet du PressePapier. Laurent L.
Sub PressePapier()
Dim Texte As String, Ligne As String
Dim I As Integer, J As Integer
Dim DObj As New DataObject
DObj.GetFromClipboard
Texte = DObj.GetText(1)
Do
I = J + 1
J = InStr(I, Texte, vbCr)
Ligne = Mid$(Texte, I, IIf(J, J - I, Len(Texte) - I + 1))
MsgBox Ligne
Loop While J
End Sub
Et pour vider le contenu du Presse-Papier
Sub Vide()
Application.CutCopyMode = False
End Sub
Et pour vider le contenu du Presse-Papier(2)
Private Declare Function OpenClipboard Lib "user32"(ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Sub VidePP()
OpenClipboard 0
EmptyClipboard
CloseClipboard
End Sub
Nomme la feuille active avec le contenu du Presse-Papier
Cocher la réference: Microsoft ActiveX DataObjects 2.0 Library
Sub NomFeuilClipboard()
Dim FeuilObj As New DataObject
FeuilObj.GetFromClipboard
ActiveSheet.Name = FeuilObj.GetText(1)
End Sub
[top]
|