[Résolu][Calc] Clic cellule pour écrire dans une autre cellule

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 !
fredo59000
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 12 oct. 2022 16:27

[Résolu][Calc] Clic cellule pour écrire dans une autre cellule

Message par fredo59000 »

Hello,

je réessaie de poster. J'avoue ne pas tout comprendre vos règles :-)

Document joint : cas avec un bouton. j'aimerais plutôt cliquer dans une cellule pour afficher son contenu dans une autre cellule

Code : Tout sélectionner

Sub Main(oevt)
Dim oCell as object, labelBouton As String
oCell = thiscomponent.Sheets.GetByName("Feuille1").GetCellRangeByName("A1")
labelBouton = oevt.Source.Model.Label
On Error GoTo ConversionError
oCell.SetValue(CDbl(LabelBouton))
On Error GoTo 0
exit sub
ConversionError:
oCell.SetString(labelBouton)
Resume Next
End Sub
Merci
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par fredo59000 le 30 mars 2024 16:59, modifié 1 fois.
LibreOffice 7.6.6.3
sous Windows 10
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 669
Inscription : 20 déc. 2017 14:45

Re: [Calc] Clic cellule pour écrire dans une autre cellule

Message par rollmops »

Bonjour,

Cliquer sur une cellule amène à changer de cellule. Donc je ne comprends pas ce que vous cherchez à faire.
Si une donnée est saisie par exemple dans A1 et que vous souhaitez reporter sa valeur dans une autre cellule, il suffit de faire
OpenOffice 4.1.15 - Windows 10
fredo59000
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 12 oct. 2022 16:27

Re: [Calc] Clic cellule pour écrire dans une autre cellule

Message par fredo59000 »

ce serait une plage de cellule avec par exemple
A1 = 1
A2 = 2
A3 = 3
Comme un écran pour composer un numéro de téléphone.
si je sélectionne la case A1 ça copie "1" dans une autre case de mon choix
Je voudrais ne pas passer par un bouton comme dans l'exemple
LibreOffice 7.6.6.3
sous Windows 10
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 669
Inscription : 20 déc. 2017 14:45

Re: [Calc] Clic cellule pour écrire dans une autre cellule

Message par rollmops »

Un truc simple est de brancher la macro sur un événement de feuille comme le double clic
Image
OpenOffice 4.1.15 - Windows 10
fredo59000
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 12 oct. 2022 16:27

Re: [Calc] Clic cellule pour écrire dans une autre cellule

Message par fredo59000 »

Ok mais du coup que dois je changer dans ma macro ?
LibreOffice 7.6.6.3
sous Windows 10
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 669
Inscription : 20 déc. 2017 14:45

Re: [Calc] Clic cellule pour écrire dans une autre cellule

Message par rollmops »

fredo59000 a écrit : 09 mars 2024 19:59 Ok mais du coup que dois je changer dans ma macro ?
Il vous suffit de modifier la ligne ou vous attribuez la valeur à la cellule au lieu du libellé du bouton.
Vous faites un truc comme

Code : Tout sélectionner

Valeur = oCell.GetValue
Valeur = Valeur +1
oCell.SetValue(Valeur)
Utilisez Xray pour comprendre les méthodes exposées
OpenOffice 4.1.15 - Windows 10
fredo59000
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 12 oct. 2022 16:27

Re: [Calc] Clic cellule pour écrire dans une autre cellule

Message par fredo59000 »

Je ne connaissais pas l'utilisation de l’événement de la feuille. merci pour la découverte mais ça ne répond pas à mon besoin

j'ai mis une image pour mieux comprendre
si je double clique dans la plage A4-A7, ça inscrit la valeur dans la cellule A2
si je double clique dans la plage C4-C7, ça inscrit la valeur dans la cellule C2
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.6.3
sous Windows 10
Avatar de l’utilisateur
Noonours
PassiOOnné
PassiOOnné
Messages : 501
Inscription : 11 mai 2013 00:11
Localisation : Aix en Provence

