Clé SIRET

Clé SIRET - VB/VBA/VBS - Programmation

Marsh Posté le 28-04-2021 à 17:05:02    

Hello,
 
Quelqu'un aurait sous la main une fonction excel (ou formule) pour calculer la clé (Le 14e chiffre) d'un Siret s'il vous plaît ?
 
:jap:


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 28-04-2021 à 17:05:02   

Reply

Marsh Posté le 28-04-2021 à 17:36:47    

Reply

Marsh Posté le 29-04-2021 à 09:20:50    

Ca ressemble à un check sur les 14 chiffres et pas le calcul du 14ème non ?
Je regarderai avec autre chose que mon tél
:jap:


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 29-04-2021 à 09:39:14    

Reply

Marsh Posté le 29-04-2021 à 10:01:56    

La plus part c'est pour checker, pas la fonction qui permet de calculer le 14ème chiffre
Si je demande c'est pour ne pas avoir à le faire, si quelqu'un avait ça sous la main, pas pour me faire un lien google :d

 

Edit : j'ai même tenté une recherche avec ton pseudo et celui de flash :whistle:


Message édité par SuppotDeSaTante le 29-04-2021 à 10:03:24

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 29-04-2021 à 12:24:18    

J'me suis débrouillé, ça a l'air d'être bon, j'en ai vérifié 3-4

 

Si ça peut servir à d'autre :

Code :
  1. Function Siret(Siren_et_Etab) 'Siren_et_Etab) '4289122810001
  2. 'Siren_et_Etab = CDbl("4289122810001" )
  3.  
  4. Dim Siren_et_Etab2, LngSiren, Val_Rang, Val_14 As Long
  5.    
  6.    
  7.    Siren_et_Etab2 = Siren_et_Etab & "0" 'on ajoute une "clé fictive" pour partir de la 14e place (rang 1)
  8.    LngSiren = Len(Siren_et_Etab2)
  9.    
  10.    For X = LngSiren To 1 Step -1 'on part de la fin
  11.    
  12.    
  13.        Val_Rang = Mid(Siren_et_Etab2, X, 1)
  14.      
  15.        If X Mod 2 = 0 Then 'Si le rang est paire on double
  16.        
  17.            Val_14 = Val_14 + Val_Rang '14e place = rang 1 ; 13e place = rang 2 etc. donc si X est paire, on n'ajoute pas le double
  18.            
  19.        Else
  20.            
  21.            
  22.            If (Val_Rang * 2) > 10 Then 'si le double a 2 chiffres
  23.            
  24.                Val_14 = Val_14 + Left((Val_Rang * 2), 1) + Right((Val_Rang * 2), 1) 'on ajoute l'addition des 2 chiffres du double
  25.                
  26.            Else
  27.            
  28.                Val_14 = Val_14 + (Val_Rang * 2) 'on ajoute le double
  29.                
  30.            End If
  31.            
  32.            
  33.        End If
  34.        
  35.        
  36.    Next X
  37.    
  38.    
  39.    If Val_14 Mod 10 = 0 Then 'si multiple de 10 ok
  40.  
  41.        Siret = Siren_et_Etab & 0
  42.  
  43.    Else
  44.  
  45.        Val_14 = 10 - (Val_14 Mod 10) 'sinon on garde le chiffre des unités du modulo
  46.        Siret = Siren_et_Etab & Val_14
  47.  
  48.    End If
  49.  
  50.  
  51. End Function


Message édité par SuppotDeSaTante le 29-04-2021 à 12:27:05

---------------
Soyez malin, louez entre voisins !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed