[Résolu][Calc] Récupérer contenu de la cellule sélectionnée

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 !
Sim31
Fraîchement OOthentifié
Messages : 3
Inscription : 20 avr. 2018 21:22

[Résolu][Calc] Récupérer contenu de la cellule sélectionnée

Message par Sim31 »

Bonjour a tous,

La modération vous a écrit: Sujet initial ici : https://forum.openoffice.org/fr/forum/v ... =4&t=57686

J'ai déjà posé ma question dans la section Tableur et il semblerait que la solution recherchée soit plus facile à trouver par ici.
Je cherche une fonction permettant de récupérer le contenu de la cellule active. Le but étant de contrôler le nombre de doublons présents dans ma feuille de calcul lorsque je saisie une nouvelle entrée dans mon tableau :

Ça donnerait pour une fonction intégrée à la cellule A1.
Je sélectionne la cellule A4, la cellule A1 indique le contenu de la cellule A4
Je sélectionne la cellule B8, la cellule A1 indique le contenu de la cellule B8..

Quelque chose qui parait simple mais je n'ai pas trouvé. Je compte utiliser le contenu de la cellule A1 pour une autre fonction de recherche déjà mise en place. J'espère avoir été suffisamment clair, merci de m'avoir lu en espérant trouver une solution avec ou si cela vous semble possible, sans macro car je n'en ai encore jamais utilisé. Merci pour votre aide :D
Apache OpenOffice 4.1.2
Windows 7 Professionnel SP1
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
Messages : 2668
Inscription : 30 avr. 2009 06:54
Localisation : CATALUNYA
Contact :

Re: [Calc] Récupération du contenu de la cellule sélectionné

Message par Churay »

Bonjour,

Si les données à transférer sont de type numérique (nombre, date, booléen) :

Code : Tout sélectionner

Option Explicit
Sub Main(oEvt)
Dim oSheet AS Object, Var
	oSheet = thisComponent.CurrentController.ActiveSheet
	WITH oEvt.cellAddress
		IF oSheet.GetCellByPosition(.Column, 0).Value <> 0 THEN
			oSheet.GetCellByPosition(.Column, 0).Value = oSheet.GetCellByPosition(.Column, .Row).Value
		END IF
	END WITH
End Sub
Si les données à transférer sont de type texte :

Code : Tout sélectionner

Option Explicit
Sub Main(oEvt)
Dim oSheet AS Object, Var
	oSheet = thisComponent.CurrentController.ActiveSheet
	WITH oEvt.cellAddress
		IF oSheet.GetCellByPosition(.Column, 0).String  <> "" THEN
			oSheet.GetCellByPosition(.Column, 0).String = oSheet.GetCellByPosition(.Column, .Row).String
		END IF
	END WITH
End Sub
Si les données à transférer peuvent être de type texte ou de type numérique, il faut rajouter un test de type.

Mais cela aurait été bien de le préciser... D'où l'intérêt de joindre un fichier, même simplifié et/ou anonymisé, mais suffisamment explicite : cela permet de voir (ou entrevoir) la réalité non exprimée.

La macro est à associer à un bouton ou à l'événement feuille Séléction modifiée
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
rgis
Fraîchement OOthentifié
Messages : 9
Inscription : 12 mars 2009 14:07

Re: [Calc] Récupération du contenu de la cellule sélectionné

Message par rgis »

Bonjour,
Un raccourci clavier facile, par exemple Alt+W,
affecté à une simple macro de copier-coller vers A1
devrait permettre une action rapide
à partir de n'importe quelle cellule.
OpenOffice 4.1.5 sous Windows 10
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
Messages : 2668
Inscription : 30 avr. 2009 06:54
Localisation : CATALUNYA
Contact :

Re: [Calc] Récupération du contenu de la cellule sélectionné

Message par Churay »

bin voilà : il ne te reste qu'a associer la macro qui te va à une raccourci clavier. Voire les deux, à un raccourci distinct

et, si tu le préfères, adapter la sélection de la cellule grace à la méthode .CurrentSelection, soit

cas numérique :

Code : Tout sélectionner

Option Explicit
Sub Main
Dim oSheet AS Object, oCell AS Object
	oSheet = thisComponent.CurrentController.ActiveSheet
	oCell  = thisComponent.CurrentSelection
   
	IF oCell.Value <> 0 THEN oSheet.GetCellByPosition(oCell.cellAddress.Column, 0).Value = oCell.Value
End Sub
cas texte :

Code : Tout sélectionner

Option Explicit
Sub Main
Dim oSheet AS Object, oCell AS Object
	oSheet = thisComponent.CurrentController.ActiveSheet
	oCell  = thisComponent.CurrentSelection
   
	IF oCell.String <> "" THEN oSheet.GetCellByPosition(oCell.cellAddress.Column, 0).String = oCell.String
End Sub
Si la cellule peut contenir du texte ou du numérique, il faut (comme précédemment) prévoir un teste de type et modifier la macro.
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
Verrouillé