Verrouiller le contenu d'une cellule

Adeline -  
 Adeline -
Bonjour,

Dans mon facturier excel j'ai la formule suivante pour le numéro de facture

=TEXTE(AUJOURDHUI();"aaaammjj")&"-0" & LIGNE()-54

Cela me donne quelque chose comme 20200525-014. Cependant, comme vous pouvez vous en douter les numéros des factures précédentes changent dès qu'une journée passe. Ce qui rend compliquer le suivi. pour le moment j'efface la formule d'une cellule une fois qu'une facture est arrêtée, et je remplace le contenu de la cellule par le numéro de facture.

Mais je me demandais s'il existe un moyen de conserver la formule et de la bloquer à une date précise ? Pour qu'elle ne bouge plus une fois qu'une facture est émise.

Merci d'avance !

Configuration: Windows / Chrome 81.0.4044.138

4 réponses

  1. Utilisateur anonyme
     
    Bonjour
    Il y a plusieurs façon de procéder, on peut même (avec un peut de boulot) faire une macro pour automatiser. Et puis cela dépend de la version d'excel...
    1) Faire un "copier"/"collage" - "spécial/option" - "valeur/1213" pour ne garder que 20200525-014
    2) Faire une macro du genre : (fait a la vas vite, désolé !)

    Sub Figer()
    '
    ' Figer la valeur de la formule "=TEXTE(AUJOURDHUI();"aaaammjj")&"-0" & LIGNE()-54"
    '
    ActiveCell.FormulaR1C1 = "=TEXT(TODAY(),""aaaammjj"")&""-0"" &ROW()-54"
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False
    End Sub


    Puis insérer un bouton personnalisé dans la barre de menu pour l'utiliser dans la cellule sélectionnée.

    Ce sont des pistes, mais perso je ferai une macro avec incrémentation automatique du n° de facture lors de chaque création, c'est une autre histoire !
    1
  2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour Adeline

    Il faut une macro pour figer la date
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Target.Value = Format(Date, "yyyymmdd") & "-0" & Target.Row - 54
    End Sub


    ALT+F11 pour ouvrir l'éditeur VBA
    Double-clic sur le nom de la feuille concernée dans l'arborescence
    Copier coller la macro dans la page et fermer l'éditeur

    Ensuite double-clic dans lac cellule ou inscrire le n°

    Cdlmnt
    Via
    1
    1. Adeline
       
      Ça fonctionne parfaitement merci ! Ça fait deux fois que Simba me vient en aide !
      0
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    Pour figer la date du jour, je pense qu'une macro est indispensable
    Un exemple
    https://www.cjoint.com/c/JEzjBYagOJB

    Cdlmnt
    1
  4. Adeline
     
    Merci à toutes et à tous.

    L'option collage spéciale fera l'affaire pour le moment.

    Je me doutais bien qu'il fallait faire un peu de VBA... je crois que c'est le moment de s'y mettre !

    Je vais tester vos solutions dans l'après-midi.

    Merci encore !
    0