Bonjour,
pour faire suite à la question posée dans la section calc (viewtopic.php?p=387275#p387275), où il m'est conseillé de passer par la création d'une macro et notamment par l'enregistreur de macro :
Comment copier la mise en forme et la valeur (numérique ou texte) d'une cellule, à l'aide d'un bouton ?
Si dans mon fichier exemple, la destination de la copie est la cellule G5, l'idéal serait de pouvoir le faire dans plusieurs cellules, lesquelles sont sélectionnées en amont de l'utilisation du bouton.
Merci beaucoup.
[Résolu] [Calc] Copier texte et mise en forme par bouton.
Modérateur : Vilains modOOs
Règles du forum
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 !
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 !
-
- Membre lOOyal
- Messages : 42
- Inscription : 24 sept. 2006 14:16
[Résolu] [Calc] Copier texte et mise en forme par bouton.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par micmac le 11 nov. 2024 10:45, modifié 4 fois.
Raison : [Calc] remplace [CALC]. Faites-le vous-même la prochaine fois
Raison : [Calc] remplace [CALC]. Faites-le vous-même la prochaine fois
L.O. 24.8.2.1 - Windows 11
-
- RespOOnsable modération
- Messages : 4117
- Inscription : 06 oct. 2008 08:03
Re: Copier texte et mise en forme par bouton.
Bonjour,
Merci de tenir compte du bandeau rouge en haut de page, et de baliser correctement votre question.
Cordialement
Merci de tenir compte du bandeau rouge en haut de page, et de baliser correctement votre question.
Cordialement
Pour tout savoir sur le fonctionnement de ce forum À lire avant tout !
-
- SuppOOrter
- Messages : 1466
- Inscription : 18 janv. 2008 09:02
- Localisation : Val de Marne
Re: [CALC] Copier texte et mise en forme par bouton.
Bonjour,
Voilà un code simple pour Copier/Coller une zone. il suffit de le brancher sur l'événement "Exécuter l'action" du bouton.
Ceci fonctionne pour un des boutons.
Il est possible d'utiliser la même procédure pour plusieurs boutons, en testant de quel bouton vient l'événement.
Cordialement,
PS : Simple curiosité, quel est le but final de l'opération ?
Voilà un code simple pour Copier/Coller une zone. il suffit de le brancher sur l'événement "Exécuter l'action" du bouton.
Code : Tout sélectionner
Sub CopieCellule
oDoc = ThisComponent
oFeuille = oDoc.CurrentController.ActiveSheet
oCelluleSource = oFeuille.getCellRangeByName("B5")
oCelluleDestination = oFeuille.getCellRangeByName("G5")
oDoc.CurrentController.Select( oCelluleSource )
oCopie = oDoc.CurrentController.GetTransferable
oDoc.CurrentController.Select( oCelluleDestination )
oDoc.CurrentController.InsertTransferable(oCopie)
End Sub
Il est possible d'utiliser la même procédure pour plusieurs boutons, en testant de quel bouton vient l'événement.
Cordialement,
PS : Simple curiosité, quel est le but final de l'opération ?
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
-
- Membre lOOyal
- Messages : 42
- Inscription : 24 sept. 2006 14:16
Re: [CALC] Copier texte et mise en forme par bouton.
Excellent. C'est exactement ce que je voulais.
Merci beaucoup.
Merci beaucoup.
L.O. 24.8.2.1 - Windows 11
-
- HédOOniste
- Messages : 1752
- Inscription : 15 déc. 2010 08:33
Re: [CALC] Copier texte et mise en forme par bouton.
Bonjjour
en m'inspirant de la macro de Jeanmi2403 que je salue au passage
une proposition avec une seule macro pour les 3 boutons
avec le nom du bouton
en m'inspirant de la macro de Jeanmi2403 que je salue au passage
une proposition avec une seule macro pour les 3 boutons
Code : Tout sélectionner
Sub copier(Event as variant)
oDoc = ThisComponent
oFeuille = oDoc.CurrentController.activeSheet
Dim NomBouton as string
NomBouton = Event.Source.Model.Name rem récupère le nom du bouton déclenché
If NomBouton="B1" then oCelluleSource = oFeuille.getCellRangeByName("B2")
If NomBouton="B2" then oCelluleSource = oFeuille.getCellRangeByName("B5")
If NomBouton="B3" then oCelluleSource = oFeuille.getCellRangeByName("B8")
oCelluleDestination = oFeuille.getCellRangeByName("G5")
oDoc.CurrentController.Select( oCelluleSource )
oCopie = oDoc.CurrentController.GetTransferable
oDoc.CurrentController.Select( oCelluleDestination )
oDoc.CurrentController.InsertTransferable(oCopie)
End Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.14 sous Windows 10
-
- SuppOOrter
- Messages : 1466
- Inscription : 18 janv. 2008 09:02
- Localisation : Val de Marne
Re: [Résolu] [Calc] Copier texte et mise en forme par bouton.
Re-bonjour à tous,
yclik (que je salue également) m'a coupé l'herbe sous le pied.
Mais, pour le fun, je vais rajouter une simplification supplémentaire.
J'inscris l'adresse de la cellule source dans la propriété "Complément d'information" de chaque bouton. On récupère cette valeur avec la propriété "Tag" de l'objet bouton.
Du coup on a :
à la place de la cascade de If. Ca marche quel que soit le bouton.
On peut mettre autant de boutons qu'on veut...
Encore plus fun !!!
On peut mettre l'adresse de la source ET celle de la destination dans le complément d'information.
Il suffira ensuite de les séparer. Par exemple, on met "B8,G5" dans le Complément d'information d'un bouton, "B5,G6" dans un autre, etc ...
Les instructions de copie sont les mêmes que précédemment.
Et chaque bouton copie dans des cellules différentes.
Bonne soirée,
yclik (que je salue également) m'a coupé l'herbe sous le pied.
Mais, pour le fun, je vais rajouter une simplification supplémentaire.
J'inscris l'adresse de la cellule source dans la propriété "Complément d'information" de chaque bouton. On récupère cette valeur avec la propriété "Tag" de l'objet bouton.
Du coup on a :
Code : Tout sélectionner
sZoneSource = Event.Source.Model.Tag rem récupère l'adresse de la cellule à copier
oCelluleSource = oFeuille.getCellRangeByName(sZoneSource)
On peut mettre autant de boutons qu'on veut...
Encore plus fun !!!
On peut mettre l'adresse de la source ET celle de la destination dans le complément d'information.
Il suffira ensuite de les séparer. Par exemple, on met "B8,G5" dans le Complément d'information d'un bouton, "B5,G6" dans un autre, etc ...
Code : Tout sélectionner
Dim aAdresses() as String
sZones = Event.Source.Model.Tag rem récupère dans une chaîne les adresses source et destination
aAdresses = Split (sZones,",") rem on récupère un tableau (arrayde chaînes
oCelluleSource = oFeuille.getCellRangeByName(sZonesAdresses(0)) rem B8
oCelluleDestination = oFeuille.getCellRangeByName(sZonesAdresses(1)) rem G5
Et chaque bouton copie dans des cellules différentes.
Bonne soirée,
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX