J'ai une formule dans la cellule C4 pour pouvoir convertir une date en un numéro et je souhaiterais l'utiliser en VBA pour pouvoir double cliquer dans cette même cellule et faire la même opération. La cellule B4 contient la date du jour et la formule donne 22256 (pour la date du 13.09.2022).
Voici la formule en question: TEXTE(B4;"aa")&TEXTE(B4-DATE(ANNEE(B4);1;0);"000")
J'ai essayé ceci mais ça ne fonctionne pas:
Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ActiveSheet.Unprotect Password:="."
If Not Intersect(Target, [C4]) Is Nothing Then
Cancel = True
If Target = "" Then Target.Formula = TEXTE(B4;"aa")&TEXTE(B4-DATE(ANNEE(B4);1;0);"000")
Else
Target = ""
End If
End If
ActiveSheet.Protect Password:="."
pour faire simple: il faut écrire la formule en anglais (VBA est anglais) sous forme chaine de caractère
avec des subitilités telles que le ; devient une virgule
dim formule as string
formule="=laformule"
target.formula=formule
Merci pour vos conseils mais je n'y arrive toujours pas; ça bloque sur le "yy":
Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ActiveSheet.Unprotect Password:="."
If Not Intersect(Target, [C5]) Is Nothing Then
Cancel = True
If Target = "" Then
Dim formule As String Target.Formula = "=TEXT(C5,"yy")&TEXT(C5-DATE(YEAR(C5),1,0),"000")"
Target.Formula = formule
Else
Target = ""
End If
End If
ActiveSheet.Protect Password:="."