Bonjour,
Je bloque sur un point assez basic... (Tout est relatif)
Par macro, je n'arrive pas à faire un Copier/Coller qui me conserve les
formules et les mises en forme entre 2 classeurs différents.
J'ai tenté avec deux approches sans succès :
- La méthode avec le .CopyRange
Comme sur le code ci-dessous
Sub CopySpreadsheetRange
oSheet1 = ThisComponent.Sheets.getByIndex(I) ' feuille d'originale
oSheet2 = oeval2correct.Sheets.getByIndex(I) ' feuille destinataire
oRangeOrg = oSheet1.getCellRangeByName("A1:C10").RangeAddress '
copie la plage
oRangeCpy = oSheet2.getCellRangeByName("A1:C10").RangeAddress '
insère la plage
oCellCpy =
oSheet2.getCellByPosition(oRangeCpy.StartColumn,oRangeCpy.StartRow).CellAddress
' Position d'insertion
oSheet1.CopyRange(oCellCpy, oRangeOrg) ' copie ...
End Sub
Ce code fonctionne presque puisqu'il effectue le Copier/coller dans le
même classeur (pas deux différents) alors que l'objet oeval2correct est
bien correct.
(Il s'ouvre à l'écran suite à la ligne : oeval2correct =
StarDesktop.loadComponentFromURL( sUrl , "_blank", 0, dummy) )
- La méthode qui utilise les DataArray qui recopie bien sur le second
document mais en perdant toutes les mises en forme
Dim PlageDestination as object
Dim PlageSource as object
...
oeval2correct = StarDesktop.loadComponentFromURL( sUrl , "_blank",
0, dummy)
...
OFeuillesSources = ThisComponent.Sheets()
OFeuillesDestinations = oeval2correct.Sheets()
I = 0
do while I < OFeuillesSources.Count
FeuilleSource = OFeuillesSources.getByIndex(I)
FeuilleDestination = OFeuillesDestinations.getByIndex(I)
PlageSource = FeuilleSource.getCellRangeByName("F1:M250")
PlageDestination = FeuilleDestination.getCellRangeByName("F1:M250")
PlageDestination.DataArray = PlageSource.DataArray
I = I + 1
loop
Connaissez-vous une autre technique j'ai tenté l'enregistreur de Macro,
mais les opérations effectuées sur le classeur cible ne sont pas enregistré.
--
Samuel MOUNIER
INFORMATICIEN (CGO)
------------------------------------------------------------------------
Les listes francophones plus libres sont aussi :
- http://wiki.documentfoundation.org/Local_Mailing_Lists#French
- http://www.geckozone.org/listes/
--
Envoyez un mail à users+help@fr.libreoffice.org pour savoir comment vous désinscrire
Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être
supprimés
Context
- [fr-users] [BASIC] Comment faire un Copier/Coller avec mise en forme de cellules entre 2 classeurs · Samuel Mounier (Liste CGO)
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.