Modifier une cellule active

Résolu
rescue Messages postés 1047 Statut Contributeur -  
rescue Messages postés 1047 Statut Contributeur -
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. rescue Messages postés 1047 Statut Contributeur 136
     
    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.

    @+
    0
  2. rescue Messages postés 1047 Statut Contributeur 136
     
    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.
    0
  3. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  4. rescue Messages postés 1047 Statut Contributeur 136
     
    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.

    @+
    0
  5. rescue Messages postés 1047 Statut Contributeur 136
     
    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

    ----------------------------------------------------------------------
    @+
    0