Incrémentation

czac

XLDnaute Occasionnel
Bonjour,
Pouvez-vous m'aider? ci-joint un fichier où j aimerais que la colonne A (N° BL) s'incrémente automatiquement au fur et à mesure où on va à la ligne.
sur la ligne 2, colonne A par exemple:
- SXB reste figé
- HKG sont des lettres que je mettrais manuellement
- 7701 c'est le chiffre qui doit s'incrémenter
- /17 c'est l'année

c'est 1 tableau par an, donc pour 2018 par exemple, le numéro qui doit s'incrémenter est nouveau.
Je suppose qu'il faut donc que la ligne 2 on note manuellement le chiffre et après tout se fait automatiquement. mais comment ? :)
ensuite je pense qu'il faut peut-être faire 4 colonnes pour le BL? je sais pas....

j'espère avoir été le plus précis possible :) merci pour votre aide

cordialement
 

Pièces jointes

  • document.xlsx
    39 KB · Affichages: 29

job75

XLDnaute Barbatruc
Re,

Je n'aime pas trop la manière dont les noms des tableaux s'incrémentent, ceci va mieux :
Code:
Sub AnneeSuivante()
'se lance par les touches Ctrl+A
Dim nf$, num
nf = ActiveSheet.Name
If ActiveSheet.ListObjects.Count = 0 Or Not nf Like "####" Then Exit Sub
On Error Resume Next
Sheets(CStr(nf + 1)).Activate
On Error GoTo 0
'---création de l'année suivante---
If ActiveSheet.Name = nf Then
  num = Abs(Int(Val(InputBox("Entrez le premier numéro de l'année " & nf + 1 & " :"))))
  If num = 0 Then Exit Sub
  Application.ScreenUpdating = False
  Sheets.Add After:=Sheets(Sheets.Count)
  ActiveSheet.Name = nf + 1
  With Sheets(nf).ListObjects(1).Range.EntireColumn
    .Copy Columns(.Column)
    ActiveSheet.ListObjects(1).Name = "Tableau" & nf + 1 'nom du tableau mieux adapté...
    With ActiveSheet.ListObjects(1).DataBodyRange
      If .Rows.Count > 1 Then .Rows(2).Resize(.Rows.Count - 1).Delete xlUp
      .Value = ""
      .Cells(1) = "SXB***" & num & "/" & Right(nf + 1, 2)
      .Cells(1).Select
    End With
  End With
End If
End Sub
Fichier (2 bis).

A+
 

Pièces jointes

  • document(2 bis).xlsm
    38.5 KB · Affichages: 29

job75

XLDnaute Barbatruc
Re,

Si l'on veut imposer 4 chiffres au premier numéro :
Code:
'---création de l'année suivante---
If ActiveSheet.Name = nf Then
  Do
    num = InputBox("Entrez 4 chiffres :", "Création " & nf + 1, IIf(num = "", "0000", num))
    If num = "" Then Exit Sub
  Loop While Not num Like "####"
  '-----
Fichier (3).

A+
 

Pièces jointes

  • document(3).xlsm
    39 KB · Affichages: 24

czac

XLDnaute Occasionnel
Bonjour,

super, par contre est-il possible quand on créer une nouvelle année avec un numéro à 4 chiffres, qu'il y ai la possibilité de mettre tout de suite les 3 premières lettres? car là, ca me met 3 étoiles pour le 1er numéro.

merci beaucoup
 

job75

XLDnaute Barbatruc
Bonjour czac,

Quand on crée une nouvelle année on ne connaît pas forcément les lettres de la 1ère donnée, c'est pourquoi je mettais des astérisques.

On peut toujours ensuite supprimer cette ligne après l'entrée des vraies données.

Maintenant si vous préférez avoir une 2ème InputBox voyez ce fichier (4).

A+
 

Pièces jointes

  • document(4).xlsm
    39.5 KB · Affichages: 20

Discussions similaires

Réponses
22
Affichages
759

Statistiques des forums

Discussions
312 189
Messages
2 086 033
Membres
103 102
dernier inscrit
nath34490