J'ai inséré ce code dans un module. Comment faire maintenant pour l'utiliser lorsque l'usager entre un numéro dans un textbox ?
Essaie ça voir....
Private Sub TextBox1 Exit(ByVal Cancel As MSForms.ReturnBoolean)
Call "TaMAcro"
End Sub
Starwing
michdenis
Bonjour Denys,
Pour contrôler la saisie de ton numéro d'assurance sociale dans le Textbox1, tu peux insérer ceci dans ton formulaire... adapte le nom du textbox
'------------------------ Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(Me.TextBox1) = 11 Then KeyAscii = 0 If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 End If
End Sub '------------------------ Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If Len(Me.TextBox1) = 3 Or Len(Me.TextBox1) = 7 Then Me.TextBox1 = Me.TextBox1 & " " If KeyCode = 8 Then Me.TextBox1 = Left(Me.TextBox1, Len(Me.TextBox1) - 2) End If End If
End Sub '------------------------
Ta fonction serait préférable si elle était comme ceci : de type Boolean en ce sens qu'elle retourne False or True selon que le test est positif ou négatif
'----------------------- Public Function NumberValidation(CodeNumber) As Boolean NumberValidation = False
'procédure
NumberValidation = True Or False
End Function '-----------------------
Ta procédure pourrait ressemble à ceci '---------------------- Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Me.TextBox1 = "" Then Exit Sub
If NumberValidation(Me.TextBox1) = False Then MsgBox "Votre numéro d'assurance social n'est pas valide." Cancel = True Me.TextBox1.SelStart = 0 Me.TextBox1.SelLength = Len(Me.TextBox1) End If
End Sub '----------------------
Salutations!
"Denys" a écrit dans le message de news:fa3d01c43e72$6ac9a410$ Bonjour à tous,
J'ai un code VBA pour vérifier la validité d'un numéro d'assurance sociale canadien nommé comme suit:
Public Function NumberValidation(CodeNumber)
J'ai inséré ce code dans un module. Comment faire maintenant pour l'utiliser lorsque l'usager entre un numéro dans un textbox ?
Quelqu'un pourrait me diriger ???
Merci beaucoup
Denys
Bonjour Denys,
Pour contrôler la saisie de ton numéro d'assurance sociale dans le Textbox1, tu peux insérer ceci dans ton formulaire...
adapte le nom du textbox
'------------------------
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(Me.TextBox1) = 11 Then KeyAscii = 0
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
End If
End Sub
'------------------------
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If Len(Me.TextBox1) = 3 Or Len(Me.TextBox1) = 7 Then
Me.TextBox1 = Me.TextBox1 & " "
If KeyCode = 8 Then
Me.TextBox1 = Left(Me.TextBox1, Len(Me.TextBox1) - 2)
End If
End If
End Sub
'------------------------
Ta fonction serait préférable si elle était comme ceci : de type Boolean
en ce sens qu'elle retourne False or True selon que le test est positif ou négatif
'-----------------------
Public Function NumberValidation(CodeNumber) As Boolean
NumberValidation = False
'procédure
NumberValidation = True Or False
End Function
'-----------------------
Ta procédure pourrait ressemble à ceci
'----------------------
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Me.TextBox1 = "" Then Exit Sub
If NumberValidation(Me.TextBox1) = False Then
MsgBox "Votre numéro d'assurance social n'est pas valide."
Cancel = True
Me.TextBox1.SelStart = 0
Me.TextBox1.SelLength = Len(Me.TextBox1)
End If
End Sub
'----------------------
Salutations!
"Denys" <anonymous@discussions.microsoft.com> a écrit dans le message de news:fa3d01c43e72$6ac9a410$a101280a@phx.gbl...
Bonjour à tous,
J'ai un code VBA pour vérifier la validité d'un numéro
d'assurance sociale canadien nommé comme suit:
Public Function NumberValidation(CodeNumber)
J'ai inséré ce code dans un module. Comment faire
maintenant pour l'utiliser lorsque l'usager entre un
numéro dans un textbox ?
Pour contrôler la saisie de ton numéro d'assurance sociale dans le Textbox1, tu peux insérer ceci dans ton formulaire... adapte le nom du textbox
'------------------------ Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(Me.TextBox1) = 11 Then KeyAscii = 0 If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 End If
End Sub '------------------------ Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If Len(Me.TextBox1) = 3 Or Len(Me.TextBox1) = 7 Then Me.TextBox1 = Me.TextBox1 & " " If KeyCode = 8 Then Me.TextBox1 = Left(Me.TextBox1, Len(Me.TextBox1) - 2) End If End If
End Sub '------------------------
Ta fonction serait préférable si elle était comme ceci : de type Boolean en ce sens qu'elle retourne False or True selon que le test est positif ou négatif
'----------------------- Public Function NumberValidation(CodeNumber) As Boolean NumberValidation = False
'procédure
NumberValidation = True Or False
End Function '-----------------------
Ta procédure pourrait ressemble à ceci '---------------------- Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Me.TextBox1 = "" Then Exit Sub
If NumberValidation(Me.TextBox1) = False Then MsgBox "Votre numéro d'assurance social n'est pas valide." Cancel = True Me.TextBox1.SelStart = 0 Me.TextBox1.SelLength = Len(Me.TextBox1) End If
End Sub '----------------------
Salutations!
"Denys" a écrit dans le message de news:fa3d01c43e72$6ac9a410$ Bonjour à tous,
J'ai un code VBA pour vérifier la validité d'un numéro d'assurance sociale canadien nommé comme suit:
Public Function NumberValidation(CodeNumber)
J'ai inséré ce code dans un module. Comment faire maintenant pour l'utiliser lorsque l'usager entre un numéro dans un textbox ?
Quelqu'un pourrait me diriger ???
Merci beaucoup
Denys
isabelle
bonjour Denys,
pour ajouter à la solution de Starwing si la Function est dans un autre projet,
Application.Run ("Perso.xls!NumberValidation")
isabelle
Bonjour à tous,
J'ai un code VBA pour vérifier la validité d'un numéro d'assurance sociale canadien nommé comme suit:
Public Function NumberValidation(CodeNumber)
J'ai inséré ce code dans un module. Comment faire maintenant pour l'utiliser lorsque l'usager entre un numéro dans un textbox ?
Quelqu'un pourrait me diriger ???
Merci beaucoup
Denys
bonjour Denys,
pour ajouter à la solution de Starwing
si la Function est dans un autre projet,
Application.Run ("Perso.xls!NumberValidation")
isabelle
Bonjour à tous,
J'ai un code VBA pour vérifier la validité d'un numéro
d'assurance sociale canadien nommé comme suit:
Public Function NumberValidation(CodeNumber)
J'ai inséré ce code dans un module. Comment faire
maintenant pour l'utiliser lorsque l'usager entre un
numéro dans un textbox ?
pour ajouter à la solution de Starwing si la Function est dans un autre projet,
Application.Run ("Perso.xls!NumberValidation")
isabelle
Bonjour à tous,
J'ai un code VBA pour vérifier la validité d'un numéro d'assurance sociale canadien nommé comme suit:
Public Function NumberValidation(CodeNumber)
J'ai inséré ce code dans un module. Comment faire maintenant pour l'utiliser lorsque l'usager entre un numéro dans un textbox ?
Quelqu'un pourrait me diriger ???
Merci beaucoup
Denys
Starwing
Pour faire suite...
Puis si un jour tu as besoin d'une formule sur Excel qui renvoie le dernier chiffre du NAS canadien: Alors en A1: mettre les 7 ou 8 chiffres du NAS à trouver puis en B1 la formule suivante: =MOD(10-(SOMME(STXT(GAUCHE(A1;8);{1;3;5;7};1)*{1})+SOMME(SI (STXT(GAUCHE(A1;8);{2;4;6;8};1)*{2}<10;STXT(GAUCHE(A1;8); {2;4;6;8};1)*{2}))+SOMME(SI(STXT(GAUCHE(A1;8);{2;4;6;8};1)* {2}>;STXT(GAUCHE(A1;8);{2;4;6;8};1)*{2}-9)));10)
Il va falloir valder toutefois le ";" entre les {} dans certains systèmes il faut mettre des "." ou des "/"
Starwing
Pour faire suite...
Puis si un jour tu as besoin d'une formule sur Excel qui
renvoie le dernier chiffre du NAS canadien:
Alors en A1: mettre les 7 ou 8 chiffres du NAS à trouver
puis en B1 la formule suivante:
=MOD(10-(SOMME(STXT(GAUCHE(A1;8);{1;3;5;7};1)*{1})+SOMME(SI
(STXT(GAUCHE(A1;8);{2;4;6;8};1)*{2}<10;STXT(GAUCHE(A1;8);
{2;4;6;8};1)*{2}))+SOMME(SI(STXT(GAUCHE(A1;8);{2;4;6;8};1)*
{2}>=10;STXT(GAUCHE(A1;8);{2;4;6;8};1)*{2}-9)));10)
Il va falloir valder toutefois le ";" entre les {} dans
certains systèmes il faut mettre des "." ou des "/"
Puis si un jour tu as besoin d'une formule sur Excel qui renvoie le dernier chiffre du NAS canadien: Alors en A1: mettre les 7 ou 8 chiffres du NAS à trouver puis en B1 la formule suivante: =MOD(10-(SOMME(STXT(GAUCHE(A1;8);{1;3;5;7};1)*{1})+SOMME(SI (STXT(GAUCHE(A1;8);{2;4;6;8};1)*{2}<10;STXT(GAUCHE(A1;8); {2;4;6;8};1)*{2}))+SOMME(SI(STXT(GAUCHE(A1;8);{2;4;6;8};1)* {2}>;STXT(GAUCHE(A1;8);{2;4;6;8};1)*{2}-9)));10)
Il va falloir valder toutefois le ";" entre les {} dans certains systèmes il faut mettre des "." ou des "/"
Starwing
Denys
Bonjour Isabelle, Denis et Starwing,
Quel égoiste je suis... Merci beaucoup pour votre temps..
Voici le code de la fonction.....
Public Function NumberValidation(CodeNumber) As Boolean NumberValidation = False Dim E, i, SUBT, TOT, LAST
If (IsNumeric(CodeNumber)) And (Len(CodeNumber) > 8) And (Len(CodeNumber) < 12) Then If (Len(CodeNumber) = 11) Then CodeNumber = Del(CodeNumber, 4, 1) CodeNumber = Del(CodeNumber, 7, 1) End If TOT = 0 For i = 1 To 8 E = Mid(CodeNumber, i, 1) If ((i Mod 2) = 0) Then SUBT = (E * 2) Else SUBT = E End If If (SUBT > 9) Then SUBT = Mid(SUBT, 1, 1) * 1 + Mid(SUBT, 2, 1) End If TOT = TOT + SUBT Next If (TOT > 9) Then LAST = (10 - ((Mid(TOT, 2, 1)))) Else LAST = (10 - ((Mid(TOT, 1, 1)))) End If If (LAST > 9) Then LAST = (Mid(LAST, 2, 1)) If Mid(CodeNumber, 9, 1) = Trim(LAST) Then NumberValidation = True Else NumberValidation = False End If Else NumberValidation = False End If End Sub
'procédure
NumberValidation = True Or False
End Function
Denis, j'ai inséré ce code à l'endroit où tu as écris 'procédure... J'espère avoir bien compris...
Par contre Excel me donne une erreur en disant Sub or Function not defined à la ligne
CodeNumber = Del(CodeNumber, 4, 1) En surlignant Del...
Sauriez-vous ce que ça veut dire ???
Merci beaucoup à tous....
Denys
Bonjour Isabelle, Denis et Starwing,
Quel égoiste je suis... Merci beaucoup pour votre temps..
Voici le code de la fonction.....
Public Function NumberValidation(CodeNumber) As Boolean
NumberValidation = False
Dim E, i, SUBT, TOT, LAST
If (IsNumeric(CodeNumber)) And (Len(CodeNumber) > 8) And
(Len(CodeNumber) < 12) Then
If (Len(CodeNumber) = 11) Then
CodeNumber = Del(CodeNumber, 4, 1)
CodeNumber = Del(CodeNumber, 7, 1)
End If
TOT = 0
For i = 1 To 8
E = Mid(CodeNumber, i, 1)
If ((i Mod 2) = 0) Then
SUBT = (E * 2)
Else
SUBT = E
End If
If (SUBT > 9) Then
SUBT = Mid(SUBT, 1, 1) * 1 + Mid(SUBT, 2, 1)
End If
TOT = TOT + SUBT
Next
If (TOT > 9) Then
LAST = (10 - ((Mid(TOT, 2, 1))))
Else
LAST = (10 - ((Mid(TOT, 1, 1))))
End If
If (LAST > 9) Then LAST = (Mid(LAST, 2, 1))
If Mid(CodeNumber, 9, 1) = Trim(LAST) Then
NumberValidation = True
Else
NumberValidation = False
End If
Else
NumberValidation = False
End If
End Sub
'procédure
NumberValidation = True Or False
End Function
Denis, j'ai inséré ce code à l'endroit où tu as
écris 'procédure... J'espère avoir bien compris...
Par contre Excel me donne une erreur en disant Sub or
Function not defined à la ligne
CodeNumber = Del(CodeNumber, 4, 1)
En surlignant Del...
Quel égoiste je suis... Merci beaucoup pour votre temps..
Voici le code de la fonction.....
Public Function NumberValidation(CodeNumber) As Boolean NumberValidation = False Dim E, i, SUBT, TOT, LAST
If (IsNumeric(CodeNumber)) And (Len(CodeNumber) > 8) And (Len(CodeNumber) < 12) Then If (Len(CodeNumber) = 11) Then CodeNumber = Del(CodeNumber, 4, 1) CodeNumber = Del(CodeNumber, 7, 1) End If TOT = 0 For i = 1 To 8 E = Mid(CodeNumber, i, 1) If ((i Mod 2) = 0) Then SUBT = (E * 2) Else SUBT = E End If If (SUBT > 9) Then SUBT = Mid(SUBT, 1, 1) * 1 + Mid(SUBT, 2, 1) End If TOT = TOT + SUBT Next If (TOT > 9) Then LAST = (10 - ((Mid(TOT, 2, 1)))) Else LAST = (10 - ((Mid(TOT, 1, 1)))) End If If (LAST > 9) Then LAST = (Mid(LAST, 2, 1)) If Mid(CodeNumber, 9, 1) = Trim(LAST) Then NumberValidation = True Else NumberValidation = False End If Else NumberValidation = False End If End Sub
'procédure
NumberValidation = True Or False
End Function
Denis, j'ai inséré ce code à l'endroit où tu as écris 'procédure... J'espère avoir bien compris...
Par contre Excel me donne une erreur en disant Sub or Function not defined à la ligne
CodeNumber = Del(CodeNumber, 4, 1) En surlignant Del...
Sauriez-vous ce que ça veut dire ???
Merci beaucoup à tous....
Denys
Starwing
Salur Denis,
Je travaille comme Paie-Maître à Montréal,
Voici le code que j'utilise, si ça peut t'aider...
Private Function NAS(strNas As String) As Boolean
Dim intCount As Integer Dim intEven As Integer Dim intOdd As Integer
intEven = 0 intOdd = 0 If (Len(strNas) <> 9) Or Not (IsNumeric(strNas)) Then NAS = False Exit Function End If
For intCount = 1 To 8 If (intCount Mod 2) = 0 Then If (Val(Mid(strNas, intCount, 1)) * 2) >= 10 Then intEven = intEven + ((Val(Mid(strNas, intCount, 1)) _ * 2) - 10) + 1 Else intEven = intEven + Val(Mid(strNas, intCount, 1)) * 2 End If Else intOdd = intOdd + Val(Mid(strNas, intCount, 1)) End If Next If Trim((Str((10 - ((intEven + intOdd) Mod 10)) Mod 10))) = _ Mid(strNas, 9, 1) Then NAS = True Else NAS = False End If
End Function
Starwing
-----Message d'origine-----
Bonjour Isabelle, Denis et Starwing,
Quel égoiste je suis... Merci beaucoup pour votre temps..
Voici le code de la fonction.....
Public Function NumberValidation(CodeNumber) As Boolean NumberValidation = False Dim E, i, SUBT, TOT, LAST
If (IsNumeric(CodeNumber)) And (Len(CodeNumber) > 8) And
(Len(CodeNumber) < 12) Then If (Len(CodeNumber) = 11) Then CodeNumber = Del(CodeNumber, 4, 1) CodeNumber = Del(CodeNumber, 7, 1) End If TOT = 0 For i = 1 To 8 E = Mid(CodeNumber, i, 1) If ((i Mod 2) = 0) Then SUBT = (E * 2) Else SUBT = E End If If (SUBT > 9) Then SUBT = Mid(SUBT, 1, 1) * 1 + Mid(SUBT, 2, 1) End If TOT = TOT + SUBT Next If (TOT > 9) Then LAST = (10 - ((Mid(TOT, 2, 1)))) Else LAST = (10 - ((Mid(TOT, 1, 1)))) End If If (LAST > 9) Then LAST = (Mid(LAST, 2, 1)) If Mid(CodeNumber, 9, 1) = Trim(LAST) Then NumberValidation = True Else NumberValidation = False End If Else NumberValidation = False End If End Sub
'procédure
NumberValidation = True Or False
End Function
Denis, j'ai inséré ce code à l'endroit où tu as écris 'procédure... J'espère avoir bien compris...
Par contre Excel me donne une erreur en disant Sub or Function not defined à la ligne
CodeNumber = Del(CodeNumber, 4, 1) En surlignant Del...
Sauriez-vous ce que ça veut dire ???
Merci beaucoup à tous....
Denys .
Salur Denis,
Je travaille comme Paie-Maître à Montréal,
Voici le code que j'utilise, si ça peut t'aider...
Private Function NAS(strNas As String) As Boolean
Dim intCount As Integer
Dim intEven As Integer
Dim intOdd As Integer
intEven = 0
intOdd = 0
If (Len(strNas) <> 9) Or Not (IsNumeric(strNas)) Then
NAS = False
Exit Function
End If
For intCount = 1 To 8
If (intCount Mod 2) = 0 Then
If (Val(Mid(strNas, intCount, 1)) * 2) >= 10 Then
intEven = intEven + ((Val(Mid(strNas,
intCount, 1)) _
* 2) - 10) + 1
Else
intEven = intEven + Val(Mid(strNas, intCount,
1)) * 2
End If
Else
intOdd = intOdd + Val(Mid(strNas, intCount, 1))
End If
Next
If Trim((Str((10 - ((intEven + intOdd) Mod 10)) Mod
10))) = _
Mid(strNas, 9, 1) Then
NAS = True
Else
NAS = False
End If
End Function
Starwing
-----Message d'origine-----
Bonjour Isabelle, Denis et Starwing,
Quel égoiste je suis... Merci beaucoup pour votre temps..
Voici le code de la fonction.....
Public Function NumberValidation(CodeNumber) As Boolean
NumberValidation = False
Dim E, i, SUBT, TOT, LAST
If (IsNumeric(CodeNumber)) And (Len(CodeNumber) > 8)
And
(Len(CodeNumber) < 12) Then
If (Len(CodeNumber) = 11) Then
CodeNumber = Del(CodeNumber, 4, 1)
CodeNumber = Del(CodeNumber, 7, 1)
End If
TOT = 0
For i = 1 To 8
E = Mid(CodeNumber, i, 1)
If ((i Mod 2) = 0) Then
SUBT = (E * 2)
Else
SUBT = E
End If
If (SUBT > 9) Then
SUBT = Mid(SUBT, 1, 1) * 1 + Mid(SUBT, 2, 1)
End If
TOT = TOT + SUBT
Next
If (TOT > 9) Then
LAST = (10 - ((Mid(TOT, 2, 1))))
Else
LAST = (10 - ((Mid(TOT, 1, 1))))
End If
If (LAST > 9) Then LAST = (Mid(LAST, 2, 1))
If Mid(CodeNumber, 9, 1) = Trim(LAST) Then
NumberValidation = True
Else
NumberValidation = False
End If
Else
NumberValidation = False
End If
End Sub
'procédure
NumberValidation = True Or False
End Function
Denis, j'ai inséré ce code à l'endroit où tu as
écris 'procédure... J'espère avoir bien compris...
Par contre Excel me donne une erreur en disant Sub or
Function not defined à la ligne
CodeNumber = Del(CodeNumber, 4, 1)
En surlignant Del...
Voici le code que j'utilise, si ça peut t'aider...
Private Function NAS(strNas As String) As Boolean
Dim intCount As Integer Dim intEven As Integer Dim intOdd As Integer
intEven = 0 intOdd = 0 If (Len(strNas) <> 9) Or Not (IsNumeric(strNas)) Then NAS = False Exit Function End If
For intCount = 1 To 8 If (intCount Mod 2) = 0 Then If (Val(Mid(strNas, intCount, 1)) * 2) >= 10 Then intEven = intEven + ((Val(Mid(strNas, intCount, 1)) _ * 2) - 10) + 1 Else intEven = intEven + Val(Mid(strNas, intCount, 1)) * 2 End If Else intOdd = intOdd + Val(Mid(strNas, intCount, 1)) End If Next If Trim((Str((10 - ((intEven + intOdd) Mod 10)) Mod 10))) = _ Mid(strNas, 9, 1) Then NAS = True Else NAS = False End If
End Function
Starwing
-----Message d'origine-----
Bonjour Isabelle, Denis et Starwing,
Quel égoiste je suis... Merci beaucoup pour votre temps..
Voici le code de la fonction.....
Public Function NumberValidation(CodeNumber) As Boolean NumberValidation = False Dim E, i, SUBT, TOT, LAST
If (IsNumeric(CodeNumber)) And (Len(CodeNumber) > 8) And
(Len(CodeNumber) < 12) Then If (Len(CodeNumber) = 11) Then CodeNumber = Del(CodeNumber, 4, 1) CodeNumber = Del(CodeNumber, 7, 1) End If TOT = 0 For i = 1 To 8 E = Mid(CodeNumber, i, 1) If ((i Mod 2) = 0) Then SUBT = (E * 2) Else SUBT = E End If If (SUBT > 9) Then SUBT = Mid(SUBT, 1, 1) * 1 + Mid(SUBT, 2, 1) End If TOT = TOT + SUBT Next If (TOT > 9) Then LAST = (10 - ((Mid(TOT, 2, 1)))) Else LAST = (10 - ((Mid(TOT, 1, 1)))) End If If (LAST > 9) Then LAST = (Mid(LAST, 2, 1)) If Mid(CodeNumber, 9, 1) = Trim(LAST) Then NumberValidation = True Else NumberValidation = False End If Else NumberValidation = False End If End Sub
'procédure
NumberValidation = True Or False
End Function
Denis, j'ai inséré ce code à l'endroit où tu as écris 'procédure... J'espère avoir bien compris...
Par contre Excel me donne une erreur en disant Sub or Function not defined à la ligne
CodeNumber = Del(CodeNumber, 4, 1) En surlignant Del...
Sauriez-vous ce que ça veut dire ???
Merci beaucoup à tous....
Denys .
Denys
Bonjour Starwing,
Merci beaucoup... je reviens du lunch justement... C'est très aimable de ta part et c'est sûr que ça peut m'aider.... Je m'en vais l'utiliser de ce pas
Bonne journée
Denys
-----Original Message----- Salur Denis,
Je travaille comme Paie-Maître à Montréal,
Voici le code que j'utilise, si ça peut t'aider...
Private Function NAS(strNas As String) As Boolean
Dim intCount As Integer Dim intEven As Integer Dim intOdd As Integer
intEven = 0 intOdd = 0 If (Len(strNas) <> 9) Or Not (IsNumeric(strNas)) Then NAS = False Exit Function End If
For intCount = 1 To 8 If (intCount Mod 2) = 0 Then If (Val(Mid(strNas, intCount, 1)) * 2) >= 10 Then intEven = intEven + ((Val(Mid(strNas, intCount, 1)) _ * 2) - 10) + 1 Else intEven = intEven + Val(Mid(strNas, intCount, 1)) * 2 End If Else intOdd = intOdd + Val(Mid(strNas, intCount, 1)) End If Next If Trim((Str((10 - ((intEven + intOdd) Mod 10)) Mod 10))) = _ Mid(strNas, 9, 1) Then NAS = True Else NAS = False End If
End Function
Starwing
-----Message d'origine-----
Bonjour Isabelle, Denis et Starwing,
Quel égoiste je suis... Merci beaucoup pour votre temps..
Voici le code de la fonction.....
Public Function NumberValidation(CodeNumber) As Boolean NumberValidation = False Dim E, i, SUBT, TOT, LAST
If (IsNumeric(CodeNumber)) And (Len(CodeNumber) > 8) And
(Len(CodeNumber) < 12) Then If (Len(CodeNumber) = 11) Then CodeNumber = Del(CodeNumber, 4, 1) CodeNumber = Del(CodeNumber, 7, 1) End If TOT = 0 For i = 1 To 8 E = Mid(CodeNumber, i, 1) If ((i Mod 2) = 0) Then SUBT = (E * 2) Else SUBT = E End If If (SUBT > 9) Then SUBT = Mid(SUBT, 1, 1) * 1 + Mid(SUBT, 2, 1) End If TOT = TOT + SUBT Next If (TOT > 9) Then LAST = (10 - ((Mid(TOT, 2, 1)))) Else LAST = (10 - ((Mid(TOT, 1, 1)))) End If If (LAST > 9) Then LAST = (Mid(LAST, 2, 1)) If Mid(CodeNumber, 9, 1) = Trim(LAST) Then NumberValidation = True Else NumberValidation = False End If Else NumberValidation = False End If End Sub
'procédure
NumberValidation = True Or False
End Function
Denis, j'ai inséré ce code à l'endroit où tu as écris 'procédure... J'espère avoir bien compris...
Par contre Excel me donne une erreur en disant Sub or Function not defined à la ligne
CodeNumber = Del(CodeNumber, 4, 1) En surlignant Del...
Sauriez-vous ce que ça veut dire ???
Merci beaucoup à tous....
Denys .
.
Bonjour Starwing,
Merci beaucoup... je reviens du lunch justement... C'est
très aimable de ta part et c'est sûr que ça peut
m'aider.... Je m'en vais l'utiliser de ce pas
Bonne journée
Denys
-----Original Message-----
Salur Denis,
Je travaille comme Paie-Maître à Montréal,
Voici le code que j'utilise, si ça peut t'aider...
Private Function NAS(strNas As String) As Boolean
Dim intCount As Integer
Dim intEven As Integer
Dim intOdd As Integer
intEven = 0
intOdd = 0
If (Len(strNas) <> 9) Or Not (IsNumeric(strNas)) Then
NAS = False
Exit Function
End If
For intCount = 1 To 8
If (intCount Mod 2) = 0 Then
If (Val(Mid(strNas, intCount, 1)) * 2) >= 10 Then
intEven = intEven + ((Val(Mid(strNas,
intCount, 1)) _
* 2) - 10) + 1
Else
intEven = intEven + Val(Mid(strNas, intCount,
1)) * 2
End If
Else
intOdd = intOdd + Val(Mid(strNas, intCount, 1))
End If
Next
If Trim((Str((10 - ((intEven + intOdd) Mod 10)) Mod
10))) = _
Mid(strNas, 9, 1) Then
NAS = True
Else
NAS = False
End If
End Function
Starwing
-----Message d'origine-----
Bonjour Isabelle, Denis et Starwing,
Quel égoiste je suis... Merci beaucoup pour votre temps..
Voici le code de la fonction.....
Public Function NumberValidation(CodeNumber) As Boolean
NumberValidation = False
Dim E, i, SUBT, TOT, LAST
If (IsNumeric(CodeNumber)) And (Len(CodeNumber) > 8)
And
(Len(CodeNumber) < 12) Then
If (Len(CodeNumber) = 11) Then
CodeNumber = Del(CodeNumber, 4, 1)
CodeNumber = Del(CodeNumber, 7, 1)
End If
TOT = 0
For i = 1 To 8
E = Mid(CodeNumber, i, 1)
If ((i Mod 2) = 0) Then
SUBT = (E * 2)
Else
SUBT = E
End If
If (SUBT > 9) Then
SUBT = Mid(SUBT, 1, 1) * 1 + Mid(SUBT, 2, 1)
End If
TOT = TOT + SUBT
Next
If (TOT > 9) Then
LAST = (10 - ((Mid(TOT, 2, 1))))
Else
LAST = (10 - ((Mid(TOT, 1, 1))))
End If
If (LAST > 9) Then LAST = (Mid(LAST, 2, 1))
If Mid(CodeNumber, 9, 1) = Trim(LAST) Then
NumberValidation = True
Else
NumberValidation = False
End If
Else
NumberValidation = False
End If
End Sub
'procédure
NumberValidation = True Or False
End Function
Denis, j'ai inséré ce code à l'endroit où tu as
écris 'procédure... J'espère avoir bien compris...
Par contre Excel me donne une erreur en disant Sub or
Function not defined à la ligne
CodeNumber = Del(CodeNumber, 4, 1)
En surlignant Del...
Merci beaucoup... je reviens du lunch justement... C'est très aimable de ta part et c'est sûr que ça peut m'aider.... Je m'en vais l'utiliser de ce pas
Bonne journée
Denys
-----Original Message----- Salur Denis,
Je travaille comme Paie-Maître à Montréal,
Voici le code que j'utilise, si ça peut t'aider...
Private Function NAS(strNas As String) As Boolean
Dim intCount As Integer Dim intEven As Integer Dim intOdd As Integer
intEven = 0 intOdd = 0 If (Len(strNas) <> 9) Or Not (IsNumeric(strNas)) Then NAS = False Exit Function End If
For intCount = 1 To 8 If (intCount Mod 2) = 0 Then If (Val(Mid(strNas, intCount, 1)) * 2) >= 10 Then intEven = intEven + ((Val(Mid(strNas, intCount, 1)) _ * 2) - 10) + 1 Else intEven = intEven + Val(Mid(strNas, intCount, 1)) * 2 End If Else intOdd = intOdd + Val(Mid(strNas, intCount, 1)) End If Next If Trim((Str((10 - ((intEven + intOdd) Mod 10)) Mod 10))) = _ Mid(strNas, 9, 1) Then NAS = True Else NAS = False End If
End Function
Starwing
-----Message d'origine-----
Bonjour Isabelle, Denis et Starwing,
Quel égoiste je suis... Merci beaucoup pour votre temps..
Voici le code de la fonction.....
Public Function NumberValidation(CodeNumber) As Boolean NumberValidation = False Dim E, i, SUBT, TOT, LAST
If (IsNumeric(CodeNumber)) And (Len(CodeNumber) > 8) And
(Len(CodeNumber) < 12) Then If (Len(CodeNumber) = 11) Then CodeNumber = Del(CodeNumber, 4, 1) CodeNumber = Del(CodeNumber, 7, 1) End If TOT = 0 For i = 1 To 8 E = Mid(CodeNumber, i, 1) If ((i Mod 2) = 0) Then SUBT = (E * 2) Else SUBT = E End If If (SUBT > 9) Then SUBT = Mid(SUBT, 1, 1) * 1 + Mid(SUBT, 2, 1) End If TOT = TOT + SUBT Next If (TOT > 9) Then LAST = (10 - ((Mid(TOT, 2, 1)))) Else LAST = (10 - ((Mid(TOT, 1, 1)))) End If If (LAST > 9) Then LAST = (Mid(LAST, 2, 1)) If Mid(CodeNumber, 9, 1) = Trim(LAST) Then NumberValidation = True Else NumberValidation = False End If Else NumberValidation = False End If End Sub
'procédure
NumberValidation = True Or False
End Function
Denis, j'ai inséré ce code à l'endroit où tu as écris 'procédure... J'espère avoir bien compris...
Par contre Excel me donne une erreur en disant Sub or Function not defined à la ligne
CodeNumber = Del(CodeNumber, 4, 1) En surlignant Del...