Re: [Calc] Clic cellule pour écrire dans une autre cellule

Message par Noonours »

Bonjour Fredo59000, le forum

Essaye ce script, et (comme préconisé par Rollmops) est à brancher sur l'évènement "double-clic" de ta page:

Code : Tout sélectionner

Sub EcrireValeurAuDessus()

Plage1 = "A4:A7" : Plage1Cible = "A2"
Plage2 = "C4:C7" : Plage2Cible = "C2"

oDoc = ThisComponent
oSel = oDoc.CurrentSelection
oFeuil1 = oDoc.Sheets.getByName("Feuille1")
oPlage1 = oFeuil1.GetCellRangeByName(Plage1)
oPlage2 = oFeuil1.GetCellRangeByName(Plage2)

If not oSel.supportsService("com.sun.star.table.Cell") Then Exit Sub

If oSel.queryIntersection(oPlage1.RangeAddress).Count > 0 Then 
	oFeuil1.GetCellRangeByName(Plage1Cible).Value = oSel.Value
ElseIf oSel.queryIntersection(oPlage2.RangeAddress).Count > 0 Then
	oFeuil1.GetCellRangeByName(Plage2Cible).String = oSel.String
Endif

End Sub
Cordialement,
Noonours procrastinateur perfectionniste: "Je fais rien, mais demain je l'ferai mieux"

Pour obtenir la réponse la plus précise possible, VEUILLEZ JOINDRE UN FICHIER

LibO 7.6.5.2 Stable et OpenOffice 4.1.15 sous Windows 10
fredo59000
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 12 oct. 2022 16:27

Re: [Calc] Clic cellule pour écrire dans une autre cellule

Message par fredo59000 »

Bizarrement ça marche pour la plage 2 voire les autres plages que je crée (quelque soit le libellé)
mais pas la plage 1 qui renvoie un "0" (sauf si la plage contient des chiffres)
LibreOffice 7.6.6.3
sous Windows 10
Avatar de l’utilisateur
Noonours
PassiOOnné
PassiOOnné
Messages : 501
Inscription : 11 mai 2013 00:11
Localisation : Aix en Provence

Re: [Calc] Clic cellule pour écrire dans une autre cellule

Message par Noonours »

Bonjour
fredo59000 a écrit :mais pas la plage 1 qui renvoie un "0" (sauf si la plage contient des chiffres)
D'après ton exemple, j'en avais déduit que la première colonne contenait des valeurs et la seconde des chaines de caractères.
Remplace

Code : Tout sélectionner

oFeuil1.GetCellRangeByName(Plage1Cible).Value = oSel.Value
par:

Code : Tout sélectionner

oFeuil1.GetCellRangeByName(Plage1Cible).String = oSel.String
Mais toutes les valeurs chiffrées seront au format texte.
a+
Noonours procrastinateur perfectionniste: "Je fais rien, mais demain je l'ferai mieux"

Pour obtenir la réponse la plus précise possible, VEUILLEZ JOINDRE UN FICHIER

LibO 7.6.5.2 Stable et OpenOffice 4.1.15 sous Windows 10
fredo59000
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 12 oct. 2022 16:27

Re: [Calc] Clic cellule pour écrire dans une autre cellule

Message par fredo59000 »

ça marche nickel
Merci pour votre aide
LibreOffice 7.6.6.3
sous Windows 10
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 3954
Inscription : 06 oct. 2008 08:03

Re: [Calc] Clic cellule pour écrire dans une autre cellule

Message par Oukcha »

Sujet résolu ?
  • Placez-vous sur le premier message de votre fil de discussion
  • En haut à droite de ce message, cliquez sur le bouton du petit crayon pour éditer.
  • Modifiez le titre du message en cochant l'icône Image et en tapant [Résolu] (respectez la graphie donnée) comme illustré ci-dessous :

    Image
Cordialement
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image