Un numero automatique specialiser sur Excel
Je souhaite créer un numéro automatique sur VBA pour utiliser dans access. Et que le numéro soit fait sur un ensemble de nom et prénom existant. écrit deja dans des feuilles excel.
Private Sub Commande12_Click()
Dim strCode As String
Dim strPrefixe As String
' Vérifier que le nom et le prénom
' sont renseignés, puisqu'ils servent
' dans le préfixe de numérotation
If IsNull(Me.nom_personne) Or IsNull(Me.prenom_personne) Then
MsgBox "Le nom et le prénom doivent être renseignés !", vbExclamation
Cancel = True
Exit Sub
End If
' Préfixe à utiliser pour la numérotation
strPrefixe = UCase(Left(Me.nom_personne, 3) & Left(Me.prenom_personne, 3))
' Numérotation
If IsNull(Me.code_personne) Then
Me.code_personne = AutoNumber("Personne", "code_personne", strPrefixe, 4)
End If
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
End Sub
Private Sub Form_Load()
End Sub
et voici la fonction
Option Compare Database
Function AutoNumber( _
ByVal strTable As String, _
ByVal strField As String, _
Optional ByVal strFormat As String = "", _
Optional ByVal intDigits As Integer = 4)
' Quelques variables...
Dim varMarkers As Variant, varMark As Variant
Dim strCriteria As String
Dim strNum As String, lngNum As Long, strPart As String
' Quelques retraitements...
strField = "[" & strField & "]"
strFormat = Replace(strFormat, "'", "''")
' On cherche la valeur maximale déjà employée dans la table
strCriteria = strField & " LIKE '" & strFormat & "*'"
strNum = Nz(DMax(strField, strTable, strCriteria), "")
' On crée le nouveau numéro
lngNum = IIf(strNum = "", 1, Val(Mid(strNum, Len(strFormat) + 1)) + 1)
strFormat = strFormat & Format(lngNum, String(intDigits, "0"))
' Valeur finale
AutoNumber = strFormat
Exit Function
End Function
et voici le lien qui vous permettera de comprendre