date

J

jbat

Guest
bonjour à tous,

j'ai un problème que je vais résumer ainsi:

j'ai un chiffre qui peut être sous la forme 201.77.112.417 donc string ou sous la forme 201177112417 donc nombre.

avec ce chiffre je peux retrouver une date de naissance en effet, le 77 correspond à l'année de naissance et le 112 c'est le mois suivit du jour de naissance.

je suis en train de faire une fonction qui me sort cette date de naissance mais j'ai quelques petits soucis quant à concatener le tout sous forme de date jj.mm.aaaa.
voilà donc si queqlu'un a une astuce...
merci et bon week-end à tous
 
J

jp

Guest
Salut jbat,

Cela ressemble à un numéro Sécu.... ou je ne m'y connais pas...

Précisions stp

Si c'est un n° Sécu. tu ne peux avoir le jour
2.01.77.112.417. et il en manque deux
2 = sexe féminin
01 le mois
77 l'année
112 la commune
et 417 le n° d'ordre de la naissance si je ne me trompe...

Précisions stp

quand à Concatener, après c'est simple

à suivre

jp
 
J

jbat

Guest
il s'agit bien d'un num de sécu mais suisse et le 77 correspond à l'année de naissance quant au 112 il est détaillé comme cela:
1 veut dire que c'est un homme et le 12 veut dire qu'il est né le 12ième jour de l'année donc le 12 janvier 77

pour une femme le code aurait été 212

voilà voilà...
 
J

Jean-Marie

Guest
Bonjour

C'est confus le 77 correspond à l'année de naissance et le 112 c'est le mois suivit du jour de naissance et dans ton message suivant 1 veut dire que c'est un homme et le 12 veut dire qu'il est né le 12ième jour de l'année donc le 12 janvier 77, pour une femme le code aurait été 212

Jbat, tu dix que le 12 correspond au numéro du jour de l'année, si je suis le le 1 novembre, cela donne quoi ?

@+Jean-Marie
 
J

jp

Guest
Re jbat,

mon message s'est encore perdu à cause d'un déconnection !!! je recommence :

Je suis pourtant Suisse d'origine mais je ne connaissais pas...
Pour le moment, je n'ai pas eu le temps de regarder pour le mois, car si j'ai bien compris, le jour n'est pas compris dans un mois mais ce serait une valeur comprise entre 1 et 365 ou 366... voir

Pour le reste, ce n'est pas Concatener mais STXT qu'il conviendrait d'employer (il y a sans doute d'autres solutions!!!)

=STXT(A1;9;2) & "-" & STXT(a1;5;2) pour extraire dans le cas présent le jour et l'année mais le problème va résider d'une part dans le fait que le numéro du jour peut avoir 3 chiffres et donc cette solution deviendrait obsolète.
avec A1 le cellule où est portée le numéro
;9 = la position de ce que l'on veut extraire
;2 le nombre de carractère à extraire

Me fournir, pour exemple un numéro de qq qui serait né en novembre en en octobre pour voir..

Pour le moment, j'espère que cela va t'avancer un peu... et bonjour à la Suisse...

jp
 
J

jp

Guest
Bonjour Jean-Marie,


Always late, enfin en ce qui me concerne s'entend,
mais je crois que nous avons compris que l'on ne comprenait pas, c'est pourquoi j'ai aussi demandé un exemple...

@+ plus et bonne journée à vous tous

jp
 
J

jbat

Guest
oui, il est vrai que je me suis un peu précipité dans mes explications sans avoir vraiment contrôlé mes dires, pardon
j'ai une adresse ou tout est expliqué :
http://www.avs-ai.ch/Home-F/Generalites/31810612f.pdf

mais en résumé cela se présente de la manière suivante:
Le numéro d'assuré

01 Le numéro d'assuré est séparé en quatre groupes par des
points. Les trois premiers groupes (8 chiffres) sont désignés sous
le nom de «numéro de base». Le dernier groupe (3 chiffres)
comprend le numéro d'ordre et le chiffre de contrôle.
Exemple: numéro d'assuré 123.45.678.113
– numéro de base
– numéro d'ordre et chiffre de contrôle

1. Le numéro de base (123.45.678.xxx)

02 Le numéro de base comprend trois groupes de chiffres, à savoir
– le groupe du nom,
– le groupe de l'année de naissance,
– le groupe du sexe, du jour et du mois de naissance.


a. Le groupe du nom (123.xx.xxx.xxx)
03 Le groupe de trois chiffres se rapportant au nom est déterminé à
l'aide de la table des 900 groupes alphabétiques de l'annexe 1,
en observant ce qui suit:
04 – Le nom situé entre deux groupes alphabétiques est rattaché
au premier de ceux-ci.
05 – Le nom à particule ou formé de plusieurs mots est généralement
réuni en une seule locution.
06 – Lorsqu'un nom contient une série de voyelles, la ou les voyelles
e ne sont pas prises en considération si elles suivent directement
les voyelles a, o ou u, sauf si ces dernières ne sont
pas en première position dans la série de voyelles. Les voyelles
avec tréma ä, ö et ü sont traitées comme des diphtongues
ae, oe et ue.
Exemples: Aebi = Abi (101)
Guenin = Gunin (422)
Müller (Mueller) = Muller (671)
Rüegg (Rueegg) = Rugg (769)
par contre
Bauer = Bauer (143)
Leuenberger = Leuenberger (596)
07 Lorsque l'on fait précéder officiellement le nom de famille d'un
nom porté auparavant, c'est ce nom-là qui est déterminant pour
le groupe alphabétique.



