Modifier une cellule active
Résolu
rescue
Messages postés
1039
Date d'inscription
Statut
Contributeur
Dernière intervention
-
rescue Messages postés 1039 Date d'inscription Statut Contributeur Dernière intervention -
rescue Messages postés 1039 Date d'inscription Statut Contributeur Dernière intervention -
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.
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:
- Modifier une cellule active
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Modifier une story facebook - Guide
- Excel cellule couleur si condition texte - Guide
- Modifier extension fichier - Guide
6 réponses
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.
@+
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.
@+
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.
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.
re
un exemple
https://www.cjoint.com/?0AvnDyLkfnv
après c'est à toi de voir ce que tu veux en faire
bonne suite
un exemple
https://www.cjoint.com/?0AvnDyLkfnv
après c'est à toi de voir ce que tu veux en faire
bonne suite
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
@+
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.
@+
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
----------------------------------------------------------------------
@+
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
----------------------------------------------------------------------
@+