Bonjour,

J'esseaye actuellement de calculer la clé du numero de securité social, notamment pour les corses.

Voilà mon code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
Option Explicit
 
 
Private Sub Worksheet_Change(ByVal Target As Range)
Dim numSecu As String
Dim numDouble As Double
 
Dim codeCorse As Double
Dim calculCle As Double
 
Range("A2").Select
 
numSecu = Target.Value
 
'on recupere le numero de securite social saisie sur excel
numSecu = Range("A2").Value
 
     'Si la 7eme lettre de numSecu est un A alors on remplace par 0
    If Mid(numSecu, 7, 1) = "A" Then
    numSecu = Mid(numSecu, 1, 6) & "0" & Mid(numSecu, 8, 6)
    codeCorse = 1000000
    End If
 
    'Si la 7eme lettre de numSecu est un B alors on remplace par 0
    If Mid(numSecu, 7, 1) = "B" Then
    numSecu = Mid(numSecu, 1, 6) & "0" & Mid(numSecu, 8, 6)
    codeCorse = 2000000
    End If
 
numDouble = numSecu - codeCorse
 
numDouble = 97 - (numDouble \ 97)  ' <=== Cette ligne pose problème et me met un dépassement de capacité
End Sub
Je suppose que mon dépassement de capacité est normal vu que numDouble \ 97 donne un nombre plus long que ce que peu contenir un double.

D'ailleur la division entière ne devrait-elle pas me renvoyer un entier ? (c'est bien avec \ la division entiere non ?)

Voilà, j'ai esseayer en remplacent par un float et d'autre choses bizzard, mais ca ne fonctionne pas non plus.

Merci d'avance pour votre aide.