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

Krystell

XLDnaute Nouveau
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

  • Krystell06112012 revu1.xlsm
    23.4 KB · Affichages: 56

job75

XLDnaute Barbatruc
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

  • Krystell06112012 revu(1).xls
    51.5 KB · Affichages: 50

hoerwind

XLDnaute Barbatruc
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.
 

Krystell

XLDnaute Nouveau
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
 

Krystell

XLDnaute Nouveau
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
 

hoerwind

XLDnaute Barbatruc
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 !
 

job75

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

Bonsoir Krystell, salut hoerwind,

Je n'avais pas regardé votre macro :rolleyes:

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

  • Krystell06112012 revu(2).xls
    44 KB · Affichages: 40
Dernière édition:

Krystell

XLDnaute Nouveau
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
 

job75

XLDnaute Barbatruc
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

  • Krystell06112012 revu(3).xls
    43.5 KB · Affichages: 43
Dernière édition:

job75

XLDnaute Barbatruc
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

  • Krystell06112012 revu(4).xls
    44.5 KB · Affichages: 54
Dernière édition:

Krystell

XLDnaute Nouveau
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.
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 936
Membres
103 987
dernier inscrit
Doctami