Verrouiller le contenu d'une cellule

Fermé
Adeline - 25 mai 2020 à 11:04
 Adeline - 25 mai 2020 à 11:41
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

Utilisateur anonyme
25 mai 2020 à 11:20
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
via55 Messages postés 14498 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 novembre 2024 2 735
25 mai 2020 à 11:22
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
Ça fonctionne parfaitement merci ! Ça fait deux fois que Simba me vient en aide !
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 427
25 mai 2020 à 11:27
Bonjour

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

Cdlmnt
1
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