Augmenter chiffre de +1 chaque jour
Bonjour,
Je vais essayer d'expliquer ce que je souhaite faire.
J'ai un tableau qui dans lequel est exprimé les jours de stock et je souhaite que chaque jour cela augmente de 1. Dans la case F3 par exemple il y a le nombre 185 demain je voudrais que cela passe automatiquement à 186 et ainsi de suite pour toute la colonne.
Merci pour votre aide
Bonjour,
Voici une piste !
Le code est à mettre dans le module du classeur car procédure événementielle Workbook_Open() :
Private Sub Workbook_Open()
Dim Plage As Range
Dim Cel As Range
Dim Nom As Name
Dim LaDate As Date
Dim NBJour As Integer
On Error Resume Next
Set Nom = ThisWorkbook.Names("Ajout")
'si le nom n'existe pas, le crée et le rend invisible dans le gestionnaire
If Err.Number <> 0 Then
ThisWorkbook.Names.Add "Ajout", Date, False
Else
'sinon, récupère la date stockée dans le nom
LaDate = CDate(Right(Nom, Len(Nom) - 1))
'soustrait pour obtenir le nombre de jours à incrémenter (si l'ouverture n'a pas lieu tous les jours)
NBJour = Date - LaDate
'stocke la nouvelle date dans le nom
ThisWorkbook.Names.Add "Ajout", Date, False
End If
'si positif, incrémente toutes les cellules de la colonne F
If NBJour > 0 Then
With Worksheets("Feuil1"): Set Plage = .Range(.Cells(3, 6), .Cells(.Rows.Count, 6).End(xlUp)): End With
For Each Cel In Plage
Cel.Value = Cel.Value + NBJour
Next Cel
End If
'enregistre le classeur, attention, se doit être un .xlsm !
ThisWorkbook.Save
End Sub
Le code contrôle si le nom "Ajout" existe dans le classeur, si il n'existe pas, il est créé puis la date du jour y est stockée, le nom est invisible dans le gestionnaire. Si le nom existe, le code récupère la date qui y est stockée et la soustrait à la date du jour d'ouverture du classeur ensuite, si le résultat est positif, toute la colonne F est incrémenté du nombre de jours qui sépare la dernière ouverture de l'actuelle car si tu veux une incrémentation de 1 pour chaque jour, il faut prendre en compte les jours où le classeur peut ne pas être ouvert sinon, si tu veux incrémenter de 1 à l'ouverture sans tenir compte des jours qui séparent les ouvertures, il te suffit de modifier cette ligne de code :
Cel.Value = Cel.Value + NBJour
de cette façon :
Cel.Value = Cel.Value + 1
Tu n'auras pas le résultat le jour même, il te faudra attendre le lendemain mais pour que le nom soit créé, il te faut malgré tout fermer et ré ouvrir le classeur après que tu ais collé le code et enregistré en . xlsm !
Bonjour à tous,
Exemple :
Date init le 05/02/2019, en I3
Stock en F3 avec la formule =AUJOURDHUI()-I3
Le résultat évoluera avec la date du jour.
Cordialement.