b. Le groupe de l'année de naissance (xxx.45.xxx.xxx)
08 Le deuxième groupe est composé des deux derniers chiffres de
l'année de naissance de l'assuré.



c. Le groupe du sexe, du jour et du mois de naissance
(xxx.xx.678.xxx)
09 Ce groupe de trois chiffres est formé d'après le calendrier se
trouvant à l'annexe 2; il indique le sexe et la date de naissance
exacte. Le premier chiffre allant de 1 à 4 désigne un homme et
de 5 à 8 une femme. Des zéros aux positions deux et trois
indiquent que la date de naissance exacte de l'assuré n'est pas
connue.




2. Le numéro d'ordre et le chiffre de contrôle (xxx.xx.xxx.113)
a. Le numéro d'ordre (xxx.xx.xxx.11x)
10 Le numéro d'ordre à deux chiffres sert à la numérotation séquentielle
des assurés ayant le même numéro de base. Il ne peut par
conséquent être attribué que par un seul organe, à savoir la
Centrale de compensation de l'AVS.
11 Le second chiffre du numéro d'ordre allant de 1 à 4 désigne un
Suisse et de 5 à 8 un étranger ou un apatride. Les assurés dont
la nationalité n'a pu être déterminée avec certitude sont traités
comme des étrangers.
b. Le chiffre de contrôle (xxx.xx.xxx.xx3)
12 Le chiffre de contrôle est formé par la Centrale de compensation
selon le module 11. Pour ce faire, chaque chiffre du numéro
d'assuré (sans le chiffre de contrôle) est multiplié par un facteur
de pondération déterminé. Les produits sont ensuite additionnés
puis le total divisé par 11. Le reste de la division est soustrait de
11; la différence représente le chiffre de contrôle. S'il n'y a pas
de reste, le chiffre de contrôle est 0 (zéro). En outre le numéro
d'ordre est attribué de façon que le chiffre de contrôle 10
n'apparaisse jamais.
Exemple:
numéro
d'assuré
(sans chiffre
de contrôle) 1 2 3 . 4 5 . 6 7 8 . 1 1
x x x x x x x x x x
facteurs de
pondération 5 4 3 2 7 6 5 4 3 2
= = = = = = = = = =
produits
et total 5 + 8 + 9 + 8 + 35 + 36 + 35 + 32 + 3 + 2 = 173
Chiffre de contrôle: 173 : 11 = 15, reste 8; 11–8 = 3
Le numéro d'assuré complet est ainsi 123.45.678.113
 
J

jbat

Guest
sur excel ça donne ça mais je n'arrve pas à la transcire:

c11=IF(ISNUMBER(VALUE(No_AVS))=FALSE;FALSE;IF(No_AVS-TRUNC(No_AVS)=0;TRUE;FALSE))
'c12=AND(ISNUMBER(VALUE(No_AVS))=FALSE;ISNUMBER(1*MID(No_AVS;4;1))=FALSE;ISNUMBER(1*MID(No_AVS;7;1))=FALSE)
'=IF(OR(C11=TRUE;C12=TRUE)=TRUE;;RETURN("#ERROR IN No_AVS FORMAT!"))
'c14=IF(ISNUMBER(1*MID(No_AVS;4;1))=TRUE;1;2)
'=IF(OR(1*MID(No_AVS;4+2*C14;1)=0;1*MID(No_AVS;4+2*C14;1)=9)=TRUE;RETURN("#ERROR IN No_AVS FORMAT!");)
'c16=DATE(MID(No_AVS;3+C14;2);(MID(No_AVS;4+2*C14;1)-IF(1*MID(No_AVS;4+2*C14;1)<5;1;5))*3+1+TRUNC(MID(No_AVS;5+2*C14;2)/31.5);IF(MOD(MID(No_AVS;5+2*C14;2);31)=0;31;MOD(MID(No_AVS;5+2*C14;2);31)))
'c17=IF(C16>=NOW();1;C16)
'=RETURN(C17)'

la fonction=value je ne la connais pas sur VBA entre autre...
 
J

jp

Guest
Re à vous tous,

Je regarde ton explication à tête reposée parce que là, j'en apprends encore un peu plus et pas sûr d'avoir tout compris d'ailleurs.
C'est un peu comme en France... Ici on divise par 93 si je me souviens bien et on travaille aussi avec les restes, donc besoin d'Excel car une calculatrice ne peut pas le faire.

J'imprime tout cela et qui sait peut-être une réponse. Pour le moment perplexe.............

Bonne journée à vous tous.

jp
 
J

jp

Guest
Re ami inconnu,

Si j'ai répondu ainsi, il y a des raisons sans rapport avec ce Forum, mais quand tu aides qq ds la detresse, c'est aussi la Chartre de ce Forum...

Je suis toujours sur ton truc mais je plane.........


Bonn"e fin de journée

jp
 

Discussions similaires

Réponses
16
Affichages
666

Statistiques des forums

Discussions
312 165
Messages
2 085 881
Membres
103 009
dernier inscrit
dede972