Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour "l'harmonisation" de
l'affichage des numéros de sécurité sociale (français) à la problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS. Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67 789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car parfois il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui après le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de cette
cellule est exploité, soit pour déterminer le sexe et donc les formules de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour "l'harmonisation" de
l'affichage des numéros de sécurité sociale (français) à la problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS. Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67 789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car parfois il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui après le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de cette
cellule est exploité, soit pour déterminer le sexe et donc les formules de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour "l'harmonisation" de
l'affichage des numéros de sécurité sociale (français) à la problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS. Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67 789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car parfois il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui après le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de cette
cellule est exploité, soit pour déterminer le sexe et donc les formules de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour "l'harmonisation" de
l'affichage des numéros de sécurité sociale (français) à la problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS. Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67 789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car parfois il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui après le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de cette
cellule est exploité, soit pour déterminer le sexe et donc les formules de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour "l'harmonisation" de
l'affichage des numéros de sécurité sociale (français) à la problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS. Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67 789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car parfois il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui après le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de cette
cellule est exploité, soit pour déterminer le sexe et donc les formules de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour "l'harmonisation" de
l'affichage des numéros de sécurité sociale (français) à la problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS. Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67 789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car parfois il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui après le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de cette
cellule est exploité, soit pour déterminer le sexe et donc les formules de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
J'ai pas essayé .....
menu Format / Spécial et Numéro Sécurité Sociale ?
"Antoine76" a écrit dans le message de news:Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour "l'harmonisation"
de
l'affichage des numéros de sécurité sociale (français) à la
problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS. Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67 789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car parfois
il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui après
le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de
cette
cellule est exploité, soit pour déterminer le sexe et donc les formules
de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
J'ai pas essayé .....
menu Format / Spécial et Numéro Sécurité Sociale ?
"Antoine76" <awerel@mageos.com> a écrit dans le message de news:
uZCwbJeDGHA.2924@tk2msftngp13.phx.gbl...
Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour "l'harmonisation"
de
l'affichage des numéros de sécurité sociale (français) à la
problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS. Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67 789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car parfois
il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui après
le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de
cette
cellule est exploité, soit pour déterminer le sexe et donc les formules
de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
J'ai pas essayé .....
menu Format / Spécial et Numéro Sécurité Sociale ?
"Antoine76" a écrit dans le message de news:Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour "l'harmonisation"
de
l'affichage des numéros de sécurité sociale (français) à la
problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS. Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67 789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car parfois
il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui après
le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de
cette
cellule est exploité, soit pour déterminer le sexe et donc les formules
de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
Bonsour® Pounet95 avec ferveur ;o))) vous nous disiez :J'ai pas essayé .....
menu Format / Spécial et Numéro Sécurité Sociale ?
en effet mais cela ne s'applique qu'a des n°SS corrects et complets ;o)))
;o))) alors allons-y d'une petite fonction personnalisée
avec en bonus quand c'est possible
recalcul de clé
indication mois incorrect
Utilisation :
A1 B1 =N_SS(A1)
1-5702- 95/491002 1 57 02 95 491 002 18
2 57 02 95 491 002 2 57 02 95 491 002 18
1570295491 1 57 02 95 491 ??? xx
2572295491032/46 2 57 22 95 491 032 17 !! mois incorrect !!
Function N_SS(target)
' --- ne s'applique qu'aux N°SS Français
' --- Usage VBA possible : Cells(x,y)=N_SS(Cells(w,z))
numeros = "0123456789"
SS = ""
For i = 1 To Len(target)
If InStr(numeros, Mid(target, i, 1)) <> 0 Then
SS = SS & Mid(target, i, 1)
End If
Next
' --- re-calcul de la clé
If Len(SS) >= 13 Then
NumSS = CDbl(Left(SS, 13))
cle = 97 - (NumSS - 97 * Int(NumSS / 97))
Else
cle = "xx"
End If
' --- formatage résultat avec caractère insecable (Chr(160)
N_SS = ""
' --- pour etre sûr de traiter 13 caractères
SS = SS & " "
For i = 1 To 13
n = Mid(SS, i, 1)
N_SS = N_SS & IIf(InStr(numeros, n) <> 0, n, "?")
Select Case i
Case 1, 3, 5, 7, 10
N_SS = N_SS & Chr(160)
End Select
Next
'--- ajout de la clé avec caractère insécable chr(160)
N_SS = N_SS & Chr(160) & Format(cle, "00")
'--- controle du N° de mois
If CInt(Mid(N_SS, 6, 2)) > 12 Then N_SS = N_SS & " !! mois incorrect !!"
End Function:
"Antoine76" a écrit dans le message de news:Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour "l'harmonisation"
de
l'affichage des numéros de sécurité sociale (français) à la
problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS. Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67 789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car parfois
il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui après
le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de
cette
cellule est exploité, soit pour déterminer le sexe et donc les formules
de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Bonsour® Pounet95 avec ferveur ;o))) vous nous disiez :
J'ai pas essayé .....
menu Format / Spécial et Numéro Sécurité Sociale ?
en effet mais cela ne s'applique qu'a des n°SS corrects et complets ;o)))
;o))) alors allons-y d'une petite fonction personnalisée
avec en bonus quand c'est possible
recalcul de clé
indication mois incorrect
Utilisation :
A1 B1 =N_SS(A1)
1-5702- 95/491002 1 57 02 95 491 002 18
2 57 02 95 491 002 2 57 02 95 491 002 18
1570295491 1 57 02 95 491 ??? xx
2572295491032/46 2 57 22 95 491 032 17 !! mois incorrect !!
Function N_SS(target)
' --- ne s'applique qu'aux N°SS Français
' --- Usage VBA possible : Cells(x,y)=N_SS(Cells(w,z))
numeros = "0123456789"
SS = ""
For i = 1 To Len(target)
If InStr(numeros, Mid(target, i, 1)) <> 0 Then
SS = SS & Mid(target, i, 1)
End If
Next
' --- re-calcul de la clé
If Len(SS) >= 13 Then
NumSS = CDbl(Left(SS, 13))
cle = 97 - (NumSS - 97 * Int(NumSS / 97))
Else
cle = "xx"
End If
' --- formatage résultat avec caractère insecable (Chr(160)
N_SS = ""
' --- pour etre sûr de traiter 13 caractères
SS = SS & " "
For i = 1 To 13
n = Mid(SS, i, 1)
N_SS = N_SS & IIf(InStr(numeros, n) <> 0, n, "?")
Select Case i
Case 1, 3, 5, 7, 10
N_SS = N_SS & Chr(160)
End Select
Next
'--- ajout de la clé avec caractère insécable chr(160)
N_SS = N_SS & Chr(160) & Format(cle, "00")
'--- controle du N° de mois
If CInt(Mid(N_SS, 6, 2)) > 12 Then N_SS = N_SS & " !! mois incorrect !!"
End Function:
"Antoine76" <awerel@mageos.com> a écrit dans le message de news:
uZCwbJeDGHA.2924@tk2msftngp13.phx.gbl...
Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour "l'harmonisation"
de
l'affichage des numéros de sécurité sociale (français) à la
problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS. Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67 789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car parfois
il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui après
le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de
cette
cellule est exploité, soit pour déterminer le sexe et donc les formules
de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Bonsour® Pounet95 avec ferveur ;o))) vous nous disiez :J'ai pas essayé .....
menu Format / Spécial et Numéro Sécurité Sociale ?
en effet mais cela ne s'applique qu'a des n°SS corrects et complets ;o)))
;o))) alors allons-y d'une petite fonction personnalisée
avec en bonus quand c'est possible
recalcul de clé
indication mois incorrect
Utilisation :
A1 B1 =N_SS(A1)
1-5702- 95/491002 1 57 02 95 491 002 18
2 57 02 95 491 002 2 57 02 95 491 002 18
1570295491 1 57 02 95 491 ??? xx
2572295491032/46 2 57 22 95 491 032 17 !! mois incorrect !!
Function N_SS(target)
' --- ne s'applique qu'aux N°SS Français
' --- Usage VBA possible : Cells(x,y)=N_SS(Cells(w,z))
numeros = "0123456789"
SS = ""
For i = 1 To Len(target)
If InStr(numeros, Mid(target, i, 1)) <> 0 Then
SS = SS & Mid(target, i, 1)
End If
Next
' --- re-calcul de la clé
If Len(SS) >= 13 Then
NumSS = CDbl(Left(SS, 13))
cle = 97 - (NumSS - 97 * Int(NumSS / 97))
Else
cle = "xx"
End If
' --- formatage résultat avec caractère insecable (Chr(160)
N_SS = ""
' --- pour etre sûr de traiter 13 caractères
SS = SS & " "
For i = 1 To 13
n = Mid(SS, i, 1)
N_SS = N_SS & IIf(InStr(numeros, n) <> 0, n, "?")
Select Case i
Case 1, 3, 5, 7, 10
N_SS = N_SS & Chr(160)
End Select
Next
'--- ajout de la clé avec caractère insécable chr(160)
N_SS = N_SS & Chr(160) & Format(cle, "00")
'--- controle du N° de mois
If CInt(Mid(N_SS, 6, 2)) > 12 Then N_SS = N_SS & " !! mois incorrect !!"
End Function:
"Antoine76" a écrit dans le message de news:Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour "l'harmonisation"
de
l'affichage des numéros de sécurité sociale (français) à la
problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS. Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67 789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car parfois
il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui après
le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de
cette
cellule est exploité, soit pour déterminer le sexe et donc les formules
de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
<< L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les même problèmes potentiels... >>
' --- Usage VBA possible : Cells(x,y)=N_SS(Cells(w,z))
<< L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les même problèmes potentiels... >>
' --- Usage VBA possible : Cells(x,y)=N_SS(Cells(w,z))
<< L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les même problèmes potentiels... >>
' --- Usage VBA possible : Cells(x,y)=N_SS(Cells(w,z))
Salut Modeste,
OK, mais j'ai cru comprendre que
<< L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les même problèmes potentiels... >>
ALors, amha, en partant de ce format et en l'incorporant dans une MEFC, il
devrait avoir moyen de faire
avec quelques tests sur le nbre de caractères par exemple.
Qu'en penses-tu ?
Bonne journée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Modeste" a écrit dans le message de news:Bonsour® Pounet95 avec ferveur ;o))) vous nous disiez :J'ai pas essayé .....
menu Format / Spécial et Numéro Sécurité Sociale ?
en effet mais cela ne s'applique qu'a des n°SS corrects et complets
;o)))
;o))) alors allons-y d'une petite fonction personnalisée
avec en bonus quand c'est possible
recalcul de clé
indication mois incorrect
Utilisation :
A1 B1 =N_SS(A1)
1-5702- 95/491002 1 57 02 95 491 002 18
2 57 02 95 491 002 2 57 02 95 491 002 18
1570295491 1 57 02 95 491 ??? xx
2572295491032/46 2 57 22 95 491 032 17 !! mois incorrect !!
Function N_SS(target)
' --- ne s'applique qu'aux N°SS Français
' --- Usage VBA possible : Cells(x,y)=N_SS(Cells(w,z))
numeros = "0123456789"
SS = ""
For i = 1 To Len(target)
If InStr(numeros, Mid(target, i, 1)) <> 0 Then
SS = SS & Mid(target, i, 1)
End If
Next
' --- re-calcul de la clé
If Len(SS) >= 13 Then
NumSS = CDbl(Left(SS, 13))
cle = 97 - (NumSS - 97 * Int(NumSS / 97))
Else
cle = "xx"
End If
' --- formatage résultat avec caractère insecable (Chr(160)
N_SS = ""
' --- pour etre sûr de traiter 13 caractères
SS = SS & " "
For i = 1 To 13
n = Mid(SS, i, 1)
N_SS = N_SS & IIf(InStr(numeros, n) <> 0, n, "?")
Select Case i
Case 1, 3, 5, 7, 10
N_SS = N_SS & Chr(160)
End Select
Next
'--- ajout de la clé avec caractère insécable chr(160)
N_SS = N_SS & Chr(160) & Format(cle, "00")
'--- controle du N° de mois
If CInt(Mid(N_SS, 6, 2)) > 12 Then N_SS = N_SS & " !! mois incorrect !!"
End Function:
"Antoine76" a écrit dans le message de news:Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour
"l'harmonisation"
de
l'affichage des numéros de sécurité sociale (français) à la
problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS.
Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67
789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient
fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car
parfois
il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de
ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui
après
le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de
cette
cellule est exploité, soit pour déterminer le sexe et donc les
formules
de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Salut Modeste,
OK, mais j'ai cru comprendre que
<< L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les même problèmes potentiels... >>
ALors, amha, en partant de ce format et en l'incorporant dans une MEFC, il
devrait avoir moyen de faire
avec quelques tests sur le nbre de caractères par exemple.
Qu'en penses-tu ?
Bonne journée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Modeste" <nomail@nomail.net> a écrit dans le message de news:
eP54RLfDGHA.1288@TK2MSFTNGP09.phx.gbl...
Bonsour® Pounet95 avec ferveur ;o))) vous nous disiez :
J'ai pas essayé .....
menu Format / Spécial et Numéro Sécurité Sociale ?
en effet mais cela ne s'applique qu'a des n°SS corrects et complets
;o)))
;o))) alors allons-y d'une petite fonction personnalisée
avec en bonus quand c'est possible
recalcul de clé
indication mois incorrect
Utilisation :
A1 B1 =N_SS(A1)
1-5702- 95/491002 1 57 02 95 491 002 18
2 57 02 95 491 002 2 57 02 95 491 002 18
1570295491 1 57 02 95 491 ??? xx
2572295491032/46 2 57 22 95 491 032 17 !! mois incorrect !!
Function N_SS(target)
' --- ne s'applique qu'aux N°SS Français
' --- Usage VBA possible : Cells(x,y)=N_SS(Cells(w,z))
numeros = "0123456789"
SS = ""
For i = 1 To Len(target)
If InStr(numeros, Mid(target, i, 1)) <> 0 Then
SS = SS & Mid(target, i, 1)
End If
Next
' --- re-calcul de la clé
If Len(SS) >= 13 Then
NumSS = CDbl(Left(SS, 13))
cle = 97 - (NumSS - 97 * Int(NumSS / 97))
Else
cle = "xx"
End If
' --- formatage résultat avec caractère insecable (Chr(160)
N_SS = ""
' --- pour etre sûr de traiter 13 caractères
SS = SS & " "
For i = 1 To 13
n = Mid(SS, i, 1)
N_SS = N_SS & IIf(InStr(numeros, n) <> 0, n, "?")
Select Case i
Case 1, 3, 5, 7, 10
N_SS = N_SS & Chr(160)
End Select
Next
'--- ajout de la clé avec caractère insécable chr(160)
N_SS = N_SS & Chr(160) & Format(cle, "00")
'--- controle du N° de mois
If CInt(Mid(N_SS, 6, 2)) > 12 Then N_SS = N_SS & " !! mois incorrect !!"
End Function:
"Antoine76" <awerel@mageos.com> a écrit dans le message de news:
uZCwbJeDGHA.2924@tk2msftngp13.phx.gbl...
Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour
"l'harmonisation"
de
l'affichage des numéros de sécurité sociale (français) à la
problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS.
Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67
789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient
fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car
parfois
il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de
ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui
après
le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de
cette
cellule est exploité, soit pour déterminer le sexe et donc les
formules
de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Salut Modeste,
OK, mais j'ai cru comprendre que
<< L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les même problèmes potentiels... >>
ALors, amha, en partant de ce format et en l'incorporant dans une MEFC, il
devrait avoir moyen de faire
avec quelques tests sur le nbre de caractères par exemple.
Qu'en penses-tu ?
Bonne journée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Modeste" a écrit dans le message de news:Bonsour® Pounet95 avec ferveur ;o))) vous nous disiez :J'ai pas essayé .....
menu Format / Spécial et Numéro Sécurité Sociale ?
en effet mais cela ne s'applique qu'a des n°SS corrects et complets
;o)))
;o))) alors allons-y d'une petite fonction personnalisée
avec en bonus quand c'est possible
recalcul de clé
indication mois incorrect
Utilisation :
A1 B1 =N_SS(A1)
1-5702- 95/491002 1 57 02 95 491 002 18
2 57 02 95 491 002 2 57 02 95 491 002 18
1570295491 1 57 02 95 491 ??? xx
2572295491032/46 2 57 22 95 491 032 17 !! mois incorrect !!
Function N_SS(target)
' --- ne s'applique qu'aux N°SS Français
' --- Usage VBA possible : Cells(x,y)=N_SS(Cells(w,z))
numeros = "0123456789"
SS = ""
For i = 1 To Len(target)
If InStr(numeros, Mid(target, i, 1)) <> 0 Then
SS = SS & Mid(target, i, 1)
End If
Next
' --- re-calcul de la clé
If Len(SS) >= 13 Then
NumSS = CDbl(Left(SS, 13))
cle = 97 - (NumSS - 97 * Int(NumSS / 97))
Else
cle = "xx"
End If
' --- formatage résultat avec caractère insecable (Chr(160)
N_SS = ""
' --- pour etre sûr de traiter 13 caractères
SS = SS & " "
For i = 1 To 13
n = Mid(SS, i, 1)
N_SS = N_SS & IIf(InStr(numeros, n) <> 0, n, "?")
Select Case i
Case 1, 3, 5, 7, 10
N_SS = N_SS & Chr(160)
End Select
Next
'--- ajout de la clé avec caractère insécable chr(160)
N_SS = N_SS & Chr(160) & Format(cle, "00")
'--- controle du N° de mois
If CInt(Mid(N_SS, 6, 2)) > 12 Then N_SS = N_SS & " !! mois incorrect !!"
End Function:
"Antoine76" a écrit dans le message de news:Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour
"l'harmonisation"
de
l'affichage des numéros de sécurité sociale (français) à la
problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS.
Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67
789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient
fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car
parfois
il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de
ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui
après
le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de
cette
cellule est exploité, soit pour déterminer le sexe et donc les
formules
de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Salut Modeste,
OK, mais j'ai cru comprendre que
<< L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les même problèmes potentiels... >>
ALors, amha, en partant de ce format et en l'incorporant dans une MEFC, il
devrait avoir moyen de faire
avec quelques tests sur le nbre de caractères par exemple.
Qu'en penses-tu ?
Bonne journée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Modeste" a écrit dans le message de news:Bonsour® Pounet95 avec ferveur ;o))) vous nous disiez :J'ai pas essayé .....
menu Format / Spécial et Numéro Sécurité Sociale ?
en effet mais cela ne s'applique qu'a des n°SS corrects et complets
;o)))
;o))) alors allons-y d'une petite fonction personnalisée
avec en bonus quand c'est possible
recalcul de clé
indication mois incorrect
Utilisation :
A1 B1 =N_SS(A1)
1-5702- 95/491002 1 57 02 95 491 002 18
2 57 02 95 491 002 2 57 02 95 491 002 18
1570295491 1 57 02 95 491 ??? xx
2572295491032/46 2 57 22 95 491 032 17 !! mois incorrect !!
Function N_SS(target)
' --- ne s'applique qu'aux N°SS Français
' --- Usage VBA possible : Cells(x,y)=N_SS(Cells(w,z))
numeros = "0123456789"
SS = ""
For i = 1 To Len(target)
If InStr(numeros, Mid(target, i, 1)) <> 0 Then
SS = SS & Mid(target, i, 1)
End If
Next
' --- re-calcul de la clé
If Len(SS) >= 13 Then
NumSS = CDbl(Left(SS, 13))
cle = 97 - (NumSS - 97 * Int(NumSS / 97))
Else
cle = "xx"
End If
' --- formatage résultat avec caractère insecable (Chr(160)
N_SS = ""
' --- pour etre sûr de traiter 13 caractères
SS = SS & " "
For i = 1 To 13
n = Mid(SS, i, 1)
N_SS = N_SS & IIf(InStr(numeros, n) <> 0, n, "?")
Select Case i
Case 1, 3, 5, 7, 10
N_SS = N_SS & Chr(160)
End Select
Next
'--- ajout de la clé avec caractère insécable chr(160)
N_SS = N_SS & Chr(160) & Format(cle, "00")
'--- controle du N° de mois
If CInt(Mid(N_SS, 6, 2)) > 12 Then N_SS = N_SS & " !! mois incorrect !!"
End Function:
"Antoine76" a écrit dans le message de news:Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour
"l'harmonisation"
de
l'affichage des numéros de sécurité sociale (français) à la
problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS.
Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67
789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient
fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car
parfois
il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de
ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui
après
le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de
cette
cellule est exploité, soit pour déterminer le sexe et donc les
formules
de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Salut Modeste,
OK, mais j'ai cru comprendre que
<< L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les même problèmes potentiels... >>
ALors, amha, en partant de ce format et en l'incorporant dans une MEFC, il
devrait avoir moyen de faire
avec quelques tests sur le nbre de caractères par exemple.
Qu'en penses-tu ?
Bonne journée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Modeste" <nomail@nomail.net> a écrit dans le message de news:
eP54RLfDGHA.1288@TK2MSFTNGP09.phx.gbl...
Bonsour® Pounet95 avec ferveur ;o))) vous nous disiez :
J'ai pas essayé .....
menu Format / Spécial et Numéro Sécurité Sociale ?
en effet mais cela ne s'applique qu'a des n°SS corrects et complets
;o)))
;o))) alors allons-y d'une petite fonction personnalisée
avec en bonus quand c'est possible
recalcul de clé
indication mois incorrect
Utilisation :
A1 B1 =N_SS(A1)
1-5702- 95/491002 1 57 02 95 491 002 18
2 57 02 95 491 002 2 57 02 95 491 002 18
1570295491 1 57 02 95 491 ??? xx
2572295491032/46 2 57 22 95 491 032 17 !! mois incorrect !!
Function N_SS(target)
' --- ne s'applique qu'aux N°SS Français
' --- Usage VBA possible : Cells(x,y)=N_SS(Cells(w,z))
numeros = "0123456789"
SS = ""
For i = 1 To Len(target)
If InStr(numeros, Mid(target, i, 1)) <> 0 Then
SS = SS & Mid(target, i, 1)
End If
Next
' --- re-calcul de la clé
If Len(SS) >= 13 Then
NumSS = CDbl(Left(SS, 13))
cle = 97 - (NumSS - 97 * Int(NumSS / 97))
Else
cle = "xx"
End If
' --- formatage résultat avec caractère insecable (Chr(160)
N_SS = ""
' --- pour etre sûr de traiter 13 caractères
SS = SS & " "
For i = 1 To 13
n = Mid(SS, i, 1)
N_SS = N_SS & IIf(InStr(numeros, n) <> 0, n, "?")
Select Case i
Case 1, 3, 5, 7, 10
N_SS = N_SS & Chr(160)
End Select
Next
'--- ajout de la clé avec caractère insécable chr(160)
N_SS = N_SS & Chr(160) & Format(cle, "00")
'--- controle du N° de mois
If CInt(Mid(N_SS, 6, 2)) > 12 Then N_SS = N_SS & " !! mois incorrect !!"
End Function:
"Antoine76" <awerel@mageos.com> a écrit dans le message de news:
uZCwbJeDGHA.2924@tk2msftngp13.phx.gbl...
Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour
"l'harmonisation"
de
l'affichage des numéros de sécurité sociale (français) à la
problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS.
Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67
789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient
fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car
parfois
il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de
ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui
après
le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de
cette
cellule est exploité, soit pour déterminer le sexe et donc les
formules
de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Salut Modeste,
OK, mais j'ai cru comprendre que
<< L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les même problèmes potentiels... >>
ALors, amha, en partant de ce format et en l'incorporant dans une MEFC, il
devrait avoir moyen de faire
avec quelques tests sur le nbre de caractères par exemple.
Qu'en penses-tu ?
Bonne journée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Modeste" a écrit dans le message de news:Bonsour® Pounet95 avec ferveur ;o))) vous nous disiez :J'ai pas essayé .....
menu Format / Spécial et Numéro Sécurité Sociale ?
en effet mais cela ne s'applique qu'a des n°SS corrects et complets
;o)))
;o))) alors allons-y d'une petite fonction personnalisée
avec en bonus quand c'est possible
recalcul de clé
indication mois incorrect
Utilisation :
A1 B1 =N_SS(A1)
1-5702- 95/491002 1 57 02 95 491 002 18
2 57 02 95 491 002 2 57 02 95 491 002 18
1570295491 1 57 02 95 491 ??? xx
2572295491032/46 2 57 22 95 491 032 17 !! mois incorrect !!
Function N_SS(target)
' --- ne s'applique qu'aux N°SS Français
' --- Usage VBA possible : Cells(x,y)=N_SS(Cells(w,z))
numeros = "0123456789"
SS = ""
For i = 1 To Len(target)
If InStr(numeros, Mid(target, i, 1)) <> 0 Then
SS = SS & Mid(target, i, 1)
End If
Next
' --- re-calcul de la clé
If Len(SS) >= 13 Then
NumSS = CDbl(Left(SS, 13))
cle = 97 - (NumSS - 97 * Int(NumSS / 97))
Else
cle = "xx"
End If
' --- formatage résultat avec caractère insecable (Chr(160)
N_SS = ""
' --- pour etre sûr de traiter 13 caractères
SS = SS & " "
For i = 1 To 13
n = Mid(SS, i, 1)
N_SS = N_SS & IIf(InStr(numeros, n) <> 0, n, "?")
Select Case i
Case 1, 3, 5, 7, 10
N_SS = N_SS & Chr(160)
End Select
Next
'--- ajout de la clé avec caractère insécable chr(160)
N_SS = N_SS & Chr(160) & Format(cle, "00")
'--- controle du N° de mois
If CInt(Mid(N_SS, 6, 2)) > 12 Then N_SS = N_SS & " !! mois incorrect !!"
End Function:
"Antoine76" a écrit dans le message de news:Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour
"l'harmonisation"
de
l'affichage des numéros de sécurité sociale (français) à la
problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS.
Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67
789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient
fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car
parfois
il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de
ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui
après
le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de
cette
cellule est exploité, soit pour déterminer le sexe et donc les
formules
de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Petite précision que je voulais donner et qui m'a échappée : il existe
bien
des N° SS qui commencent par autre chose que des 1 ou des 2;
Il y a le 3 par exemple ;
Non ! Non ! Ce n'est pas pour ceux qui sont atteint du syndrome de Turner
(anomalie génétique lors de la fécondation, qui fait que l'individu se
retrouve, pour la 23ème paire de chromosomes, avec un chromosome X tout
seul, et pas de 2ème X ou Y, c'est à dire ni homme (au sens génétique
c'est
à dire un X ET un Y) et ni femme (c'est à dire une PAIRE de chromosome X);
ils ont une morphologie plutôt féminine, avec un développement mammaire
plutôt féminin, une allure un peu enrobée et une apparence de
vieillissement
accélérée... Fin de l'écart !)) Le 3, qui n'est pas rare, est peut-être
pour
ceux qui ont un statut vis à vis de l'INSEE qui est stable et donc
pérenne(??).
Il y a aussi des 7, moins fréquents pour ...? et aussi des 8 encore plus
rares (réfugiés politiques en instance d'asile ???)
Le seul problème(informatiquement parlant bien sûr !) avec les 3, les 7,
les
8, et éventuellement les autres, c'est que l'on ne peut pas "en
déterminer"
le sexe !... pour exploitation honorable (était-il nécessaire de préciser
?)
Antoine
"Pounet95" a écrit dans le message de news:
#v6t$Salut Modeste,
OK, mais j'ai cru comprendre que
<< L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,car des N° SS continuerons à être rentrés dans le fichier, et avec
toujoursles même problèmes potentiels... >>
ALors, amha, en partant de ce format et en l'incorporant dans une MEFC,
il
devrait avoir moyen de faire
avec quelques tests sur le nbre de caractères par exemple.
Qu'en penses-tu ?
Bonne journée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Modeste" a écrit dans le message de news:Bonsour® Pounet95 avec ferveur ;o))) vous nous disiez :J'ai pas essayé .....
menu Format / Spécial et Numéro Sécurité Sociale ?
en effet mais cela ne s'applique qu'a des n°SS corrects et complets
;o)))
;o))) alors allons-y d'une petite fonction personnalisée
avec en bonus quand c'est possible
recalcul de clé
indication mois incorrect
Utilisation :
A1 B1 =N_SS(A1)
1-5702- 95/491002 1 57 02 95 491 002 18
2 57 02 95 491 002 2 57 02 95 491 002 18
1570295491 1 57 02 95 491 ??? xx
2572295491032/46 2 57 22 95 491 032 17 !! mois incorrect !!
Function N_SS(target)
' --- ne s'applique qu'aux N°SS Français
' --- Usage VBA possible : Cells(x,y)=N_SS(Cells(w,z))
numeros = "0123456789"
SS = ""
For i = 1 To Len(target)
If InStr(numeros, Mid(target, i, 1)) <> 0 Then
SS = SS & Mid(target, i, 1)
End If
Next
' --- re-calcul de la clé
If Len(SS) >= 13 Then
NumSS = CDbl(Left(SS, 13))
cle = 97 - (NumSS - 97 * Int(NumSS / 97))
Else
cle = "xx"
End If
' --- formatage résultat avec caractère insecable (Chr(160)
N_SS = ""
' --- pour etre sûr de traiter 13 caractères
SS = SS & " "
For i = 1 To 13
n = Mid(SS, i, 1)
N_SS = N_SS & IIf(InStr(numeros, n) <> 0, n, "?")
Select Case i
Case 1, 3, 5, 7, 10
N_SS = N_SS & Chr(160)
End Select
Next
'--- ajout de la clé avec caractère insécable chr(160)
N_SS = N_SS & Chr(160) & Format(cle, "00")
'--- controle du N° de mois
If CInt(Mid(N_SS, 6, 2)) > 12 Then N_SS = N_SS & " !! mois incorrect
!!"
End Function:
"Antoine76" a écrit dans le message de news:Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour
"l'harmonisation"de
l'affichage des numéros de sécurité sociale (français) à la
problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS.
Leproblème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67
789...),- et avec un "/" lorsque les 2 chiffres de la clé étaient
fournis(sinonsans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car
parfoisil
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de
cescellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui
aprèsle
13ème chiffre insère un / Je précise, par ailleurs que le contenu de
cette
cellule est exploité, soit pour déterminer le sexe et donc les
formulesde
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec
toujoursles
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Petite précision que je voulais donner et qui m'a échappée : il existe
bien
des N° SS qui commencent par autre chose que des 1 ou des 2;
Il y a le 3 par exemple ;
Non ! Non ! Ce n'est pas pour ceux qui sont atteint du syndrome de Turner
(anomalie génétique lors de la fécondation, qui fait que l'individu se
retrouve, pour la 23ème paire de chromosomes, avec un chromosome X tout
seul, et pas de 2ème X ou Y, c'est à dire ni homme (au sens génétique
c'est
à dire un X ET un Y) et ni femme (c'est à dire une PAIRE de chromosome X);
ils ont une morphologie plutôt féminine, avec un développement mammaire
plutôt féminin, une allure un peu enrobée et une apparence de
vieillissement
accélérée... Fin de l'écart !)) Le 3, qui n'est pas rare, est peut-être
pour
ceux qui ont un statut vis à vis de l'INSEE qui est stable et donc
pérenne(??).
Il y a aussi des 7, moins fréquents pour ...? et aussi des 8 encore plus
rares (réfugiés politiques en instance d'asile ???)
Le seul problème(informatiquement parlant bien sûr !) avec les 3, les 7,
les
8, et éventuellement les autres, c'est que l'on ne peut pas "en
déterminer"
le sexe !... pour exploitation honorable (était-il nécessaire de préciser
?)
Antoine
"Pounet95" <pasdepub@oneado.fr> a écrit dans le message de news:
#v6t$OfDGHA.3828@TK2MSFTNGP14.phx.gbl...
Salut Modeste,
OK, mais j'ai cru comprendre que
<< L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les même problèmes potentiels... >>
ALors, amha, en partant de ce format et en l'incorporant dans une MEFC,
il
devrait avoir moyen de faire
avec quelques tests sur le nbre de caractères par exemple.
Qu'en penses-tu ?
Bonne journée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Modeste" <nomail@nomail.net> a écrit dans le message de news:
eP54RLfDGHA.1288@TK2MSFTNGP09.phx.gbl...
Bonsour® Pounet95 avec ferveur ;o))) vous nous disiez :
J'ai pas essayé .....
menu Format / Spécial et Numéro Sécurité Sociale ?
en effet mais cela ne s'applique qu'a des n°SS corrects et complets
;o)))
;o))) alors allons-y d'une petite fonction personnalisée
avec en bonus quand c'est possible
recalcul de clé
indication mois incorrect
Utilisation :
A1 B1 =N_SS(A1)
1-5702- 95/491002 1 57 02 95 491 002 18
2 57 02 95 491 002 2 57 02 95 491 002 18
1570295491 1 57 02 95 491 ??? xx
2572295491032/46 2 57 22 95 491 032 17 !! mois incorrect !!
Function N_SS(target)
' --- ne s'applique qu'aux N°SS Français
' --- Usage VBA possible : Cells(x,y)=N_SS(Cells(w,z))
numeros = "0123456789"
SS = ""
For i = 1 To Len(target)
If InStr(numeros, Mid(target, i, 1)) <> 0 Then
SS = SS & Mid(target, i, 1)
End If
Next
' --- re-calcul de la clé
If Len(SS) >= 13 Then
NumSS = CDbl(Left(SS, 13))
cle = 97 - (NumSS - 97 * Int(NumSS / 97))
Else
cle = "xx"
End If
' --- formatage résultat avec caractère insecable (Chr(160)
N_SS = ""
' --- pour etre sûr de traiter 13 caractères
SS = SS & " "
For i = 1 To 13
n = Mid(SS, i, 1)
N_SS = N_SS & IIf(InStr(numeros, n) <> 0, n, "?")
Select Case i
Case 1, 3, 5, 7, 10
N_SS = N_SS & Chr(160)
End Select
Next
'--- ajout de la clé avec caractère insécable chr(160)
N_SS = N_SS & Chr(160) & Format(cle, "00")
'--- controle du N° de mois
If CInt(Mid(N_SS, 6, 2)) > 12 Then N_SS = N_SS & " !! mois incorrect
!!"
End Function:
"Antoine76" <awerel@mageos.com> a écrit dans le message de news:
uZCwbJeDGHA.2924@tk2msftngp13.phx.gbl...
Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour
"l'harmonisation"
de
l'affichage des numéros de sécurité sociale (français) à la
problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS.
Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67
789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient
fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car
parfois
il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de
ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui
après
le
13ème chiffre insère un / Je précise, par ailleurs que le contenu de
cette
cellule est exploité, soit pour déterminer le sexe et donc les
formules
de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Petite précision que je voulais donner et qui m'a échappée : il existe
bien
des N° SS qui commencent par autre chose que des 1 ou des 2;
Il y a le 3 par exemple ;
Non ! Non ! Ce n'est pas pour ceux qui sont atteint du syndrome de Turner
(anomalie génétique lors de la fécondation, qui fait que l'individu se
retrouve, pour la 23ème paire de chromosomes, avec un chromosome X tout
seul, et pas de 2ème X ou Y, c'est à dire ni homme (au sens génétique
c'est
à dire un X ET un Y) et ni femme (c'est à dire une PAIRE de chromosome X);
ils ont une morphologie plutôt féminine, avec un développement mammaire
plutôt féminin, une allure un peu enrobée et une apparence de
vieillissement
accélérée... Fin de l'écart !)) Le 3, qui n'est pas rare, est peut-être
pour
ceux qui ont un statut vis à vis de l'INSEE qui est stable et donc
pérenne(??).
Il y a aussi des 7, moins fréquents pour ...? et aussi des 8 encore plus
rares (réfugiés politiques en instance d'asile ???)
Le seul problème(informatiquement parlant bien sûr !) avec les 3, les 7,
les
8, et éventuellement les autres, c'est que l'on ne peut pas "en
déterminer"
le sexe !... pour exploitation honorable (était-il nécessaire de préciser
?)
Antoine
"Pounet95" a écrit dans le message de news:
#v6t$Salut Modeste,
OK, mais j'ai cru comprendre que
<< L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,car des N° SS continuerons à être rentrés dans le fichier, et avec
toujoursles même problèmes potentiels... >>
ALors, amha, en partant de ce format et en l'incorporant dans une MEFC,
il
devrait avoir moyen de faire
avec quelques tests sur le nbre de caractères par exemple.
Qu'en penses-tu ?
Bonne journée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Modeste" a écrit dans le message de news:Bonsour® Pounet95 avec ferveur ;o))) vous nous disiez :J'ai pas essayé .....
menu Format / Spécial et Numéro Sécurité Sociale ?
en effet mais cela ne s'applique qu'a des n°SS corrects et complets
;o)))
;o))) alors allons-y d'une petite fonction personnalisée
avec en bonus quand c'est possible
recalcul de clé
indication mois incorrect
Utilisation :
A1 B1 =N_SS(A1)
1-5702- 95/491002 1 57 02 95 491 002 18
2 57 02 95 491 002 2 57 02 95 491 002 18
1570295491 1 57 02 95 491 ??? xx
2572295491032/46 2 57 22 95 491 032 17 !! mois incorrect !!
Function N_SS(target)
' --- ne s'applique qu'aux N°SS Français
' --- Usage VBA possible : Cells(x,y)=N_SS(Cells(w,z))
numeros = "0123456789"
SS = ""
For i = 1 To Len(target)
If InStr(numeros, Mid(target, i, 1)) <> 0 Then
SS = SS & Mid(target, i, 1)
End If
Next
' --- re-calcul de la clé
If Len(SS) >= 13 Then
NumSS = CDbl(Left(SS, 13))
cle = 97 - (NumSS - 97 * Int(NumSS / 97))
Else
cle = "xx"
End If
' --- formatage résultat avec caractère insecable (Chr(160)
N_SS = ""
' --- pour etre sûr de traiter 13 caractères
SS = SS & " "
For i = 1 To 13
n = Mid(SS, i, 1)
N_SS = N_SS & IIf(InStr(numeros, n) <> 0, n, "?")
Select Case i
Case 1, 3, 5, 7, 10
N_SS = N_SS & Chr(160)
End Select
Next
'--- ajout de la clé avec caractère insécable chr(160)
N_SS = N_SS & Chr(160) & Format(cle, "00")
'--- controle du N° de mois
If CInt(Mid(N_SS, 6, 2)) > 12 Then N_SS = N_SS & " !! mois incorrect
!!"
End Function:
"Antoine76" a écrit dans le message de news:Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour
"l'harmonisation"de
l'affichage des numéros de sécurité sociale (français) à la
problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS.
Leproblème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67
789...),- et avec un "/" lorsque les 2 chiffres de la clé étaient
fournis(sinonsans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car
parfoisil
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de
cescellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui
aprèsle
13ème chiffre insère un / Je précise, par ailleurs que le contenu de
cette
cellule est exploité, soit pour déterminer le sexe et donc les
formulesde
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec
toujoursles
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Petite précision que je voulais donner et qui m'a échappée : il existe
bien
des N° SS qui commencent par autre chose que des 1 ou des 2;
Il y a le 3 par exemple ;
Non ! Non ! Ce n'est pas pour ceux qui sont atteint du syndrome de Turner
(anomalie génétique lors de la fécondation, qui fait que l'individu se
retrouve, pour la 23ème paire de chromosomes, avec un chromosome X tout
seul, et pas de 2ème X ou Y, c'est à dire ni homme (au sens génétique
c'est
à dire un X ET un Y) et ni femme (c'est à dire une PAIRE de chromosome X);
ils ont une morphologie plutôt féminine, avec un développement mammaire
plutôt féminin, une allure un peu enrobée et une apparence de
vieillissement
accélérée... Fin de l'écart !)) Le 3, qui n'est pas rare, est peut-être
pour
ceux qui ont un statut vis à vis de l'INSEE qui est stable et donc
pérenne(??).
Il y a aussi des 7, moins fréquents pour ...? et aussi des 8 encore plus
rares (réfugiés politiques en instance d'asile ???)
Le seul problème(informatiquement parlant bien sûr !) avec les 3, les 7,
les
8, et éventuellement les autres, c'est que l'on ne peut pas "en
déterminer"
le sexe !... pour exploitation honorable (était-il nécessaire de préciser
?)
Antoine
"Pounet95" a écrit dans le message de news:
#v6t$Salut Modeste,
OK, mais j'ai cru comprendre que
<< L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,car des N° SS continuerons à être rentrés dans le fichier, et avec
toujoursles même problèmes potentiels... >>
ALors, amha, en partant de ce format et en l'incorporant dans une MEFC,
il
devrait avoir moyen de faire
avec quelques tests sur le nbre de caractères par exemple.
Qu'en penses-tu ?
Bonne journée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Modeste" a écrit dans le message de news:Bonsour® Pounet95 avec ferveur ;o))) vous nous disiez :J'ai pas essayé .....
menu Format / Spécial et Numéro Sécurité Sociale ?
en effet mais cela ne s'applique qu'a des n°SS corrects et complets
;o)))
;o))) alors allons-y d'une petite fonction personnalisée
avec en bonus quand c'est possible
recalcul de clé
indication mois incorrect
Utilisation :
A1 B1 =N_SS(A1)
1-5702- 95/491002 1 57 02 95 491 002 18
2 57 02 95 491 002 2 57 02 95 491 002 18
1570295491 1 57 02 95 491 ??? xx
2572295491032/46 2 57 22 95 491 032 17 !! mois incorrect !!
Function N_SS(target)
' --- ne s'applique qu'aux N°SS Français
' --- Usage VBA possible : Cells(x,y)=N_SS(Cells(w,z))
numeros = "0123456789"
SS = ""
For i = 1 To Len(target)
If InStr(numeros, Mid(target, i, 1)) <> 0 Then
SS = SS & Mid(target, i, 1)
End If
Next
' --- re-calcul de la clé
If Len(SS) >= 13 Then
NumSS = CDbl(Left(SS, 13))
cle = 97 - (NumSS - 97 * Int(NumSS / 97))
Else
cle = "xx"
End If
' --- formatage résultat avec caractère insecable (Chr(160)
N_SS = ""
' --- pour etre sûr de traiter 13 caractères
SS = SS & " "
For i = 1 To 13
n = Mid(SS, i, 1)
N_SS = N_SS & IIf(InStr(numeros, n) <> 0, n, "?")
Select Case i
Case 1, 3, 5, 7, 10
N_SS = N_SS & Chr(160)
End Select
Next
'--- ajout de la clé avec caractère insécable chr(160)
N_SS = N_SS & Chr(160) & Format(cle, "00")
'--- controle du N° de mois
If CInt(Mid(N_SS, 6, 2)) > 12 Then N_SS = N_SS & " !! mois incorrect
!!"
End Function:
"Antoine76" a écrit dans le message de news:Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour
"l'harmonisation"de
l'affichage des numéros de sécurité sociale (français) à la
problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS.
Leproblème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67
789...),- et avec un "/" lorsque les 2 chiffres de la clé étaient
fournis(sinonsans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car
parfoisil
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de
cescellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui
aprèsle
13ème chiffre insère un / Je précise, par ailleurs que le contenu
de
cette
cellule est exploité, soit pour déterminer le sexe et donc les
formulesde
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec
toujoursles
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Petite précision que je voulais donner et qui m'a échappée : il existe
bien
des N° SS qui commencent par autre chose que des 1 ou des 2;
Il y a le 3 par exemple ;
Non ! Non ! Ce n'est pas pour ceux qui sont atteint du syndrome de Turner
(anomalie génétique lors de la fécondation, qui fait que l'individu se
retrouve, pour la 23ème paire de chromosomes, avec un chromosome X tout
seul, et pas de 2ème X ou Y, c'est à dire ni homme (au sens génétique
c'est
à dire un X ET un Y) et ni femme (c'est à dire une PAIRE de chromosome X);
ils ont une morphologie plutôt féminine, avec un développement mammaire
plutôt féminin, une allure un peu enrobée et une apparence de
vieillissement
accélérée... Fin de l'écart !)) Le 3, qui n'est pas rare, est peut-être
pour
ceux qui ont un statut vis à vis de l'INSEE qui est stable et donc
pérenne(??).
Il y a aussi des 7, moins fréquents pour ...? et aussi des 8 encore plus
rares (réfugiés politiques en instance d'asile ???)
Le seul problème(informatiquement parlant bien sûr !) avec les 3, les 7,
les
8, et éventuellement les autres, c'est que l'on ne peut pas "en
déterminer"
le sexe !... pour exploitation honorable (était-il nécessaire de préciser
?)
Antoine
"Pounet95" <pasdepub@oneado.fr> a écrit dans le message de news:
#v6t$OfDGHA.3828@TK2MSFTNGP14.phx.gbl...
Salut Modeste,
OK, mais j'ai cru comprendre que
<< L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les même problèmes potentiels... >>
ALors, amha, en partant de ce format et en l'incorporant dans une MEFC,
il
devrait avoir moyen de faire
avec quelques tests sur le nbre de caractères par exemple.
Qu'en penses-tu ?
Bonne journée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Modeste" <nomail@nomail.net> a écrit dans le message de news:
eP54RLfDGHA.1288@TK2MSFTNGP09.phx.gbl...
Bonsour® Pounet95 avec ferveur ;o))) vous nous disiez :
J'ai pas essayé .....
menu Format / Spécial et Numéro Sécurité Sociale ?
en effet mais cela ne s'applique qu'a des n°SS corrects et complets
;o)))
;o))) alors allons-y d'une petite fonction personnalisée
avec en bonus quand c'est possible
recalcul de clé
indication mois incorrect
Utilisation :
A1 B1 =N_SS(A1)
1-5702- 95/491002 1 57 02 95 491 002 18
2 57 02 95 491 002 2 57 02 95 491 002 18
1570295491 1 57 02 95 491 ??? xx
2572295491032/46 2 57 22 95 491 032 17 !! mois incorrect !!
Function N_SS(target)
' --- ne s'applique qu'aux N°SS Français
' --- Usage VBA possible : Cells(x,y)=N_SS(Cells(w,z))
numeros = "0123456789"
SS = ""
For i = 1 To Len(target)
If InStr(numeros, Mid(target, i, 1)) <> 0 Then
SS = SS & Mid(target, i, 1)
End If
Next
' --- re-calcul de la clé
If Len(SS) >= 13 Then
NumSS = CDbl(Left(SS, 13))
cle = 97 - (NumSS - 97 * Int(NumSS / 97))
Else
cle = "xx"
End If
' --- formatage résultat avec caractère insecable (Chr(160)
N_SS = ""
' --- pour etre sûr de traiter 13 caractères
SS = SS & " "
For i = 1 To 13
n = Mid(SS, i, 1)
N_SS = N_SS & IIf(InStr(numeros, n) <> 0, n, "?")
Select Case i
Case 1, 3, 5, 7, 10
N_SS = N_SS & Chr(160)
End Select
Next
'--- ajout de la clé avec caractère insécable chr(160)
N_SS = N_SS & Chr(160) & Format(cle, "00")
'--- controle du N° de mois
If CInt(Mid(N_SS, 6, 2)) > 12 Then N_SS = N_SS & " !! mois incorrect
!!"
End Function:
"Antoine76" <awerel@mageos.com> a écrit dans le message de news:
uZCwbJeDGHA.2924@tk2msftngp13.phx.gbl...
Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour
"l'harmonisation"
de
l'affichage des numéros de sécurité sociale (français) à la
problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS.
Le
problème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67
789...),
- et avec un "/" lorsque les 2 chiffres de la clé étaient
fournis(sinon
sans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car
parfois
il
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de
ces
cellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui
après
le
13ème chiffre insère un / Je précise, par ailleurs que le contenu
de
cette
cellule est exploité, soit pour déterminer le sexe et donc les
formules
de
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec
toujours
les
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Petite précision que je voulais donner et qui m'a échappée : il existe
bien
des N° SS qui commencent par autre chose que des 1 ou des 2;
Il y a le 3 par exemple ;
Non ! Non ! Ce n'est pas pour ceux qui sont atteint du syndrome de Turner
(anomalie génétique lors de la fécondation, qui fait que l'individu se
retrouve, pour la 23ème paire de chromosomes, avec un chromosome X tout
seul, et pas de 2ème X ou Y, c'est à dire ni homme (au sens génétique
c'est
à dire un X ET un Y) et ni femme (c'est à dire une PAIRE de chromosome X);
ils ont une morphologie plutôt féminine, avec un développement mammaire
plutôt féminin, une allure un peu enrobée et une apparence de
vieillissement
accélérée... Fin de l'écart !)) Le 3, qui n'est pas rare, est peut-être
pour
ceux qui ont un statut vis à vis de l'INSEE qui est stable et donc
pérenne(??).
Il y a aussi des 7, moins fréquents pour ...? et aussi des 8 encore plus
rares (réfugiés politiques en instance d'asile ???)
Le seul problème(informatiquement parlant bien sûr !) avec les 3, les 7,
les
8, et éventuellement les autres, c'est que l'on ne peut pas "en
déterminer"
le sexe !... pour exploitation honorable (était-il nécessaire de préciser
?)
Antoine
"Pounet95" a écrit dans le message de news:
#v6t$Salut Modeste,
OK, mais j'ai cru comprendre que
<< L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,car des N° SS continuerons à être rentrés dans le fichier, et avec
toujoursles même problèmes potentiels... >>
ALors, amha, en partant de ce format et en l'incorporant dans une MEFC,
il
devrait avoir moyen de faire
avec quelques tests sur le nbre de caractères par exemple.
Qu'en penses-tu ?
Bonne journée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Modeste" a écrit dans le message de news:Bonsour® Pounet95 avec ferveur ;o))) vous nous disiez :J'ai pas essayé .....
menu Format / Spécial et Numéro Sécurité Sociale ?
en effet mais cela ne s'applique qu'a des n°SS corrects et complets
;o)))
;o))) alors allons-y d'une petite fonction personnalisée
avec en bonus quand c'est possible
recalcul de clé
indication mois incorrect
Utilisation :
A1 B1 =N_SS(A1)
1-5702- 95/491002 1 57 02 95 491 002 18
2 57 02 95 491 002 2 57 02 95 491 002 18
1570295491 1 57 02 95 491 ??? xx
2572295491032/46 2 57 22 95 491 032 17 !! mois incorrect !!
Function N_SS(target)
' --- ne s'applique qu'aux N°SS Français
' --- Usage VBA possible : Cells(x,y)=N_SS(Cells(w,z))
numeros = "0123456789"
SS = ""
For i = 1 To Len(target)
If InStr(numeros, Mid(target, i, 1)) <> 0 Then
SS = SS & Mid(target, i, 1)
End If
Next
' --- re-calcul de la clé
If Len(SS) >= 13 Then
NumSS = CDbl(Left(SS, 13))
cle = 97 - (NumSS - 97 * Int(NumSS / 97))
Else
cle = "xx"
End If
' --- formatage résultat avec caractère insecable (Chr(160)
N_SS = ""
' --- pour etre sûr de traiter 13 caractères
SS = SS & " "
For i = 1 To 13
n = Mid(SS, i, 1)
N_SS = N_SS & IIf(InStr(numeros, n) <> 0, n, "?")
Select Case i
Case 1, 3, 5, 7, 10
N_SS = N_SS & Chr(160)
End Select
Next
'--- ajout de la clé avec caractère insécable chr(160)
N_SS = N_SS & Chr(160) & Format(cle, "00")
'--- controle du N° de mois
If CInt(Mid(N_SS, 6, 2)) > 12 Then N_SS = N_SS & " !! mois incorrect
!!"
End Function:
"Antoine76" a écrit dans le message de news:Bonjour à tous
Je suis bloqué dans la recherche d'une solution pour
"l'harmonisation"de
l'affichage des numéros de sécurité sociale (français) à la
problématique
suivante :
De nombreux fichiers contiennent, toujours en colonne B, les N° SS.
Leproblème est que ces numéros ont été rentrés de manière "non
standardisée",
voulant dire par là que
- les numéros ont toujours été rentrés avec espaces(1 23 45 67
789...),- et avec un "/" lorsque les 2 chiffres de la clé étaient
fournis(sinonsans
le /, ni les 2 chiffres),
- et que parfois, même la totalité des 13 chiffres de base, car
parfoisil
n'en a été communiqué que 7 ou 10 premiers chiffres (ou...).
L'objectif serait,
- d'utiliser une MEFC pour le format de la cellule
(#""##""##""##""###""###" ou #""##""##""##""###""###"/"##")
ce qui ne semble pas possible avec ma version d'Excel 2000,
- à défaut, d'intégrer des formules dans le format personnalisé de
cescellules (?)
L'idée serait d'avoir toujours, pour l'affichage de la cellule, un
"remplissage" qui commence par le 1er chiffre de gauche... et qui
aprèsle
13ème chiffre insère un / Je précise, par ailleurs que le contenu
de
cette
cellule est exploité, soit pour déterminer le sexe et donc les
formulesde
politesse correspondantes, soit pour déterminer un âge approché en
l'absence
de la date de naissance.
J'ai peur d'avoir trouvé un gros os qui est peut-être même en silex
!Attention aux dents...
L'usage d'une macro ne m'apporterais malheureusement pas ce que je
veux,
car
des N° SS continuerons à être rentrés dans le fichier, et avec
toujoursles
même problèmes potentiels...
Merci à tous pour vos idées
Antoine
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr