[Résolu] [Calc] Copier/coller seulement texte et format

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur: Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !

[Résolu] [Calc] Copier/coller seulement texte et format

Messagepar BadWoo » 27 Avr 2018 12:03

Bonjour,

Je voudrais copier/coller le texte et le format pour supprimer les formules.
J'ai utilisé l'outil : "enregistrer une macro" cependant il ne copie pas bien la sélection. Cela fonctionne seulement si je fais d'abord une copie manuelle puis je lance la macro.
J'ai essayé avec
Code : Tout sélectionner   AgrandirRéduire
dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())

et
Code : Tout sélectionner   AgrandirRéduire
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

mais cela revient au même.

Avez vous une idée pour résoudre mon problème ?
Ne faut-il pas passer par l'enregistreur ?

Code : Tout sélectionner   AgrandirRéduire
REM  *****  BASIC  *****

Sub copier_coller

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 ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$B$1:$B$300"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())

rem ----------------------------------------------------------------------
dim args3(5) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Flags"
args3(0).Value = "ST"
args3(1).Name = "FormulaCommand"
args3(1).Value = 0
args3(2).Name = "SkipEmptyCells"
args3(2).Value = false
args3(3).Name = "Transpose"
args3(3).Value = false
args3(4).Name = "AsLink"
args3(4).Value = false
args3(5).Name = "MoveMode"
args3(5).Value = 4

dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args3())

End Sub


En vous remerciant


BadWoo
Dernière édition par BadWoo le 05 Juin 2018 16:02, édité 1 fois.
Libreoffice v: 5.2.7.2
Linux Debian 9
BadWoo
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 18
Inscrit le : 06 Mars 2018 16:07

Re: [Calc] Copier/coller seulement texte et format

Messagepar Dude » 04 Juin 2018 09:28

BadWoo a écrit:Avez vous une idée pour résoudre mon problème ?

Dans l'ordre :
  1. Laisser tomber l'enregistreur
  2. faire un minimum de recherche
  3. Fournir un document
Code : Tout sélectionner   AgrandirRéduire
Sub Dude
   sPlage = "B1:B300"
   oDoc = thisComponent()
   oFeuille = oDoc.currentController.ActiveSheet
   oSource = oFeuille.getCellRangeByName(sPlage)
   oDest = oFeuille.getCellRangeByName(sPlage)
   oDest.DataArray = oSource.DataArray
End Sub
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 20233
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: [Calc] Copier/coller seulement texte et format

Messagepar BadWoo » 05 Juin 2018 16:01

Merci :D j'ai compris grace à toi, ca marche nickel
Code : Tout sélectionner   AgrandirRéduire
Dim onClasseur As Object, aFeuille As Object
Dim aSource as Object
Dim aDest  as Object

onClasseur = ThisComponent
aFeuille = onClasseur.Sheets.getByName("xxxx")

   aSource = aFeuille.getCellRangeByName("B1:B300")
   aDest =aFeuille.getCellRangeByName("B1:B300")
   aDest.DataArray = aSource.DataArray

en fait tu lui dit juste de mettre les mêmes données de la source à la destination. Je pensais pas que ce serait aussi simple sachant que je ne voulais pas le formules mais c'est parfait :)

Merci

Bonne journée
Libreoffice v: 5.2.7.2
Linux Debian 9
BadWoo
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 18
Inscrit le : 06 Mars 2018 16:07


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 3 invité(s)