Remettre a zero des cellules

bonjour a tous et toutes

je cherche un moyen de remettre a 1 , les 2 cellules 5 e 6 de la colonne "L" a chaque changement d'année

la date au format "aujourdhui" est mise en "L1"

j'ai oublier de vous dire qu'une autre cellule dépends de ces numéros et contient la formule suivantes

==D8& "  N° " & TEXTE(L1;"aaaa - mm") & " - " & INDEX($L$5:$L$6;EQUIV(MINUSCULE(DROITE(D8;3));{"vis";"ure"};0))

en fait les cellules L5 et L6 sont les compteurs de N° de facture et devis

Pascal

Bonsoir,

Tu ne parles pas de procédure de changement d'année. Donc elle survient inopinément. Dans ces conditions, tu mets un fichier pour qu'on puisse voir ce qu'on fait.

bonjour MFerrand

exact je n'ai pas parler de changement d'année et c'est pourtant de cela qu'il s'agit

bon je vais te joindre le fichier en question

Pascal

Bonjour,

En utilisant le gestionnaire de noms, afin de mémoriser l'année de début, puis en l'incrémentant ensuite, peut-être?

Comme ceci :

Private Sub Workbook_Open()
Dim Nms As Name
Dim Flag As Boolean
For Each Nms In Names
    If Nms.Name = "annee" Then Flag = True: Exit For
Next Nms
If Not Flag Then ActiveWorkbook.Names.Add Name:="annee", RefersToR1C1:=Year(Date)
If Year(Date) <> [annee] Then
    frmFacture.Range("L5:L6").Value = 1
    ActiveWorkbook.Names.Add Name:="annee", RefersToR1C1:=Year(Date)
End If
End Sub

PS, les 1ères lignes pourraient être supprimées, si tu entres manuellement le nom qui va bien (annee), de façon manuelle...

Bon W-E (sous la grisaille, hélas....)

Le problème est simple. Rien n'indique qu'on change d'année. Il donc faut que le déclenchement intervienne au lancement de la confection d'un devis ou facture par rapport au précédent.

Tu supprimes la formule en L1. Tu fais mettre la date du jour par la proc. Nouvelle facture ou devis. Avant de chenger la date, il est alors possible de déterminer si l'on a changé d'année.

Mais une chose me gêne encore : je ne vois pas d'incrémentation de tes cellules L5 et L6. Il n'y a que l'instruction SaveSetting qui indiquerait d'ailleurs que tu n'utilise pas les cellules, sauf que les instructions de récupération sont désactivées...

Il y a apparemment un problème de choix de méthode, et j'ai des trous dans le maillage (mais je n'ai peut-être pas vu les éléments qui me manquent).

Cordialement

bonjour cousinhub

merci de ta réponse mais si je comprends les 1ère lignes que tu dits pouvoir etre supprimée si j'écris manuellement l'année sur la feuille

donc c'est de ceci que tu parles

Private Sub Workbook_Open()
    'Dim Nms As Name
    Dim Flag As Boolean
    'For Each Nms In Names
       ' If Nms.Name = "annee" Then Flag = True: Exit For
   ' Next Nms
    If Not Flag Then ActiveWorkbook.Names.Add Name:="annee", RefersToR1C1:=Year(Date)
    If Year(Date) <> [annee] Then
        frmFacture.Range("L5:L6").Value = 1
        ActiveWorkbook.Names.Add Name:="annee", RefersToR1C1:=Year(Date)
    End If
    End Sub

bon week-end a toi aussi avec le parapluie adéquate au temps actuel qui as fait fuir les derniers touristes,ce fut une semaine catastrophique question soleil

Pascal

Re-,

Euh, dans ce cas, il faut aussi supprimer la condition Flag....

Admettons que tu aies déjà entré un nom, ayant pour valeur l'année en cours, et nommé "annee"

Dans ce cas, tu n'as plus à rechercher si ce nom existe, et donc plus besoin de le créer....

Comme il existe, et qu'il a la valeur "2015", il ne va rien se passer, jusqu'au 01/01/2016....

A ce moment, les cellules vont revenir à 1, et le nom prendra la nouvelle valeur "2016"...

Et ainsi de suite....

Bonne soirée

Rechercher des sujets similaires à "remettre zero"