Modifier une cellule active

Résolu/Fermé
rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 - 18 janv. 2012 à 20:40
rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 - 21 janv. 2012 à 22:49
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.



A voir également:

6 réponses

ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
18 janv. 2012 à 22:17
bonsoir

c'est possible, un exemple
https://www.cjoint.com/?0AswpHDObwT

bonne suite
0
rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 136
19 janv. 2012 à 07:59
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
rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 136
20 janv. 2012 à 22:26
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
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
21 janv. 2012 à 13:30
re

un exemple
https://www.cjoint.com/?0AvnDyLkfnv
après c'est à toi de voir ce que tu veux en faire

bonne suite
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 136
21 janv. 2012 à 17:53
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
rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 136
21 janv. 2012 à 22:49
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