créer un nouveau numéro en fonction du précédent

  • Initiateur de la discussion Initiateur de la discussion Krystell
  • Date de début Date de début

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 !

K

Krystell

Guest
Bonjour à tous,

Excusez moi pour le titre , je ne savais vraiment quoi mettre.

J'ai un fichier excel avec différentes feuilles qui sont créées au fur et a mesure quand je click sur un bouton de commande qui s'y trouve . Les feuilles sont renommées automatiquement avec les mois de l'année.
Mon problème: Je souhaiterais que lorsque je suis sur la feuille "JANVIER" et que je click sur mon bouton de commande pour créer la feuille "FÉVRIER" , automatiquement le 1er numéro dans la cellule D4 de la feuille "FÉVRIER"se crée aussi. Ce numéro est égal au dernier numéro utilisé sur la feuille "JANVIER" +1.

Exemple: Si le dernier numéro utilisé sur la feuille "JANVIER" est AB0020 , je souhaiterais que lorsque je crée la feuille "FÉVRIER" la cellule D4 porte automatiquement le numéro AB0021.

De même, s'il advient que le dernier numéro de la feuille "JANVIER" vienne a changer , que le 1er numéro de la feuille "FÉVRIER" qui a été déjà crée s'actualise automatiquement.

J’espère de tout coeur que quelqu'un m'aidera.

Je joins un fichier pour votre compréhension.

Merci
 

Pièces jointes

Re : créer un nouveau numéro en fonction du précédent

Bonsoir Krystell, bienvenue sur XLD,

Si les N° de pièce en feuille JANVIER 2012 sont toujours avec "AB" suivi de 5 chiffres :

Code:
Sub IncrementeCopie()
Dim W1 As Worksheet, W2 As Worksheet, a As String, F As String
Set W1 = Feuil6 'CodeName
Set W2 = Feuil7 'CodeName
a = W1.[D65536].End(xlUp)(0).Address
F = "=""AB""&TEXT(MID('" & W1.Name & "'!" & a & ",3,5)+1,""00000"")"
W2.[D24].End(xlUp)(2).Formula = F 'car il y a du texte en D24
End Sub
Dans la 2ème feuille je suis obligé de mettre [D24] puisqu'il y a du texte dans cette cellule.

Mais alors vous ne pouvez ajouter des données que jusqu'à D23...

Si vous voulez autre chose n'hésitez pas à revenir.

Fichier joint.

A+
 

Pièces jointes

Re : créer un nouveau numéro en fonction du précédent

Bonjour, salut job75,

C'est aussi faisable par formule, ... au cas où quelqu'un serait intéressé.
On pourrait même envisager que la ligne contenant la valeur "total" soit mobile, c'est à dire qu'il soit permis d'insérer des lignes au-dessus de celle-ci.
 
Re : créer un nouveau numéro en fonction du précédent

Bonjour hoerwind,

C'est aussi faisable par formule, ... au cas où quelqu'un serait intéressé.
On pourrait même envisager que la ligne contenant la valeur "total" soit mobile, c'est à dire qu'il soit permis d'insérer des lignes au-dessus de celle-ci.

Je suis intéressée.

Merci
 
Re : créer un nouveau numéro en fonction du précédent

Bonjour job75,

Je te dis déjà merci pour ton code.

Mais il y a un problème.

Le bouton de commande sur la feuille excel ne me permet plus de créer de nouvelles feuilles automatiquement , c'est a dire créer les feuilles "MARS", "AVRIL", et ainsi de suite.

Ce que je souhaiterais c'est de pouvoir créer les autres feuilles et au fur et a mesure créer le 1er numéro automatiquement sur la feuille nouvellement créée.

Par exemple je finis de renseigner la feuille "FEVRIER" et le dernier numéro est AB00050 lorsque je clique sur le bouton de commande, la feuille "MARS" est créée et le numéro AB00051 est aussi crée.

