Créer des tranches d'âges à partir de dates de naissance

Bonjour à tous,

Je sèche...

J'ai des dates de naissances

image

Et je souhaite créer 3 tranches d'âges dans une colonne différente:

1 "Inf à 27 ans"

2 "27-50"

3 "Sup à 50 ans"

J'aimerais utiliser la fonction CASE mais je ne vois comment (en évitant décrire toutes les dates à la main) surtout que l'année prochaine cela décalera d'un an.

Can you help me :)

Bonjour

Pour résoudre ton problème un extrait de ton fichier serait bien pratique

Crdlt

Bonjour à tous !

Pour une aide adaptée de la communauté, merci de préciser, dans votre profil, la nature de votre Excel ( 2019 ? 2021 ? 365 ? ...)

---> La langue est une information de faible importance.

bonjour

un essai pour amorcer

cordialement

20zaza.xlsx (11.99 Ko)

Bonjour,
@tulipe_4,
Il manque des tranches d'âge !... 😉
Te souviens-tu de des 50, c'est loin maintenant, déjà sur l'échafaudage, la truelle à la main ?
Cordialement.

Bonjour à tous,

Voici ma version

Microsoft® Excel® pour Microsoft 365 MSO (Version 2501 Build 16.0.18429.20132) 64 bits

Et voici mon fichier :)

Merci encore

Bonjour à tous de nouveau !

Une proposition en B2 :

=CHOISIR(EQUIV(DATEDIF(A2;AUJOURDHUI();"y");{0;27;51});"Inf à 27 ans";"27-50 (inclus)";"Sup à 50 ans")

NOTE : La précision concernant votre produit Excel est à porter dans le profil !

Bonjour,
@tulipe_4,
Il manque des tranches d'âge !... 😉
Te souviens-tu de des 50, c'est loin maintenant, déjà sur l'échafaudage, la truelle à la main ?
Cordialement.

ma foi ;en bidouillant l'équiv

pas si ;loin ;;; encore hier jusqu'à 16:00

Bonjour

Un exemple avec code vba

Merci à vous 2 cela fonctionne très bien.

Mais une erreur s'affiche lorsque j'essai de créer un dictionnaire pour appliquer ces tranches d'âge sur une autre feuille du même classeur.

Je voudrais créer le dictionnaire avec les matricules des collaborateurs et ces tranches d'age.

image

Voici mon code vba:

Public Wb_AvancementS As Workbook

Public i As Long
Public ws_Age As Worksheet

Public Ws_LDV As Worksheet

Public Ages As Integer

Public NBligne As Long

Sub Creation_dictionnaire_Age()

Set ws_Age = ActiveWorkbook.Sheets("base du personnel février")

ws_Age.Activate

Set OdictTranchesAge = New Scripting.Dictionary

NBligne = Cells(1, 1).CurrentRegion.Rows.Count

For i = 2 To NBligne

OdictTranchesAge.Add Cells(i, 1).Value, Cells(i, 7).Value


Next i

End Sub
Sub utilisation_dictionnaire_Age()

Set ws_LDV = ActiveWorkbook.Sheets("LDV")

Ws_LDV.Activate

NBligne = Cells(1, 1).CurrentRegion.Rows.Count

For i = 2 To NBligne

Cells(i, 84).Value = OdictTranchesAge(Cells(i, 11))


Next i

Set OdictTranchesAge = Nothing

End Sub

D'où peut venir cette erreur?

Bonjour à tous,

Pourquoi ne pas utiliser l'une des formules, ça me semble plus simple.

Pour votre code, il en manque une partie, en l'occurrence cruciale, la déclaration de votre variable OdictTranchesAge. Je suppose qu'il s'agit d'un Dictionary au vu de l'erreur.

Comme indiqué par le code d'erreur, un dictionnaire ne travaille qu'avec des clés uniques. C'est comme un vrai dictionnaire, imaginez si vous aviez les définitions d'un mot éparpillées sur plusieurs pages… Non elles sont toutes regroupées en un bloc unique.

A mon avis l'erreur se lève ici :

OdictTranchesAge.Add Cells(i, 1).Value, Cells(i, 7).Value

Là, votre code essaie de rajouter des définitions à une clé qui existe déjà. Ce n'est pas possible.

Le dictionnaire n'est pas adapté à votre problème, regardez le code de @Joco si vous voulez une base VBA.

Oui, j'ai bien défini le dictionnaire, j'ai oublié de vous le mettre.

C'est bien le code vba de Joco que j'ai utilisé et qui marche très bien.

Mon erreur se situe à l'étape d'après effectivement sur cette ligne

OdictTranchesAge.Add Cells(i, 1).Value, Cells(i, 7).Value

Cela peut venir du fait qu'il y a des matricules en double?

Merci beaucoup pour votre aide, c'est la dernière étape de ma macro.

Sur le fichier joint, feuille "base" il n'y a pas de doublons en colonne A. sur la feuille LDV il y en a (beaucoup).

Pour les macros, je me permets d'insister mais une solution formule/PowerQuery vous serait beaucoup plus adaptée selon moi.

Bonne fin de journée.

Bonjour,

un peu après la bataille; le recherchex accompli des miracles sur 365

Rechercher des sujets similaires à "creer tranches ages partir dates naissance"