Modifier une cellule active

Résolu
Bonjour,

Je voudrais savoir avant de me lancer si en VBA sous Excel il était possible de modifier la cellule active.
Je m'explique :
J'ai une liste de numéro à 8 chiffres que je souhaiterais ajouter un 9ème chiffre qui serait la clef.
dans la même cellule.

Merci pour vos réponses.



--
Nul ne peut prétendre se connaître parfaitement car la conscience n'est que la partie émergée de l'iceberg. Sigmund Freud

6 réponses

  1. Contributeur
    Bonjour,

    Merci c'est un bon début.

    Il me reste à faire le calcul de la clef avec la formule de luhn et une boucle qui parcours chaque cellules ayant uniquement des numéros à 8 chiffres.

    @+
    1. Contributeur
      Bonsoir,

      Je cherche désespérément une fonction vba pour trouver le moyen de séparer chaque chiffre dans la cellule et de multiplier par 1 et par 2 ainsi de suite.

      Par exemple une cellule contenant : 12345678

      1 * 1
      2 * 2
      3 * 1
      4 * 2
      5 * 1
      6 * 2
      7 * 1
      8 * 2

      Apparemment il y aurait left() ou right() mais je ne vois pas comment les utiliser.
      je me retrouve avec des erreurs de compilation etc... c'est le brin quoi !
      Avez-vous une idée ?

      Merci.
      1. Contributeur
        Bonsoir,

        Merci encore pour cet exemple je vais voir ce que je peux en tirer.

        En faite je suis très mauvais en VBA.
        Ce n'est pas ma tasse de thé mais c'est pour rendre service à un collègue qui galère à chaque fois à ajouter manuellement la clef des numéros d'identifiants des praticiens dans son fichier Excel.

        J'ai codé en PHP une fonction qui permet de faire ce même calcul. Mais ensuite il doit faire copier coller à chaque fois dans sa feuille xls lol !
        Donc là Il commence à en avoir un peu marre.

        J'essaie de lui faire ça en VBA ce sera plus pratique.

        @+
        1. Contributeur
          Bonsoir,

          Avec ce que j'avais commencé et ce que tu m'a donné comme idée j'ai pu réaliser la macro que je souhaitais.
          Je te remercie encore pour ton aide.

          Voici le code au complet pour celui à qui ça intéresserait :
          ----------------------------------------------------------------------
          Sub Calculer_Clef_Nni()

          'Définition des variables
          Dim Cell As Range
          Dim nni_split(1 To 8) As Long
          Dim chiffre(1 To 8) As Long
          Dim I, J As Long
          Dim addition, clef As Integer

          'Boucle sur chaque cellule de la plage A1:A10
          For Each Cell In Range("A1:A10")

          'si la cellule contient 8 chiffres alors faire le calcul
          If Len(Cell.Value) = 8 Then

          'initialisation de la variable addition
          addition = 0

          For I = 1 To 8
          nni_split(I) = Mid(Cell.Value, I, 1)
          chiffre(I) = nni_split(I) * (2 - I Mod 2)

          'faire uniquement l'addition des nombres à 2 chiffres (exemple pour 14 c'est : 1 + 4 = 5)
          nbr_chiffre = chiffre(I)
          If Len(nbr_chiffre) = 2 Then
          For J = 1 To 2
          'decouper le nombre trouvé en 2 pour faire l'addition
          decoupe = Mid(nbr_chiffre, J, 1)
          addition = decoupe + addition
          Next J

          'sinon additionner normalement les chiffres trouvés
          Else
          addition = nbr_chiffre + addition
          End If

          Next I

          Else
          'sinon ne rien faire et quitter le programme
          Exit Sub

          End If
          'total de l'addition en ne prenant que l'unité (exemple pour 25 l'unité est 5).
          addition = Right(addition, 1)

          'calcul de la clef
          clef = (10 - addition)

          If clef = 10 Then
          clef = 0
          Else
          clef = clef
          End If

          'nouveau chiffre avec la clef à inserer dans la cellule
          Cell.Value = Cell.Value & clef
          Next Cell

          End Sub

          ----------------------------------------------------------------------
          @+