Calculer un numerotation automatique avec des noms et prenom

Fermé
Huguo - 5 juil. 2017 à 15:44
 Utilisateur anonyme - 6 juil. 2017 à 18:59
Bonjour,
je suis entrain de créer une base la mais je souhaite crée un code qui me sort pour un ensemble de nom et de prénom, un numéro qui prend en compte les 3 premiers lettre du nom et les 3 premiers lettres du prénom et 4 chiffre derrière.
Merci d'avance.


3 réponses

yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
5 juil. 2017 à 17:22
bonjour, peux-tu donner quelques exemples de ce que tu veux obtenir?
ainsi qu'expliquer ce que tu va faire avec le code: l'insérer dans une requête, dans un rapport?
0
J'ai suivi une aide d'une autre forum mais on dirait qu'il son inactif il ne me réponds pas je vous envoie le lien maintenant et les étapes que j'ai suivi.
la 1ère étape c'est crée la fonction autonumber :
avec ce lien : http://grenier.self-access.com/access/tables-et-relations/numerotation-personnalisee/

Voici le 1er code je l'ai tester dans l'exemple du lien et tout fonctionne a merveille

' ---
' NUMEROTATION AUTOMATIQUE PERSONNALISEE
' ---
' Entrée : strTable <- Nom de la table.
' strField <- Nom du champ contenant le numéro
' strFormat <- Gabarit décrivant comment formater
' le numéro.
' intDigits <- Nombre de caractères pour le
' numéro proprement dit.
' dtDate <- Date de référence pour le calcul
' de l'année, du mois...
'
Function AutoNumber( _
ByVal strTable As String, _
ByVal strField As String, _
Optional ByVal strFormat As String = "", _
Optional ByVal intDigits As Integer = 4, _
Optional ByVal dtDate As Date = #1/1/100#)

' Quelques variables...
On Error GoTo AutoNumberErr
Dim varMarkers As Variant, varMark As Variant
Dim strCriteria As String
Dim strNum As String, lngNum As Long, strPart As String

' Quelques retraitements...
If dtDate = #1/1/100# Then dtDate = Now()
strField = "[" & strField & "]"
strFormat = Replace(strFormat, "'", "''")

' Marqueurs à remplacer
varMarkers = Array("YYYY", "YY", "Q", "MM", "WW", "DD")
For Each varMark In varMarkers
' Formater la date et l'injecter dans le template
strPart = Format(dtDate, varMark, vbMonday, vbFirstFourDays)
strFormat = Replace(strFormat, "[" & varMark & "]", _
Format(strPart, String(Len(varMark), "0")))
Next

' 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

AutoNumberErr:
MsgBox "Erreur : " & Err.Description, vbCritical
AutoNumber = ""
Exit Function
End Function

Et en deuxième (ou dernier) lieu j'ai cette partie la:

le lien : http://grenier.self-access.com/access/tables-et-relations/numerotation-personnalisee-variante-3/

et voici ce que j'ai
Private Sub Form_BeforeUpdate(Cancel As Integer)
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) Or IsNull(Me.Prénom) 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, 3) & Left(Me.Prénom, 3))

' Numérotation
If IsNull(Me.Id) Then
Me.Id = AutoNumber("tbl Personnes", "Id", strPrefixe, 3)
End If
End Sub

Mais je ne trouve pas le résultat.
Pour fini je souhaite automatisé le formulaire pour les numéros trouver se retrouve sur deux table différents.

Astuces pour m'aider vite fait : comme je suis pas douer en VBA : il suffit de créer une petite table contenant avec 3 noms et prénoms et un ID vide et essaie le code pour voir
0
Utilisateur anonyme > Huguo
Modifié le 6 juil. 2017 à 17:38
Le code que tu as mis ici se met sur un formulaire.

As tu créé les tables et le formulaire ?

Si oui, mets ta base en lien ici.

Aussi, tu n'as pas répondu à ma question d'hier : https://forums.commentcamarche.net/forum/affich-34705522-calculer-un-numerotation-automatique-avec-des-noms-et-prenom#2

A+
0
Utilisateur anonyme
5 juil. 2017 à 21:22
Salut,

4 chiffres liés au caractères précédant ou incrémentés quelque soit les caractères (nom prénom) ?

Si tu as :
Jean DUPONT
Jean DUPUIS
Marcel CERDAN

Tu souhaites :

DUPJEA0001
DUPJEA0002
CERMAR0003

ou

DUPJEA0001
DUPJEA0002
CERMAR0001

a+
0
Utilisateur anonyme
6 juil. 2017 à 18:59
Bon,

j'ai fait une base, dont voici le lien :
https://fromsmash.com/20af04d4-626c-11e7-830d-0a39043893bc

Le numéro (4 chiffres) s'incrémente par rapport au doublon 3 premières lettres du nom + 3 premières lettres prénom.

A te lire.

A+
0