[Résolu] [Calc]Envoyer la valeur d'une cellule dans le Presse-Papier

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 !
JPGO
Fraîchement OOthentifié
Messages : 5
Inscription : 05 janv. 2023 18:30

[Résolu] [Calc]Envoyer la valeur d'une cellule dans le Presse-Papier

Message par JPGO »

Bonjour, je suis nouveau donc assez hésitant pour l'utilisation du forum. Voilà j'utilise LibreOffice 7 sous W7.
J'ai déjà vu des réponses sur le sujet du presse papier par Obasic mais jamais avec le process que je recherche vraiment.
LA QUESTION :
Sous calc, à chaque ligne du tableur que j'alimente en saisie, celui-ci me créé (avec concaténation de plusieurs cellules), un champ texte dans une cellule de la ligne en cours.
Je souhaite récupérer la valeur de la cellule créée dans une variable (ça je sais faire) et pouvoir l'envoyer dans le presse papier (ça je n'arrive pas), pour ensuite alimenter une page web avec la valeur obtenue (grâce à CTRL+V) dans le champ de la page WEB.

Donc en résumé :

Sub 1
'Je récupère la valeur texte dans une variable
v = la valeur de la 10ième cellule de la ligne en cours ' Ca c'est OK
'J'envoie la variable dans le presse papier (Attention c'est la variable texte que je veux envoyer)
Comment faire ?????????
End sub

Un fichier exemple est dispo en PJ pour que ce soit peut-être plus simple.

Voilà je vous remercie à l'avance en souhaitant mes meilleurs voeux à la communauté
Sans nom 1.ods
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par micmac le 10 janv. 2023 15:46, modifié 1 fois.
Raison : Balisage
LibreOffice 7.0.7.0.M2 (X64)
sous Windows 10
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9580
Inscription : 28 août 2010 08:45

Re: [Calc]Envoyer la valeur d'une cellule dans le Presse-Papier

Message par micmac »

Bonjour et bienvenue sur le forum,

Votre fil a été déplacé dans le forum "Macros et API".
Veuillez noter le balisage obligatoire dans cette section (https://forum.openoffice.org/fr/forum/v ... 7493#p7493) : Dans le cas présent [Calc]

Votre titre < Presse papier > a été complété pour le rendre explicite de la question posée.
JPGO a écrit : 05 janv. 2023 19:19 j'utilise LibreOffice 7 sous W7.
Dans votre signature il y a écrit : OpenOffice 2.4 sous Windows XP
Accès direct à votre signature pour la corriger.

Cordialement
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur macOS
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1047
Inscription : 19 août 2018 05:20

Re: [Calc]Envoyer la valeur d'une cellule dans le Presse-Papier

Message par Dolev »

Bonsoir,

Je ne vois pas l'intérêt du truc mais bon.

Code : Tout sélectionner

document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
Bien sûr il faut sélectionner la cellule au préalable via l'enregistreur de macro.
JPGO
Fraîchement OOthentifié
Messages : 5
Inscription : 05 janv. 2023 18:30

Re: [Calc]Envoyer la valeur d'une cellule dans le Presse-Papier

Message par JPGO »

Bonjour et merci de vôtre réponse. En fait l’intérêt est que je dois alimenter une application WEB avec des Nomenclatures
Que j'obtiens avec un tableur de traitement calc. Croyez-moi, j'ai un réel intérêt pour cette procédure.
Est-il possible de glisser la variable directement dans la la ligne de code :
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
????
Ce serait la solution que je recherche, merci et bonne journée.
LibreOffice 7.0.7.0.M2 (X64)
sous Windows 10
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1047
Inscription : 19 août 2018 05:20

Re: [Calc]Envoyer la valeur d'une cellule dans le Presse-Papier

Message par Dolev »

Code : Tout sélectionner

sub RecupData '//////////////////////////////////////////////////
' Récupère la variable
Doc = ThisComponent
Sel = Doc.CurrentSelection
Feuille = Doc.currentController.activeSheet
Feuille = Doc.Sheets.getByName("Chrono")
ActiveCoord = Sel(0).RangeAddress
ActiveCol = ActiveCoord.StartColumn
ActiveLig = ActiveCoord.StartRow
Dim DataConcaten as string
oCC = Doc.getCurrentController()
oCell = Feuille.getCellByPosition(9,ActiveLig)
oCC.select(oCell)
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
End Sub
Open Office 4.1.15 sous Windows 11
JPGO
Fraîchement OOthentifié
Messages : 5
Inscription : 05 janv. 2023 18:30

Re: [Calc]Envoyer la valeur d'une cellule dans le Presse-Papier

Message par JPGO »

Merci pour la réponse, mais la variable n'est que déclaré dans la procédure.
Dim DataConcaten as string

?????
Bonne journée et meilleurs voeux
LibreOffice 7.0.7.0.M2 (X64)
sous Windows 10
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9580
Inscription : 28 août 2010 08:45

Re: [Calc]Envoyer la valeur d'une cellule dans le Presse-Papier

Message par micmac »

Je vous rappelle mon précédent message.
La version d'OpenOffice ou de LibreOffice (Version officielle ou des dépôt et 32 ou 64 bits selon le cas), et le système sur lequel il tourne sont des informations essentielles pour obtenir des réponses adaptées.

Si votre signature n'est pas renseignée lors de votre prochain passage, le sujet sera verrouillé.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur macOS
JPGO
Fraîchement OOthentifié
Messages : 5
Inscription : 05 janv. 2023 18:30

Re: [Calc]Envoyer la valeur d'une cellule dans le Presse-Papier

Message par JPGO »

Bonjour, je viens de le faire, merci de ce rappel. J'espère que tout est correct ?
Bonne journée.
LibreOffice 7.0.7.0.M2 (X64)
sous Windows 10
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1047
Inscription : 19 août 2018 05:20

Re: [Calc]Envoyer la valeur d'une cellule dans le Presse-Papier

Message par Dolev »

JPGO a écrit : 09 janv. 2023 11:20 Merci pour la réponse, mais la variable n'est que déclaré dans la procédure.
Dim DataConcaten as string
Tu n'as pas besoin d'utiliser une chaîne. Il faut sélectionner la cellule.
As-tu testé le code proposé ?
Open Office 4.1.15 sous Windows 11
JPGO
Fraîchement OOthentifié
Messages : 5
Inscription : 05 janv. 2023 18:30

Re: [Calc]Envoyer la valeur d'une cellule dans le Presse-Papier

Message par JPGO »

Bonjour, oui j'ai testé la procédure qui fonctionne. Cependant,
je veux éviter cet forme de code car la valeur de la cellule est déjà gérée avec une précédente procédure qui initialise
21 valeurs de cellules différentes dans des variables globales.
Et j'ai besoin de temps en temps, suivant d'autres procédures en cours, de mettre une des variables dans le presse papier afin de l'utiliser par la suite pour renseigner des champs sur une application WEB.

Voilà, mon besoin est vraiment d'envoyer uniquement une variable string dans le Presse papier de Windows.
J'aimerais vraiment éviter de consulter des cellules une deuxième fois afin de redéclarer la variable qui est déjà initialisée.

Bonne soirée,
JP
LibreOffice 7.0.7.0.M2 (X64)
sous Windows 10
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1047
Inscription : 19 août 2018 05:20

Re: [Calc]Envoyer la valeur d'une cellule dans le Presse-Papier

Message par Dolev »

Dans ce cas, il faut faire appel au service SystemClipboard.
Il y a cet exemple : https://forum.openoffice.org/fr/forum/v ... mclipboard

Mais bon, une application web où l'on colle (action manuelle), je ne vois toujours pas l'intérêt.
Il ya certainement moyen de piloter ou mieux d'accéder à une base de données.
Open Office 4.1.15 sous Windows 11
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9580
Inscription : 28 août 2010 08:45

Re: [Calc]Envoyer la valeur d'une cellule dans le Presse-Papier

Message par micmac »

Bonjour,

Dernière visite : 10 janv. 2023 13:55

Vous avez lu semble t-il les réponses qui vous ont été faites sans y donner de suite.
N'ayant plus de nouvelle, on peut en déduire que le problème est résolu ou ne se reproduit plus.

Merci de baliser par vous-même la prochaine fois.

Un remerciement fait aussi plaisir aux bénévoles qui vous ont consacré de leur temps.
La politesse fait également partie de la philosophie du logiciel libre.

En cas d'erreur, contactez l'équipe de modération pour la réouverture du fil.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur macOS