Si je finis de renseigner la feuille "MARS" et que le dernier numéro est AB00073 lorsque je clique sur le bouton de commande, la feuille "AVRIL" est créée et le numéro AB00074 est aussi crée.

Et ainsi de suite.

Tout en restant dans la logique que lorsque le dernier numéro de la feuille précédente est modifié la feuille qui suit se met a jour (comme tu l'as fait).

Merci
 
Re : créer un nouveau numéro en fonction du précédent

Re,

Il est toutefois bon de préciser deux petits points :

- Par formule il n'est pas possible de créer de nouvelles feuilles.
- Les noms des onglets doivent obligatoirement être reconnus par Excel, donc avec accents : FÉVRIER, AOÛT et DÉCEMBRE

En conclusion : par formule il n'y a moyen d'incrémenter d'une unité que le dernier code du mois précédent.
Est-ce que cela vaut quand même la peine d'écrire cette formule, qui ne sera pas simple à comprendre, alors que pour les autres points il faudra passer par une macro !
 
Re : créer un nouveau numéro en fonction du précédent

Bonsoir Krystell, salut hoerwind,

Je n'avais pas regardé votre macro 🙄

J'ai donc simplement ajouté ce code dans la macro NouveauMois :

Code:
Dim W As Worksheet
Set W = ActiveSheet
'-----
'Incrémente le dernier numéro
[D4] = "=""AB""&TEXT(MID('" & W.Name & "'!$D$23,3,5)+1,""00000"")"
Fichier (2).

Bonne nuit et A+
 

Pièces jointes

Dernière édition:
Re : créer un nouveau numéro en fonction du précédent

Bonjour job75,

Infiniment merci pour ton code . Il fonctionne très bien.

Mais si la ligne Total" passe a D25 plus rien ne va.

Serait il possible de revoir la formule pour qu'elle fonctionne toujours si la ligne "total" passe à D40 ou D70 ou D150 par exemple.
J'ai essayé de faire cette modification mais je n'y arrive vraiment pas.

Excuse moi de te prendre encore ton temps.

Merci
 
Re : créer un nouveau numéro en fonction du précédent

Bonjour Krystell,

Serait il possible de revoir la formule pour qu'elle fonctionne toujours si la ligne "total" passe à D40 ou D70 ou D150 par exemple.

Bien sûr, et il faut alors aussi modifier votre code pour vider les anciennes valeurs :

Code:
Dim W As Worksheet, NouveauMois As Date, lig As Long
Set W = ActiveSheet
'-----
'ligne de l'avant-dernière cellule
lig = Cells(Rows.Count, "D").End(xlUp)(0).Row
'-----
'Vider les anciennes valeurs
.Range("D4:F" & lig).ClearContents
'-----
'Incrémente le dernier numéro
[D4] = "=""AB""&TEXT(MID('" & W.Name & "'!$D$" & lig & ",3,5)+1,""00000"")"
Fichier (3).

A+
 

Pièces jointes

Dernière édition:
Re : créer un nouveau numéro en fonction du précédent

Re,

Un complément pour éviter de créer la feuille si elle a déjà été créée :

Code:
'Nom de la nouvelle feuille
NomFeuille = Application.Proper(Format(NouveauMois, "mmmm yyyy"))
'-----
On Error Resume Next
'Tester l'existence de la feuille
Sheets(NomFeuille).Activate
'Si elle n'existe pas, copier la feuille en fin de classeur
If Err Then .Copy After:=Sheets(Sheets.Count)
On Error GoTo 0
Fichier (4).

A+
 

Pièces jointes

Dernière édition:
Re : créer un nouveau numéro en fonction du précédent

Bonjour job75,

Merci, Merci, Merci,.......
Ton code marche parfaitement comme je l'avais souhaité .
Et merci pour le complément de code .

Mais comment fait on pour signaler au forum que notre problème a été résolu?.

Merci.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
8
Affichages
650
Retour