[Résolu][Calc] Calculer l'age par rapport à un champ date

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 !
Daniel60
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 243
Inscription : 05 mars 2014 07:09

[Résolu][Calc] Calculer l'age par rapport à un champ date

Message par Daniel60 »

Bonjour, Faisant suite à un précédent poste https://forum.openoffice.org/fr/forum/v ... =8&t=55988
J'ai mis en place mon tableau
Mais j'aimerai automatiser le calcul de la tranche d'âge par rapport à la date de naissance.
J'ai une formule sur le tableau qui me le calcul, mais on doit passer par une boite de dialog, je me demande si c'est également possible?
Actuellement l'inscription de la tranche d'âge se fait avec une listbox
Image

J'aimerai obtenir ce résultat : soit afficher l'âge après saisi de la Datefield ou inscrire automatiquement la tranche d'âge
Image

Je ne sais pas si cela soit réalisable par une programmation ? Ou alors dois-je utiliser une formule sur le tableur qui fera l'objet d'un nouveau poste.
Dernière modification par Daniel60 le 10 mars 2019 17:45, modifié 3 fois.
J'utilise Open Office version 4.1.1. et le système d'exploitation Windows 7 Professionnel 64 bit
Daniel60
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 243
Inscription : 05 mars 2014 07:09

Re: [Calc] Calculer l'age par rapport à une DateField

Message par Daniel60 »

Apparemment, j'ai posé une colle !
J'utilise Open Office version 4.1.1. et le système d'exploitation Windows 7 Professionnel 64 bit
Avatar de l’utilisateur
DLE
SuppOOrter
SuppOOrter
Messages : 1477
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: [Calc] Calculer l'age par rapport à une DateField

Message par DLE »

Bonjour,

Une proposition de solution, la macro "SelectTranche" du "module1" est affectée à l'événement "Perte de focus" du contrôle "05 DateFiled2"
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
MacOS Sonoma 14.4.1 (iMac-Intel) : AOO 4.1.15 , LibreOffice 7.6.5.2, Adoptium-temurinJDK_1.8.0_402 -
Windows 10 64 bits :
AOO 4.1.15, Libreoffice 7.1.8.1 - FireFox, Thunderbird, ORB 1.2.1
Daniel60
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 243
Inscription : 05 mars 2014 07:09

Re: [Calc] Calculer l'age par rapport à une DateField

Message par Daniel60 »

Merci DLE, je l'ajoute à mon tableau et vous tiens informé
Encore merci, c'est tout à fait cela que je recherchais.
J'utilise Open Office version 4.1.1. et le système d'exploitation Windows 7 Professionnel 64 bit
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Calc] Calculer l'age par rapport à une DateField

Message par Piaf »

Bonjour
Pas sur d'avoir tout compris, quel âge dois tu calculer, l'âge en cours ou l'âge à la date d'interpellation ?
Quelle doit être la précision de l'âge ? Un individu né le 31/12/2001 n'aura 18 ans (donc majeur) qu'à la date anniversaire.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Daniel60
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 243
Inscription : 05 mars 2014 07:09

Re: [Calc] Calculer l'age par rapport à un champ date

Message par Daniel60 »

J'ai mis la macro sur le document du travail mais j'ai un message d'erreur.
Erreur.jpg
Nous utilisons LIBRE OFFICE version 5
Et moi j'utilise Open Office. Habituellement, je n'ai jamais de message d'erreur lorsque je mets en place des documents réalisés chez moi avec Open Office.
J'utilise Open Office version 4.1.1. et le système d'exploitation Windows 7 Professionnel 64 bit
Avatar de l’utilisateur
DLE
SuppOOrter
SuppOOrter
Messages : 1477
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: [Calc] Calculer l'age par rapport à un champ date

Message par DLE »

Bonjour,

Pour Libreoffice remplacer

Code : Tout sélectionner

AnneeN = left(oEvent.Source.Date,4)
par

Code : Tout sélectionner

AnneeN = oEvent.Source.data.year
Voir les commentaires de BM92 sur les différence entre les deux suites ici
Cdlt.
MacOS Sonoma 14.4.1 (iMac-Intel) : AOO 4.1.15 , LibreOffice 7.6.5.2, Adoptium-temurinJDK_1.8.0_402 -
Windows 10 64 bits :
AOO 4.1.15, Libreoffice 7.1.8.1 - FireFox, Thunderbird, ORB 1.2.1
Daniel60
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 243
Inscription : 05 mars 2014 07:09

Re: [Calc] Calculer l'age par rapport à un champ date

Message par Daniel60 »

Merci DLE, remplacement effectué mais le code erreur persiste

Voici le tableau que j'utilise
Dernière modification par Daniel60 le 10 mars 2019 17:45, modifié 1 fois.
J'utilise Open Office version 4.1.1. et le système d'exploitation Windows 7 Professionnel 64 bit
Avatar de l’utilisateur
DLE
SuppOOrter
SuppOOrter
Messages : 1477
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: [Calc] Calculer l'age par rapport à un champ date

Message par DLE »

Bonjour,

:oops: j'ai des gros doigts il faut remplacer "Data" par "Date".

Cdlt.
MacOS Sonoma 14.4.1 (iMac-Intel) : AOO 4.1.15 , LibreOffice 7.6.5.2, Adoptium-temurinJDK_1.8.0_402 -
Windows 10 64 bits :
AOO 4.1.15, Libreoffice 7.1.8.1 - FireFox, Thunderbird, ORB 1.2.1
Daniel60
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 243
Inscription : 05 mars 2014 07:09

Re: [Calc] Calculer l'age par rapport à un champ date

Message par Daniel60 »

