Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

Dernière édition:
Re : Petit Challenge VBA

Re

mon but etant de trouver le moyen d implementer la colonne Dossier de mon tableau avec des numeros de dossiers du type : ACH-11-001 comme expliquer precedemment via un userform de creation de nouveau dossier

Le problème (comme souvent), c'est qu'il nous est diffcile de comprendre ce qu'est un dossier?

Ce serait bien de mettre un exemple sur ton fichier et pour le userform, comme dit JM, il faudrait en créer un sans code si tu ne sais pas coder (ce n'est pas très compliqué à faire) 🙂.
 
Re : Petit Challenge VBA

Staple,
En fait mon fichier est deja bien avancé et trop volumineux pour etre poste ici , sans compter les informations sensibles contenues dedans c est pourquoi je n avais pas poster de fichier suffisemment explicite...
Cependant ma garde prenant bientot fin, et etant donné le temps que tu m as deja accordé aujourd'hui , je ne veux pas trop abuser et preferes que tu t occuppes de la soupe du soir, question de priorité 😉
Merci pour tout mon ami...
J.
 
Re : Petit Challenge VBA

MJ13,
Promis j vais bosser sur un fichier exemple plus explicite prochainement... concernant le fameux "dossier" il est simplement composé de données diverses, l ensemble etant regroupé sous un numéro que l on souhaite unique et sans doublon, genere automatiquement pour eviter toute cagade 🙂
Si je focalise uniquement sur le probleme du numero de dossier c est que la gestion et le traitement de toutes les autres données du "dossier" est deja finalisée.
J.
 
Re : Petit Challenge VBA

Re

Je plussoie aux propos de MJ13
Il suffit d'un fichier exemple simplifié sans données confidentielles (la coutume sur le forum est de ne jamais poster un fichier original mais toujours un fichier exemple qui illustre et résume le problème rencontré)

Sur ce , je quitte mon clavier pour l’économe (dommage qu'il existe pas de macro pour éplucher les légumes 😉 )

Je reviendrai voir ta nouvelle pièce jointe plus tard.
 
Dernière édition:
Re : Petit Challenge VBA

Voila de quoi (j espere) rejouir Staple... j ai essayé de faire un fichier exemple au plus vite pour illustrer un peu mieux mon souci, avant que sa soupe soit froide 🙂))
bon le userform est laid mais c est pas le propos 🙂

L'idée étant toujours celle exposée plus haut...que j ai meme rappeler dans l exemple 😉
 

Pièces jointes

Re : Petit Challenge VBA

Re

Essayes le code ci-dessous (à mettre dans ton Userform)

Avant de tester, il faut effacer tout ce qu'il y a dans la plage J3:N500 (je vois large)
Code:
Public Num As Long

Private Sub ComboBox2_Change()
TextBox5 = ComboBox1 & "-" & Month(CDate(TextBox2)) & Format(Num + 1, "-000")
End Sub
Private Sub CommandButton1_Click()
With [J65533].End(xlUp)(2)
.Value = TextBox5
.Offset(, 1) = CDate(TextBox2)
.Offset(, 2) = ComboBox1
.Offset(, 3) = ComboBox3
.Offset(, 4) = ComboBox2
    With .Resize(, 5)
        .Borders.LineStyle = xlContinuous
        .HorizontalAlignment = xlCenter
    End With
End With
End Sub
Code:
Private Sub UserForm_Initialize()
'entre la date du jour
TextBox2.Value = Date
Num = Val(Right([J65536].End(xlUp), 3))
End Sub
PS: Test Ok chez moi donc en suivant les indications de mon message, cela devrait fonctionner aussi chez toi.

[avis personnel]
belorofon
Ne penses-tu pas qu'il aurait été plus judicieux de joindre ta dernière pièce jointe dés ton premier message ?
On aurait gagné du temps et économiser des posts 🙄
[/avis personnel]
 
Dernière édition:
Re : Petit Challenge VBA

Staple,
oui tu as parfaitement raison j avoue... je le ferais pu promis 🙂
par contre ton code marche bien sauf que au lieu que le code 3 lettres debutant le numero de dossier soit celui de la commune, c est celui du grade qui s affiche...
Je sais d ou ca vient... tu as entre dans le code de prendre la valeur de combobox2 alors qu en fait, il faut faire un recherchv de A1:B43 de l onglet feuil1 ... mais ca je sais pas comment l ecrire en VB... :s
Sinon merci de ta precieuse aide l ami...
 
Re : Petit Challenge VBA

Bonjour à tous,

@ belerofon : tu as plus de chance que moi aujourd'hui, où tu as monopolisé tout le monde sur ton pb, car je n'est toujours pas ma solution, pour les listes de validation dynamique sur une combobox.....
j'en ai besoin pour notre outils, et pour un autre truc.

Bonne fin de WE à tous.
 
Re : Petit Challenge VBA

Re

Désolé pour la petite erreur

Voila c'est réparé
Code:
Private Sub ComboBox2_Change()
Dim CodeVille
CodeVille = WorksheetFunction.VLookup([D2], [Villes], 2, 0)
TextBox5 = CodeVille & "-" & Month(CDate(TextBox2)) & Format(Num + 1, "-000")
End Sub
Il faut bien sur nommer la plage A1:B42 cvilles avec Insertion/Noms/Définir pour que cela fonctionne.

Pour être plus secure, modifies aussi comme suit
Code:
Private Sub UserForm_Initialize()
Dim plg As Range
Set plg = Range("A1:B42"): plg.Name = "Villes"
'entre la date du jour
TextBox2.Value = Date
Num = Val(Right([J65533].End(xlUp), 3))
End Sub

J'ai ajouté modifié la Données/Validation (sur la cellule D2) en utilisant un autre nom (pour la plage A1:A42)

Je te laisse tester (normalement cela devrait être bon cette fois)
 
Dernière édition:
Re : Petit Challenge VBA

Staple,
Bon sang tu m'as précédé d'un souffle... A force de bidouiller ca commence a rentrer, j etais a deux doigts de le réussir aussi a force de chercher dans le forum aussi j avoue...
Maintenant me reste pu qu a trouver le moyen de faire repartir les trois derniers chiffres du numero à 001 lors du passage a l année suivante...
Merci pour ta perseverance... j espere qu Hypo78 va pas me tuer de te monoppolyser :s
J.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
752
  • Question Question
Microsoft 365 VBA sur outlook
Réponses
14
Affichages
1 K
T
  • Question Question
Réponses
125
Affichages
14 K
G
  • Question Question
Réponses
1
Affichages
803
Grouchet
G
N
Réponses
6
Affichages
702
A
  • Question Question
Réponses
1
Affichages
1 K
D
Réponses
17
Affichages
7 K
drum7917
D
T
Réponses
11
Affichages
2 K
J
Réponses
15
Affichages
2 K
J
Réponses
7
Affichages
45 K
J
Réponses
7
Affichages
1 K
J
T
Réponses
10
Affichages
5 K
toinish
T
Retour