Incrémentation automatique numéro adhérent dans une userform

Bonsoir,

Je viens vers vous car j'aurais besoin d'aide. Je me construis un fichier d'adhérents pour mon association afin de mettre aux clous "l'usine à gaz" que j'avais.

Je débute dans le langage VBA et le me suis aidé de pas mal de vidéos sur le net mais je ne trouve pas tout.

J'ai réussi à créer un numéro automatique en partant de 1, mais le numéro que je voudrais serait composé comme suit : FDA-2021-xxx

FDA étant le sigle de l'association, 2021 l'année d'adhésion (qui changerait donc chaque année), xxx le numéro automatique.

Je construis mon fichier au fur et à mesure et avant d'aller plus loin sur mon userform "modifier" je voudrais déjà résoudre ce souci.

Merci d'avance de votre aide.

Isa

Bonjour,

Voici une façon de procéder :

Sub test()

num_adherent = "FDA-2021-001" 'valeur de départ
nvnumero = split(num_adherent, "-")(2) + 1 'incrémentation 3è et dernière partie (2 car base 0) du numéro adhérent suivant le séparateur "-"
nvnum_adherent = "FDA-" & year(Date) & format(nvnumero, "000") 'reassemblage nv numero

end sub

Cdlt,

Bonsoir 3GB,

Merci de votre réponse, par contre je débute vraiment, à quel endroit est-ce que je dois placer cette commande ?

Cdt

En fait, c'était plutôt un exemple pour que vous ayez une idée de la façon d'incrémenter.

Mais je n'ai pas tenu compte du cas réel de votre fichier.

Déjà, il faut récupérer l'ancien numéro d'adhérent quelque part. Soit il est la valeur d'une textbox de l'userform par exemple, soit il est la valeur de la dernière ligne de votre colonne de numéros d'adhérents.

num_adherent = textbox1.value
'on envoie les infos de l'userform dans la base

(A noter que normalement, lors d'un clic sur un bouton, des infos, dont ce dernier numéro, seront transmises dans votre base).

Ensuite, pour l'incrémentation, c'est pareil.

Puis on va chercher à mettre sur numéro incrémenté quelque part, cette fois-ci, a priori dans la textbox1 :

textbox1.value = nvnum_adherent

Il n'y a pas assez de contexte pour que je parvienne facilement à en dire plus.

Cdlt,

Merci de vos précisions

bonjour,

A mon avis un tel numéro est une bonne occasion de se compliquer la vie... Puisque c'est un numéro 21001, 21002 puis l'an prochain 22001, 22002 te simplifiera bien des choses. Cette numérotation pourras tenir un siècle sans faillir... et tu n'auras pas de problème !

A+

Tu peux traiter le problème à l'aide d'un simple formule appliquée à la colonne A :

=SI([@Nom]<>"";CONCATENER("FDA-2021-";LIGNE()-1);"")

Chaque fois que tu entreras un nouveau nom, le n° d'adhérent s'affichera automatiquement.

Mais attention : il n'est jamais bon de donner des n° d'ordre non formatés. "1" n'est pas formaté alors que "00001" l'est. Naturellement si tu es certain que 3 chiffres (999 membres) suffiront, inutile de prendre un format plus grand que "001". Pourquoi ? Parce que si tu dois un jour exporter ton tableau (au format CSV par exemple) pour traiter les données avec un autre logiciel (MySQL par exemple), tu risques d'être confronté à un problème de classement alphanumérique complexe.

Merci Galopin01

Optimix, je préfère effectivement avoir "001" au lieu de "1". Pour avoir ça je les mets où les zéros ?

Bonjour,

Comme ceci :

=SI([@Nom]<>"";CONCATENER("FDA-2021-";TEXTE(LIGNE()-1;"000"));"")

Cdlt,

Si un maximum de 999 adhérents est suffisant, on modifie la formule comme suit :

=SI([@Nom]<>"";CONCATENER("FDA-2021-";DROITE(CONCATENER("00";LIGNE()-1);3));"")

A recopier vers le bas. Quand tu entreras par exemple un nom à la ligne 202, le n° FDA-2021-201 s'affichera automatiquement.

La solution de 3GB est encore plus simple.

Merci 3GB et Optimix ça marche bien et j'ai réussi à intégrer que ça prenne automatiquement en compte l'année d'adhésion.

Rechercher des sujets similaires à "incrementation automatique numero adherent userform"