[Résolu][Calc]Mise en forme monétaire au format Euro €

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 !
zococo
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 19 mars 2007 17:39

[Résolu][Calc]Mise en forme monétaire au format Euro €

Message par zococo »

Bonjour,

Je cherche à imposer le format monétaire lors de l'insertion de nombres dans des cellules. En utilisant NumberFormats et queryKey je parviens à obtenir une mise en forme au format Francs mais pour les euros, je sèche.

Pour ma version, la proposition de ce post ne fonctionne pas :
http://user.services.openoffice.org/fr/ ... re#p106434

J'utilise donc un code inspiré de la bible de Marcelly et Godard :

Code : Tout sélectionner

Dim Classeur as Object
Dim Feuilles as Object
Dim LaFeuille as Object
Dim LaCle As Long

Dim LesFormats As Object
Dim Param_Nationaux As New com.sun.star.lang.Locale

	Param_Nationaux.Language = "fr"
	Param_Nationaux.Country = "FR"
	LesFormats = CLASSEUR.NumberFormats
	
	LaCle = LesFormats.queryKey("# ##0,00 [$F-40C];-# ##0,00 [$F-40C]", Param_Nationaux, false)
		 	
	LaFeuille.getCellByPosition(X, Y).NumberFormat = LaCle
Très probablement c'est l'expression "# ##0,00 [$F-40C];-# ##0,00 [$F-40C]" qui est inadaptée, cependant si j'essaye par exemple "# ##0,00 €;-# ##0,00 €" je n'obtiens aucune mise en forme.

J'ajoute que si dans le livre de Godard et Marcelly il est proposé une macro permettant d'afficher toutes les mise en forme disponibles, avec fr et FR je n'en vois pas qui corresponde à la devise euro.

Est-ce que vous pourriez m'indiquer de quelle manière puis-je obtenir la mise en forme en euros (€) ?

Par avance merci.
Dernière modification par zococo le 28 mars 2010 18:27, modifié 1 fois.
GNU Linux Ubuntu 9.10 - OpenOffice.org 3.1.1. version fournie par Ubuntu 9.10 (Karmic Koala)
orveo
Membre OOrganisé
Membre OOrganisé
Messages : 86
Inscription : 25 août 2007 16:45
Localisation : paris est (disney)

Re: [Calc]Mise en forme monétaire au format Euro €

Message par orveo »

bonsoir

as tu lu ceci:
http://user.services.openoffice.org/fr/ ... hilit=euro
je pense que cela doit correspondre a ton besoin
cordialement
orveo
libreoffice 4.2.4.2 sous linux ubuntu 14.04
zococo
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 19 mars 2007 17:39

Re: [Calc]Mise en forme monétaire au format Euro €

Message par zococo »

Bonsoir,

Effectivement je pense qu'il serait intéressant que j'approfondisse ma connaissance des styles que je ne maîtrise pas du tout en OOoBasic, d'autant que ça peut être assez utile.

Pour mon problème, en lisant les liens que tu m'as suggérés j'ai contourné la difficulté en affichant la mise en forme d'une cellule déjà formatée avec une MsgBox :

Code : Tout sélectionner

Sub Code_Format()
'########################################################################################################################
'#																										
'# Renvoie le code de format numérique d'une cellule déjà mise en forme qui peut ensuite être appliqué ailleurs par :  	
'# Classeur.Feuille.getCellByPosition(X, Y).NumberFormat = numéro de code affiché dans la MsgBox
'#																		
'########################################################################################################################
'
Dim vClasseur as Object
Dim vLesFeuilles as Object
Dim vUneFeuille as Object
Dim vNomFeuille as String
Dim vCellule as String

	vClasseur = thisComponent	
	vLesFeuilles = vClasseur.Sheets
	vNomFeuille = InputBox("Nom de la feuille : ")
	vUneFeuille = vLesFeuilles.getByName(vNomFeuille)
	vCellule = InputBox("Coordonnées de la cellule dont le code de format est cherché : ")
	MsgBox("Numéro de code du format appliqué : "&vUneFeuille.getCellRangeByName(vCellule).NumberFormat)
	
End sub
Ce n'est pas très élégant et ça ne me satisfait pas vraiment d'un point de vue intellectuel mais pour l'instant ça me dépanne.

Merci pour ces conseils avisés et bonne soirée.
GNU Linux Ubuntu 9.10 - OpenOffice.org 3.1.1. version fournie par Ubuntu 9.10 (Karmic Koala)
orveo
Membre OOrganisé
Membre OOrganisé
Messages : 86
Inscription : 25 août 2007 16:45
Localisation : paris est (disney)

Re: [Résolu][Calc]Mise en forme monétaire au format Euro €

Message par orveo »

