Vérification code Visual Basic

Bonjour,

Je souhaiterai avoir votre avis concernant un code Visual Basic,

J'ai dans le codage la ligne suivante :
Cells(i, 2) = Year(Date) & "_" & Month(Date) & "_" & i - 2

La problématique est que lorsque nous lançons la macro, celle-ci doit nous indiquer : 2022-2-569 (exemple)

2022 = l'année en cours
2 = le mois en cours
569 = n° d'incrémentation

Hors, le problème est qu'il m'indique systématiquement le mois de janvier (2022 -1 -569) et cela chaque mois)
J'arrive bientôt en février est je souhaiterai que ce problème soit résolu avant.

Je suis pas du tout expert dans ce domaine c'est pour cela que je fais appel à votre aide.
Vous en remerciant par avance

Cordialement
--
Laurent

Bonjour s.laurent80

Ou avez vu que le mois en cours de la date système est 2

A+

Bonjour BrunoM45,

Ce que j'ai indiqué est un exemple lorsque j'arriverai au mois de février.
Pour le moment, c'est bien 1 qu'il m'indique mais en prenant le fichier 2022, le chiffre 1 resté tout au long de l'année
Je voulais savoir s'il y avait une erreur dans le codage.
Merci

Re,

Ce n'était pas très explicite

Sinon, non il n'y a pas d'erreur dans le codage pour moi

Le 01/02/2023 vous aurez bien 2023-2-xxx

A+

Re,

La macro permet de créer en automatique une ligne à la suite des autres.
Est-ce qu'il est possible lors d'une mauvaise manipulation (suppression, forçage d'une cellule, ...) d'occasionner le fameux problème avec ce code ?
Je vous intègre l'intégralité du code :

ThisWorkbook.Sheets("DEM").Activate
ActiveSheet.Unprotect
If Year(Date) = annee Then
mois = Month(Date)
Else
mois = 1
End If

i = Range("A1").Value 'enregistre la valeur A2 sous i, permet de réduire le temps de calcul en ne repartant pas de 0 à chaque fois

While Cells(i, 2) <> "" 'cherche la première case vide
i = i + 1
Wend
'enregistre les valeurs de chaque variable dans la cellule correspondante de la feuille "DEM"
Cells(i, 3) = Projet
Cells(i, 5) = Date
Cells(i, 7) = QPL
Cells(i, 8) = PM
Cells(i, 9) = IPL
Cells(i, 10) = phase
Cells(i, 11) = Part
Cells(i, 12) = Drawing
Cells(i, 13) = Version
Cells(i, 14) = fe
Cells(i, 15) = testnb
Cells(i, 16) = cavity
Cells(i, 17) = prel
Cells(i, 18) = Presse
Cells(i, 19) = Mold
Cells(i, 20) = mouldingdate
Cells(i, 21) = Material
Cells(i, 22) = materialbatch
Cells(i, 23) = master
Cells(i, 24) = masternb
Cells(i, 25) = masterrate
Cells(i, 26) = Rebroye
Cells(i, 28) = QCP
Cells(i, 29) = Objective
Cells(i, 2) = Year(Date) & "_" & Month(Date) & "_" & i - 2

promis = Cells(i, 4).Value
demnb = Cells(i, 2).Value

Cells(2, 1) = i - 1
ActiveSheet.Protect
'Workbooks.Open Filename:="\\FRLTPVFS01\Apps$\excel\Template DEM.xlsm", ReadOnly:=True 'ouvre le template de DEM
'Sheets("DEM").Activate
'Cells(1, 13) = fe
'Cells(18, 5) = promis 'enregistre le numéro de projet
'Cells(18, 11) = Projet 'enregistre le nom du projet
'Cells(15, 5) = Drawing 'enregistre le numéro de plan
'Cells(25, 5) = Mold 'enregistre le numéro de moule
'Cells(23, 5) = cavity 'enregistre le nombre de cavités du moule
'Cells(15, 9) = Version 'enregistre la version du plan
'Cells(4, 13) = demnb 'enregistre le numéro de DEM
'Cells(26, 5) = mouldingdate 'enregistre la date d'essai
'Cells(24, 5) = Presse 'enregistre le numéro de la presse
'Cells(23, 10) = Material 'enregistre le type de matière
'Cells(24, 10) = materialbatch 'enregistre le n° de lot
'Cells(25, 10) = master 'enregistre le type de colorant
'Cells(26, 10) = masternb 'enregistre le n° de lot de colorant
'If masterrate = "" Then
' Cells(26, 13) = ""
'Else
' If masterrate <> "Integer" Then
' Cells(26, 13) = masterrate
' Else
' Cells(26, 13) = masterrate / 100 'enregistre le % de colorant dans la DEM
' End If
'End If

'Cells(25, 13) = Rebroye 'indique si il y a du rebroyé
'Cells(20, 8) = testnb
'Cells(19, 8) = QCP 'indique le nom du QPC
'Cells(12, 4) = QPL 'indique le n° de QPL concerné
'Cells(12, 13) = IPL
'Cells(12, 9) = PM
'Cells(15, 12) = Part 'indique le type de pièces
'Cells(8, 8) = Objective

'If phase Like "*NPI*" Then
' Cells(37, 5) = 2 'permet de cocher la case NPI
' Cells(37, 7) = phase 'copie la valeur phase dans la cellule G37
' Cells(37, 11) = cavity 'copie la valeur cavity dans la cellule K37
' Cells(37, 13) = prel 'copie la valeur prel dans la cellule M37
' Cells(37, 16) = "" 'efface la valeur de la cellule P37
'ElseIf phase Like "*control*" Then
' Cells(37, 5) = 1 'permet de cocher la case change
' Cells(32, 13) = prel 'copie la valeur prel dans la cellule M32
' Cells(32, 11) = cavity

'Else
' Cells(37, 5) = 3 'permet de cocher la case autre
' Cells(41, 7) = phase 'copie la valeur phase dans la cellule G41
' Cells(41, 13) = prel 'copie la valeur prel dans la cellule M41
' Cells(41, 11) = cavity
' Cells(37, 16) = "" 'efface la valeur de la cellule P37
'End If

Unload UserForm3

Application.ScreenUpdating = True

End Sub

Edit modo : merci de mettre le code entre balises SVP

MERCI

Rechercher des sujets similaires à "verification code visual basic"