j'ai pas mal cherché, mais pas trouvé, dans ce forum comment faire pour récupérer le contenu du presse papier dans une variable (on trouve surtout l'inverse)
mon but est le suivant :
1) sélectionner un ensemble de cellule
2) les copier dans le presse papier
3) mettre le contenu du presse papier dans une variable (la variable texte de mon script) pour l'intégere dans le texte d'un message qu'il me restera à envoyer manuellement
voici la macro qui fonctionne mais qui m'oblige à coller manuellement le presse papier dans le message quand la fenêtre du message est ouvert
cordialement
Code : Tout sélectionner
' courriel avec les infos d'inscription d'un musicien
Sub Mail_Infos_Un_Musicien
Dim oShell As Object, CelluleActive As Object, Titre as object, Cellule as object
dim i as integer
dim Texte as string, Texte1 as string, Texte2 as string, Colonne as string, dest as string, Sujet as string, Signature as string
CelluleActive = ThisComponent.getCurrentSelection
Feuille = ThisComponent.getCurrentController().getActiveSheet()
Cette_Ligne = CelluleActive.CellAddress.Row + 1
Ligne = Cette_Ligne ' je récupère la ligne du tableur sur laquelle je suis
' ligne 3 : les titres des colonnes
oShell = createUnoService("com.sun.star.system.SystemShellExecute")
Cellule = Feuille.getCellRangeByName("F" & Ligne)
Dest = Cellule.getString
Sujet = "Les informations de votre inscription à l'Empb29"
' appel macro pour copier les lignes (ligne de titre 3 + celle du musicien sélectionnée) dans le presse papier
call CopierCollerInfosMusicien Ligne
Texte = "Bonjour" & "%0D%0A" & "%0D%0A" & "Veuillez trouver ci-joint les informations vous concernant." & "%0D%0A" & "%0D%0A" & "Merci de nous signaler par réponse à ce courriel une erreur ou un oubli." & "%0D%0A"
' Signature = Inputbox ("Votre signature de message" ,"Courriel aux musiciens")
Signature = "Le secrétariat de l'école de musique"
'%0D%0A permet d'insérer un saut de ligne dans le corps du message. exemple "Bonjour,%0D%0AJe vous confirme"
oShell.Execute("mailto:" & Dest & "?subject=" & Sujet & "&Body=" & Texte & "%0D%0A" & Signature & "%0D%0A" , "", 0)
End Sub
' copier coller la ligne 3 puis celle du musicien sélectionné (Ligne) et coller dans onglet Divers à la ligne 17 puis sélectionner le tout pour l'avoir dans le presse papier
sub CopierCollerInfosMusicien (Ligne)
rem ------------
rem define variables
dim document as object
dim dispatcher as object
rem ------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem --------------------------- copier coller la ligne 3 des titres de colonne
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$3:$AM$3"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Nr"
args3(0).Value = 7
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())
rem ------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "$A$17"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())
rem ------------
dim args5(5) as new com.sun.star.beans.PropertyValue
args5(0).Name = "Flags"
args5(0).Value = "SVDFN"
args5(1).Name = "FormulaCommand"
args5(1).Value = 0
args5(2).Name = "SkipEmptyCells"
args5(2).Value = false
args5(3).Name = "Transpose"
args5(3).Value = true
args5(4).Name = "AsLink"
args5(4).Value = false
args5(5).Name = "MoveMode"
args5(5).Value = 4
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args5())
rem --------------------------- copier coller la ligne sélectionnée
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Nr"
args6(0).Value = 2
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args6())
rem ------------
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = "ToPoint"
args7(0).Value = "$A$" & Ligne
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args7())
rem -------------
dim args8(0) as new com.sun.star.beans.PropertyValue
args8(0).Name = "ToPoint"
args8(0).Value = "$A$" & Ligne & ":$AM$" & Ligne
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args8())
rem ------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem -----------
dim args10(0) as new com.sun.star.beans.PropertyValue
args10(0).Name = "Nr"
args10(0).Value = 7
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args10())
rem ------------
dim args11(0) as new com.sun.star.beans.PropertyValue
args11(0).Name = "ToPoint"
args11(0).Value = "$B$17"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args11())
rem -----------
dim args12(5) as new com.sun.star.beans.PropertyValue
args12(0).Name = "Flags"
args12(0).Value = "A"
args12(1).Name = "FormulaCommand"
args12(1).Value = 0
args12(2).Name = "SkipEmptyCells"
args12(2).Value = false
args12(3).Name = "Transpose"
args12(3).Value = true
args12(4).Name = "AsLink"
args12(4).Value = false
args12(5).Name = "MoveMode"
args12(5).Value = 4
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args12())
rem -------------------------------- copier le tout dans presse papiers
dim args13(0) as new com.sun.star.beans.PropertyValue
args13(0).Name = "ToPoint"
args13(0).Value = "$A$17:$B$55"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args13())
rem ------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ------------------------ retour feuille musiciens
args3(0).Name = "Nr"
args3(0).Value = 2
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())
end sub