IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

Calcul clé type 1-2


Sujet :

Contribuez

  1. #1
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut Calcul clé type 1-2
    bonjour,

    une petite fonction pour calculer les clés type 1-2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Public Function CalculCleType1_2(ByVal sNumero As String) As Byte
       Dim i As Integer, iVal As Integer, iSomme As Integer
       Dim bPair As Boolean
     
       For i = Len(sNumero) To 1 Step -1
          iVal = CInt(Mid$(sNumero, i, 1)) * (bPair + 2)
          iSomme = iSomme + iVal \ 10 + iVal Mod 10
          bPair = Not bPair
       Next i
       CalculCleType1_2 = 10 - iSomme Mod 10
    End Function
    Test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Public Function TestClef()
       Dim sNum As String
       sNum = "76031208" 'Clef calculée doit être = à 2
       Debug.Print CalculCleType1_2(sNum)
    End Function
    Référence ici.

    Philippe

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 263
    Points
    34 263
    Par défaut
    Hello,
    tu peux nous en dire un peu plus sur ces clés 1-2, ca ne me dit rien
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    Des numéros utilisés par l'assurance maladie possèdent une clé de validation calculée avec cet algorithme.

    Par exemple les n° d'accident de travail, n° praticien, n° d'organisme complémentaire, etc...

    Cette clé permet de vérifier que le n° est potentiellement juste.

    Amicalement,

    Philippe

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Salut

    Comment utilise-t-on cette fonction ? J'utilise Excel 2010 (Alt/F11 ?? et ensuite ..que faire ??)

    J'y connais rien en VBA

    Est ce qu'il est possible d'adapter cette fonction (VBA?) dans une fonction excel basique (exemple : =blabla), plus simple pour moi

    Merci

    Ca permet de calculer tout type de clé de l'assurance maladie ? (A.T., finess, ...) ?

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    Dans l'éditeur VBA (Alt+F11) choisir "Insertion"->"Module" puis copier/coller la fonction suivant dans ce nouveau module :
    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
     
    Public Function CalculCleType1_2(ByVal vNumero As Variant) As Integer
       Dim sNumero As String
       Dim i As Integer, iVal As Integer, iSomme As Integer
       Dim bPair As Boolean
       sNumero = vNumero & ""
       If Len(sNumero) > 0 Then
          For i = Len(sNumero) To 1 Step -1
             iVal = CInt(Mid$(sNumero, i, 1)) * (bPair + 2)
             iSomme = iSomme + iVal \ 10 + iVal Mod 10
             bPair = Not bPair
          Next i
          CalculCleType1_2 = 10 - iSomme Mod 10
       End If
    End Function
    On peut ensuite appeler directement la fonction dans une cellule d'une feuille Excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =CalculCleType1_2(A1)
    Avec en argument la référence de la cellule contenant la valeur dont on veut calculer la clé.

    L'annexe n°5 du cahier des charges de la norme B2 (lien dans 1er post), nous dit que cette clé concerne :
    n° Etablissement
    n° Centre de Santé
    n° Praticien
    n° Laboratoire
    n° Pharmacien
    n° Transporteur
    n° Fournisseur
    n° Accident du travail
    n° d’organisme complémentaire
    cordialement,

    Philippe

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Merci

Discussions similaires

  1. Calcul Ecart type
    Par leyeno dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 18/06/2009, 09h45
  2. [2.1.2] Calcul écart type dans BIRT
    Par nicolep dans le forum BIRT
    Réponses: 2
    Dernier message: 12/04/2007, 11h09
  3. Calcul avec type Double
    Par virgul dans le forum C#
    Réponses: 3
    Dernier message: 09/03/2007, 16h41
  4. Champ calculé de type compteur dans un état
    Par OlivierC69 dans le forum Access
    Réponses: 5
    Dernier message: 10/08/2006, 10h04
  5. [C#] écriture fichier .txt + calcul écart-type
    Par titaB dans le forum Windows Forms
    Réponses: 6
    Dernier message: 26/05/2005, 13h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo