Microsoft 365 Créér un code avec un numéro chrono

oceanepla

XLDnaute Junior
Bonjour à tous,

J'aimerais créer un code à partir de deux cellules (une date : C18 et de trois caractères d'une cellule : C14 ) combinée avec un numéro chrono (numéro unique de remplissage de la cellule).
Forme du code : C14,C18, num chrono
Est -ce que quelqu'un sait faire svp?
Je pense qu'il faut passer en vba.

Merci d'avance
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Oceanepla,
Vous n'auriez pas un petit fichier test, ce serait plus simple.
Sinon, si date en C18,mot en C14 et num chrono en C20 alors une possibilité par formule :
VB:
=GAUCHE(C14;3)&TEXTE(C18;"jjmmaa")&C20
Par ex C14=ENTREE C18=10/05/2021 C20=123456789 alors Code=ENT100521123456789
 

oceanepla

XLDnaute Junior
Bonsoir Oceanepla,
Vous n'auriez pas un petit fichier test, ce serait plus simple.
Sinon, si date en C18,mot en C14 et num chrono en C20 alors une possibilité par formule :
VB:
=GAUCHE(C14;3)&TEXTE(C18;"jjmmaa")&C20
Par ex C14=ENTREE C18=10/05/2021 C20=123456789 alors Code=ENT100521123456789
Voici mon fichier, j'aimerais que lorsque qu'une action est saisie dans la Feuille saisie, un numéro unique lui soit attribuée à partir du département et de la date de création
(désolé mon fichier est pas encore top, j'essaie de retravailler mes macros)
 

Pièces jointes

  • Plan d'actions Proposition 3 v1-4 Océ.xlsm
    199.3 KB · Affichages: 9

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Vous pouvez essayer :
VB:
=GAUCHE(C14;3)&TEXTE(C22;"aammjj")
Ce qui, pour aujourd'hui avec le dpt DESC donnerait : DES210511
Vous noterez cependant que si le même jour vous initiez deux actions sur le même dpt alors il auront le même code.
Ce qui donnerait en fonction perso :
Code:
Function Codage(Dpt, Dat)
    Codage = Left(Dpt, 3) & Format(Dat, "yymmdd")
End Function
ou en VBA :
Code:
CodeGénéré = Left([C14], 3) & Format([C22], "yymmdd")

Addon :
Vous pourriez différencier deux actions le même jour même dpt en ajoutant :
VB:
N = Format(Application.CountIf(Sheets("PA Général").[H:H], [C14]), "00")
CodeGénéré = Left([C14], 3) & Format([C22], "yymmdd") & N
Ce qui pour DIT aujourd'hui donnerait : DIT21051105 puisqu'il y a 5 DIT dans la feuille PA Général.
 
Dernière édition:

oceanepla

XLDnaute Junior
Bonjour,
Vous pouvez essayer :
VB:
=GAUCHE(C14;3)&TEXTE(C22;"aammjj")
Ce qui, pour aujourd'hui avec le dpt DESC donnerait : DES210511
Vous noterez cependant que si le même jour vous initiez deux actions sur le même dpt alors il auront le même code.
Ce qui donnerait en fonction perso :
Code:
Function Codage(Dpt, Dat)
    Codage = Left(Dpt, 3) & Format(Dat, "yymmdd")
End Function
ou en VBA :
Code:
CodeGénéré = Left([C14], 3) & Format([C22], "yymmdd")

Addon :
Vous pourriez différencier deux actions le même jour même dpt en ajoutant :
VB:
N = Format(Application.CountIf(Sheets("PA Général").[H:H], [C14]), "00")
CodeGénéré = Left([C14], 3) & Format([C22], "yymmdd") & N
Ce qui pour DIT aujourd'hui donnerait : DIT21051105 puisqu'il y a 5 DIT dans la feuille PA Général.
Merci pour la réponse, je ne sais pas néanmoins où je dois insérer cette formule. Peux-tu m'aider?
Je ne suis pas très douée en VBA
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Un ex en PJ avec :
VB:
Sub GénérerCode()
    If [C14] <> "" And [C22] <> "" Then ' On génère un code que si une date et un dpt sont présent
        ' Nombre de dpt dans PA Général +1
        N = Format(1 + Application.CountIf(Sheets("PA Général").[H:H], Left([C14], 3) & "*"), "00")
        ' Génération du code
        [C20] = Left([C14], 3) & Format([C22], "yymmdd") & N
    End If
End Sub
J'utilise PA Général pour l'indice, sans savoir si cela est correct. A vous d'adapter.
 

Pièces jointes

  • Plan d'actions Proposition 3 v1-4 Océ (2).xlsm
    197.2 KB · Affichages: 5

oceanepla

XLDnaute Junior
Bonjour,
Un ex en PJ avec :
VB:
Sub GénérerCode()
    If [C14] <> "" And [C22] <> "" Then ' On génère un code que si une date et un dpt sont présent
        ' Nombre de dpt dans PA Général +1
        N = Format(1 + Application.CountIf(Sheets("PA Général").[H:H], Left([C14], 3) & "*"), "00")
        ' Génération du code
        [C20] = Left([C14], 3) & Format([C22], "yymmdd") & N
    End If
End Sub
J'utilise PA Général pour l'indice, sans savoir si cela est correct. A vous d'adapter.
C'est super merci bcp cela fonctionne, je suis contente
 

Discussions similaires

Réponses
17
Affichages
678

Statistiques des forums

Discussions
312 338
Messages
2 087 396
Membres
103 534
dernier inscrit
Kalamymustapha