[Résolu][Writer]Dupliquer ou recopier une cellule de tableau

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 !
vito971
Membre OOrganisé
Membre OOrganisé
Messages : 53
Inscription : 09 mai 2014 00:53

[Résolu][Writer]Dupliquer ou recopier une cellule de tableau

Message par vito971 »

Bonjour,
j'ai essayé le code suivant :

Code : Tout sélectionner

Dim oDoc as Object, oRange as Object, aCopier as Object
   oDoc = thisComponent
   oRange = oDoc.TextTables.getByName("Tableau1").getCellByPosition(1,0) ' la zone à copier
   oDoc.CurrentController.select(oRange) 'Sélection de la zone
   aCopier = oDoc.CurrentController.getTransferable() 'Copie
   oRange = oDoc.TextTables.getByName("Tableau1").getCellByPosition(0,0) 'Première cellule pour recopie de la zone
   oDoc.CurrentController.select(oRange) 'Selection de la cellule
   oDoc.CurrentController.insertTransferable(aCopier) 'Transfert des données
le controle à copié est placé dans un tableau dans la colonne 2 ligne 1 je voudrais le copier sans utiliser son nom (voir post: https://forum.openoffice.org/fr/forum/v ... =8&t=50730 ) mais par sa position.
Pourquoi je ne copie rien.

Merci.
PS: aucune des macro ne me donne ce que je veux(copier les boutons radios de la case 2,1 dans la case 1,1 en utilisant leur position dans le tableau et non pas avec leur nom)
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par vito971 le 12 avr. 2016 19:47, modifié 2 fois.
ooo4.1 + windows Vista
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25175
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Writer] Dupliquer un controle

Message par Dude »

Salut,
vito971 a écrit :j'ai essayé le code suivant
A priori, tu oublies de citer l'auteur : https://forum.openoffice.org/fr/forum/v ... =8&t=50730

Dupliquer des contrôles me semble hasardeux.
Il est plus simple de les créer à la volée (voir le suprême sur le sujet).
Autre solution : créer tous les contrôles depuis l'IHM et les masquer.
vito971
Membre OOrganisé
Membre OOrganisé
Messages : 53
Inscription : 09 mai 2014 00:53

Re: [Writer] Dupliquer un controle

Message par vito971 »

Bonjour
Merci pour cette réponse,mais elle ne convient pas car je dois utiliser des caractères de types images ou généré avec DMATHS par exemple il s’agit en fait de dupliquer par macro le contrôle choisi au hasard dans le tableau de la partie prof pour le mettre dans la partie élève.
Voici le fichier "définitif"
quelqu'un a-t-il une idée?
La macro que j'ai cité provient d'une macro de classeur qui fonctionne très bien pour les objets différents du type texte(images ou bouton...) et c'est ce que je veux ,alors pourquoi pas avec writer?
La voici

Code : Tout sélectionner

Option Explicit

Sub CopyZoneMemeClasseur()
Dim oDoc as Object, oRange as Object, aCopier as Object
	oDoc = thisComponent
	oRange = oDoc.Sheets(0).getCellByPosition(1,0) ' la zone à copier
	oDoc.CurrentController.select(oRange) 'Sélection de la zone
	aCopier = oDoc.CurrentController.getTransferable() 'Copie
	oRange = oDoc.Sheets(1).getCellByPosition(1,0) 'cellule pour recopie de la zone
	oDoc.CurrentController.select(oRange) 'Selection de la cellule
	oDoc.CurrentController.insertTransferable(aCopier) 'Transfert des données
End Sub
Cordialement
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
ooo4.1 + windows Vista
joel275
InconditiOOnnel
InconditiOOnnel
Messages : 839
Inscription : 10 janv. 2009 08:05

Re: [Writer] Dupliquer un controle

Message par joel275 »

Bonjour,

Essaie:

Code : Tout sélectionner

Dim oDoc as Object, MaCellule as Object, aCopier as Object, MonCurseur as Object
       oDoc = thisComponent
       MaCellule = oDoc.TextTables.getByName("Tableau1").getCellByPosition(2,0) ' la zone à copier
       MonCurseur = MaCellule.createTextCursor
       MonCurseur.GotoEnd(True)
       oDoc.CurrentController.select(MonCurseur) 'Sélection de la zone
       aCopier = oDoc.CurrentController.getTransferable() 'Copie
       MaCellule = oDoc.TextTables.getByName("Tableau3").getCellByPosition(1,0) 'Première cellule pour recopie de la zone
       oDoc.CurrentController.select(MaCellule) 'Selection de la cellule
       oDoc.CurrentController.insertTransferable(aCopier) 'Transfert des données
Il faut de plus que tous les objets soient ancrés au paragraphe (et non à la page) pour que le code ci-dessus les transfère.

A plus.
Dernière modification par joel275 le 12 avr. 2016 13:42, modifié 2 fois.
A jour de LibreOffice et de Ubuntu
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Writer] Dupliquer un controle

Message par Piaf »

Bonjour
Tu devrais changer le titre de ton fil avec quelque chose du genre : Recopier le contenu d'une cellule.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
vito971
Membre OOrganisé
Membre OOrganisé
Messages : 53
Inscription : 09 mai 2014 00:53

Re: [Résolu][Writer] Dupliquer un controle-copier une cellul

Message par vito971 »

C'est fait
Merci pour l'aide de tous
ooo4.1 + windows Vista