Je l'ai fait également mais sans résultat remplacer Data par Date

Code : Tout sélectionner

AnneeN = oEvent.Source.data.year

Code : Tout sélectionner

AnneeN = oEvent.Source.date.year
Et la même open office ne l'accepte pas
[img]
Erreur%20Basic.jpg
[/img]
J'utilise Open Office version 4.1.1. et le système d'exploitation Windows 7 Professionnel 64 bit
Avatar de l’utilisateur
DLE
SuppOOrter
SuppOOrter
Messages : 1477
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: [Calc] Calculer l'age par rapport à un champ date

Message par DLE »

Re,

Ce code

Code : Tout sélectionner

AnneeN = oEvent.Source.date.year
ne peut fonctionner qu'avec Libre Office à partir de la version 4.1.1 revoir les commentaires de BM92.
Cdlt.

Correction data=>date
Dernière modification par DLE le 04 mars 2019 10:36, modifié 1 fois.
MacOS Sonoma 14.4.1 (iMac-Intel) : AOO 4.1.15 , LibreOffice 7.6.5.2, Adoptium-temurinJDK_1.8.0_402 -
Windows 10 64 bits :
AOO 4.1.15, Libreoffice 7.1.8.1 - FireFox, Thunderbird, ORB 1.2.1
Daniel60
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 243
Inscription : 05 mars 2014 07:09

Re: [Calc] Calculer l'age par rapport à un champ date

Message par Daniel60 »

Vous me donnez le code origine qui ne fonctionne pas, voir messages précédents.
Si je comprends bien, vous essayez de me donner des solutions Il est donc impossible de le faire sur Libre Officie !
dans ce cas je vais clore le sujet en le précisant
Merci pour vos solutions.
J'utilise Open Office version 4.1.1. et le système d'exploitation Windows 7 Professionnel 64 bit
Avatar de l’utilisateur
DLE
SuppOOrter
SuppOOrter
Messages : 1477
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: [Calc] Calculer l'age par rapport à un champ date

Message par DLE »

Bonjour,

Je n'ai pas de version Libre Office V5 sous le coude, le code fourni fonctionne en version 6.
Ma réponse précédente correspond à votre copie-écran, erreur produite avec AOO 415.

Cdlt.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
MacOS Sonoma 14.4.1 (iMac-Intel) : AOO 4.1.15 , LibreOffice 7.6.5.2, Adoptium-temurinJDK_1.8.0_402 -
Windows 10 64 bits :
AOO 4.1.15, Libreoffice 7.1.8.1 - FireFox, Thunderbird, ORB 1.2.1
Daniel60
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 243
Inscription : 05 mars 2014 07:09

Re: [Calc] Calculer l'age par rapport à un champ date

Message par Daniel60 »

OUI en effet, j'ai sur mon PC Open Office et au travail Libre Office, l'impression écran provient de mon ordinateur pour vous montrez que le dernier code que vous m'avez donné ne fonctionne pas également avec open office.

Apparemment, vous me donnez des réponses sans relire les précident messages postés
Pour résumer le code ne fonctionne pas avec Libre Office

Code : Tout sélectionner

Sub SelectTranche(oEvent)
Dim AnneeN As Long
Dim Tranche As Long
Dim i As Integer
Dim lbxTranche As Object

	AnneeN = left(oEvent.Source.Data,4)
	Tranche = Year(Now) - AnneeN
	Select case Tranche
		case is < 10 
			i = 0
		case is < 13
			i = 1
		case is < 16
			i = 2
		case is < 18
			i = 3
		case else
			i = 4
	End Select
	lbxTranche = theControls(7)
	lbxTranche.SelectItemPos(i,true)
	
End Sub

La modération vous a écrit: Dans votre signature, merci de préciser les configurations et versions utilisées (Domicile et Travail)

J'utilise Open Office version 4.1.1. et le système d'exploitation Windows 7 Professionnel 64 bit
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Calc] Calculer l'age par rapport à un champ date

Message par Piaf »

Bonjour
Daniel60 a écrit :Apparemment, vous me donnez des réponses sans relire les précident messages postés
par deux fois DLE a écrit :revoir les commentaires de BM92.
Qui ne lit pas les messages précédents ?
Daniel60 a écrit :Pour résumer le code ne fonctionne pas avec Libre Office
Pourtant en lisant et en adaptant les conseils donnés par le lien de DLE

Code : Tout sélectionner

Sub SelectTranche(oEvent)
Dim AnneeN As Long
Dim Tranche As Long
Dim i As Integer
Dim lbxTranche As Object
	If isNumeric(oEvent.Source.Date) Then
		AnneeN = left(oEvent.Source.Date,4)
	Else
		AnneeN = oEvent.Source.Date.Year
	End If	
	Tranche = Year(Now) - AnneeN
	Select case Tranche
		case is < 10 
			i = 0
		case is < 13
			i = 1
		case is < 16
			i = 2
		case is < 18
			i = 3
		case else
			i = 4
	End Select
	lbxTranche = theControls(7)
	lbxTranche.SelectItemPos(i,true)
End Sub
Il semblerait que cela fonctionne sur les deux suites.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Daniel60
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 243
Inscription : 05 mars 2014 07:09

Re: [Calc] Calculer l'age par rapport à un champ date

Message par Daniel60 »

Merci à Piaf et DLE pour leurs conseils et leurs solutions
La macro fonctionne parfaitement sur Open Office et Libre Office
La modération vous a écrit: En plus de la configuration domicile, veuillez indiquer dans votre signature la configuration au travail.
Accès direct à votre signature pour la compléter.

J'utilise Open Office version 4.1.1. et le système d'exploitation Windows 7 Professionnel 64 bit