Petit Challenge VBA

belerofon

XLDnaute Occasionnel
Bonjour à tous,
Quelqu'un saurait il comment faire pour coder la problematique suivante sous VBA :
jusqu a present j utilisais un numero unique pour archiver mes dossier avec une incrémentation de 1 a chaque iteration... du style : 1 puis 2 , 3 etc...
A présent j'ai besoin d'un nouveau systeme d archivage plus complexe...
il se base sur 3 variables, une clé a 3 lettres en fonction d une ville, des deux derniers chiffres de l année et du numero de dossier...
un numero type ressemblerait donc a cela :
VRS-11-001 : ce qui representerait le dossier 001 de l année 2011 pour la commune VRS (versailles)
et pour corser le challenge, il faudrait qu en passant a l année 2012 la variable "dossier" repasse automatiquement a 001...
Biensur lors de la saisie d un nouveau dossier via un userform , le codage devra permettre l incrementation du numero de dossier uniquement (les trois derniers chiffres)

Merci à tous et que le meilleur reponde le plus vite... :)
J.
 

Pièces jointes

  • dossier.xls
    20 KB · Affichages: 72
  • dossier.xls
    20 KB · Affichages: 81
  • dossier.xls
    20 KB · Affichages: 83
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Petit Challenge VBA

Bonsoir beloforon, le fil

(re à messieurs Robert et Victor21 auxquels j'ajoute MJ13)


beloforon: il me semblait pourtant avoir compris dans un autre fil que tu avais pris connaissance de la charte ??

Tu as déjà oublié ??

L'est où le fichier exemple ?
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Petit Challenge VBA

Bonjour à tous

Merci à tous et que le meilleur reponde le plus vite... :)

Et ça nous rapporte quoi ? ;)

Peut être, qu'on prend le forum pour de la main-d'oeuvre pas cher (j'en ai vu quelques uns ces derniers temps :)).

Merci Belerofon (P....n, c'est dur à dire): Allez les petits, le fichier vient d'arriver. Maintenant, vous avez assez discuté, la pause est terminée. Tout le monde au boulot. Je n veux pas entendre une mouche pétée :eek:.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Petit Challenge VBA

Re

Ok j'ai vu Edith

Quelques précisions cependant
Ce que tu appelles un dossier, j'appelle (et d'autres avec moi) cela un classeur.
(Un dossier chez Windows , c'est un répertoire)
Tu parles d'userform ?
Il n'y en a pas dans ta PJ.
 

belerofon

XLDnaute Occasionnel
Re : Petit Challenge VBA

Staple,
le type de dossier que j evoquais dans mon exemple n est pas un classeur, mais un dossier professionnel a traiter (un ensemble d information relative a une demande), d ou l expression numero de dossier... Pour ce qui est de l userform , c est juste pour preciser la methode d obtention du resultat pour eviter que quelqu un me reponde qu il suffit de faire une concatenation de la valeur de differentes cellules... mais si c est reellement utile je peut rajouter un bouton ouvrant l userform
J.
 

Staple1600

XLDnaute Barbatruc
Re : Petit Challenge VBA

Re


Comme j'ai passé un peu de temps sur l'établi, je te livre ceci à titre d'exemple
(Pour te montrer que tu n'es pas obliger de stocker tes valeurs dans des cellules)

Code:
Sub b()
Dim t, tt, chaine  As String, x$, i
t = Array("Ablis", "Achères", "Aubergenville", "Bois d'Arcy", "Bonnière sur Seine", "Bréval", "Chanteloup les Vignes", "Chatou / Carrières", "Chevreuse", "Conflans Sainte Honorine", "Garancière", "Gargenville", "Houdan", "Houilles", "La Celle Saint Cloud", "Le Mesnil le Roi", "Le Vésinet", "Les Essarts le Roi", "Les Mureaux", "Limay", "Louvecienne", "Magnanville", "Magny les Hameaux", "Maison Laffite", "Marly le Roi", "Maule", "Maurepas", "Montesson", "Montfort l'Amaury", "Montigny le Bretonneux", "Plaisir", "Poissy", "Rambouillet", "Saint Arnoult en Yvelines", "Saint Germain en Laye", "Saint Leger en Yvelines", "Septeuil", "Vélizy", "Vernouillet", "Versailles", "Villepreux / Les Clayes sous Bois", "Viroflay")
tt = Array("ABL", "ACH", "AUB", "BOI", "BON", "BRE", "CLV", "CHA", "CHE", "CSH", "GRC", "GGV", "HOD", "HOI", "CSC", "MES", "VES", "ESS", "LMX", "LIM", "LOU", "MAG", "MLH", "MLF", "MAR", "MAL", "MPS", "MTS", "MOA", "MLB", "PLA", "PSY", "RAM", "STA", "SGL", "SLG", "SEP", "VLY", "VRN", "VRS", "CSB", "VIR")
Randomize
i = Int((Rnd * 999) + 1) 'utile simplement pour créer un exemple
x = t(Int((Rnd * UBound(t))) + 1)'utile simplement pour créer un exemple
chaine = tt(CLng(Application.Match(x, t)) - 1) & "-" & Right(Year(Now), 2) & "-" & Format(i, "000")
MsgBox x & vbCrLf & chaine
End Sub
Je laisse tester et voir si cela peut t'intéresser.

PS: As-tu regardé dans le forum si tu trouvais des discussions similaires à ta question ?
 
Dernière édition:

belerofon

XLDnaute Occasionnel
Re : Petit Challenge VBA

Merci Staple,
En fait le stockage de ces infos dans des cellules s explique de la facon suivante:
ce classeur est destine a etre utilisé par plusieurs casernes... chaque caserne le personnaliserait par le nom de sa ville d implentation via une liste deroulante... cela generera un numero de dossier propre a sa caserne ce qui permettra au service receptionnant les dossier (qui est une entite unique decentralisee) de pouvoir classer ces demandes par caserne emettrice.
De cette facon une fois la ville selectionnee lors de la premiere utilisation , il ne leur sera plus utile de reselectionner leur caserne a chaque nouvelle demande via l userform....
je sais pas si j ai ete assez clair... j ai fait de mon mieux apres 11h de garde sur l ordi...
Merci beaucoup de t etre penché sur mon probleme je vais aller tester ca de suite...
J.
 

Staple1600

XLDnaute Barbatruc
Re : Petit Challenge VBA

RE


Une suggestion:
Prends le temps de créer un fichier exemple plus conséquent (avec un userform déjà créé par exemple)
et qui illustre plus avant ton problème.
(En fait tu veux simplement générer des numéros de dossier et les incrémenter sans doublons)

PS: En plus cela me laissera à moi le temps d'aller éplucher mes légumes pour la soupe de ce soir.
 

Discussions similaires

Réponses
14
Affichages
712
H
Réponses
19
Affichages
6 K

Membres actuellement en ligne

Statistiques des forums

Discussions
312 677
Messages
2 090 825
Membres
104 677
dernier inscrit
soufiane12