rebonsoir
je pense qu'il faut lire plus bas dans le fil et essayer formatnumber=106
je dis essayé car je n'ai pas testé

cordialement
libreoffice 4.2.4.2 sous linux ubuntu 14.04
zococo
NOOuvel adepte
NOOuvel adepte
Messages : 14
Inscription : 19 mars 2007 17:39

Re: [Résolu][Calc]Mise en forme monétaire au format Euro €

Message par zococo »

Re bonjour/bonsoir,

Sur ma version :

Code : Tout sélectionner

.getCellByPosition(X, Y).NumberFormat = 108
fonctionne très bien mais avec le style, si j'ai bien compris, on peut faire les choses de manière plus portable et élégante. Mon coté perfectionniste préfère mais ma paresse naturelle se contente que ça fonctionne pour l'instant.

Ce que je voulais dire c'est que le "108" est lié à ma configuration si j'ai bien compris et que j'aimerai, dans l'absolu, dépasser cette limite. Je trouve aussi que ma manière de récupérer cette valeur, grâce à ma procédure, n'est pas très élégante mais c'est plus par formalisme intellectuel qu'autre chose.

En tout cas merci de m'avoir dépanné.
GNU Linux Ubuntu 9.10 - OpenOffice.org 3.1.1. version fournie par Ubuntu 9.10 (Karmic Koala)
Avatar de l’utilisateur
spYre
InconditiOOnnel
InconditiOOnnel
Messages : 888
Inscription : 29 oct. 2008 19:02
Localisation : Liège, Belgique

Re: [Résolu][Calc]Mise en forme monétaire au format Euro €

Message par spYre »

Bonjour zococo,
zococo a écrit :Très probablement c'est l'expression "# ##0,00 [$F-40C];-# ##0,00 [$F-40C]" qui est inadaptée.
Quid de l'expression "# ##0,00 [$-40C];-# ##0,00 [$-40C]" ? :wink:
zococo a écrit :Ce que je voulais dire c'est que le "108" est lié à ma configuration si j'ai bien compris et que j'aimerai, dans l'absolu, dépasser cette limite.
La méthode QueryKey permet justement de vérifier si le format existe. Si non, la méthode AddNew ajoute le format souhaité :

Code : Tout sélectionner

LaCle = LesFormats.queryKey("# ##0,00 [$€-40C];-# ##0,00 [$€-40C]", Param_Nationaux, false)

If LaCle = -1 then LaCle = LesFormats.addNew("# ##0,00 [$€-40C];-# ##0,00 [$€-40C]", Param_Nationaux)

LaFeuille.getCellByPosition(X, Y).NumberFormat = LaCle
LaCle récupérera toujours la valeur de la configuration en cours.

Cordialement.
LibreOffice 3.3.4 + Report Builder
Windows 7 / Windows XP sp3
Ubuntu 11.10 / LMDE
Avatar de l’utilisateur
Sid-Le-Bricoleur
NOOuvel adepte
NOOuvel adepte
Messages : 16
Inscription : 10 févr. 2025 11:02

[Calc]Mise en forme monétaire au format Euro €

Message par Sid-Le-Bricoleur »

Bonjour,

Je me permets de ré-ouvrir cet ancien fil car en faisant un compilé au propre des scripts proposés, le résultat ne donne rien chez moi sur une version adapté dans mon module : c'est-à-dire aucune mise en forme particulière (mais pas d'erreur, c'est déjà ça), juste un nombre entier.

Le compilé en question :

Code : Tout sélectionner

Dim Classeur as Object
Dim Feuilles as Object
Dim LaFeuille as Object
Dim LaCle As Long

Dim LesFormats As Object
Dim Param_Nationaux As New com.sun.star.lang.Locale

	Param_Nationaux.Language = "fr"
	Param_Nationaux.Country = "FR"
	LesFormats = CLASSEUR.NumberFormats
	
	LaCle = LesFormats.queryKey("# ##0,00 [$€-40C];-# ##0,00 [$€-40C]", Param_Nationaux, false)
	If LaCle = -1 then LaCle = LesFormats.addNew("# ##0,00 [$€-40C];-# ##0,00 [$€-40C]", Param_Nationaux)

	LaFeuille.getCellByPosition(X, Y).NumberFormat = LaCle
Ma question : est-ce que les nouvelles versions de LibreOffice ont délaissé/abandonné des propriétés ou ais-je faire une erreur ?
LibreOffice 24.8.4.2 (X86_64) sous Windows 10 X86_64
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12659
Inscription : 08 nov. 2005 16:23
Localisation : Brest, France

Re: [Résolu][Calc]Mise en forme monétaire au format Euro €

Message par Bidouille »

Déterrage = verrouillage

Ami fossoyeur, merci d'ouvrir votre propre fil de discussion que d'exhumer un sujet résolu et vieux de presque 15 ans .