1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| Sub Copie_Fichier(DocOrig As Object, NomFeuille As Object, DocDest As Object)
'Copie d'une feuille d'un classeur vers un autre classeur en derniere position
'
'Arguments d'entree
' DocOrig : Le classeur où se trouve la feuille à copier
' NomFeuille : Le nom de la feuille à copier
' DocDest : Le classeur de destination
'
'Necessite que les 2 classeurs soient ouverts au moment de l'appel
'Déclarations
Dim Feuille As Object, NewFeuille as object
Dim oFrame As Object, oDisp As Object
If DocDest.Sheets.hasByName(NomFeuille) Then
MsgBox "Cette feuille existe déjà"
else
'*******************
'Rendre la feuille à copier active
Feuille = DocOrig.getSheets.getByName(NomFeuille)
DocOrig.CurrentController.ActiveSheet = Feuille
'*******************
'Copie
oFrame = DocOrig.CurrentController.Frame
oDisp = createUnoService("com.sun.star.frame.DispatchHelper")
oDisp.executeDispatch(oFrame, ".uno:SelectAll", "", 0, Array())
oDisp.executeDispatch(oFrame, ".uno:Copy", "", 0, Array())
'*******************
'On se place sur DocDest
'Création de la nouvelle feuille
DocDest.GetSheets.insertNewByName(Direction,GlobalDoc.Sheets.Count+1)'En dernier
'Récupération de l'objet Feuille ayant ce nom
NewFeuille = DocDest.getSheets.getByName(NomFeuille)
'Activation de cette feuille
DocDest.CurrentController.ActiveSheet = NewFeuille
'Selection de la frame
oFrame = DocDest.CurrentController.Frame
oDisp = createUnoService("com.sun.star.frame.DispatchHelper")
'*******************
'Collage
oDisp.executeDispatch(oFrame, ".uno:Paste", "", 0, Array())
End If
End Sub |
Partager