XL 2010 Formule dans cellule -> formule VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

tchi456

XLDnaute Occasionnel
Bonjour,

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:="."

End Sub

Pouvez-vous m'aider?

Mes meilleures salutations,

Thierry
 
Solution
bon. alors. la subtilité est apparemment
quand tu veux ecrire la fonction texte DANS une formule, c'est pas "Format", mais "TEXT"

VB:
Sub test()
Dim formuletest As String
formuletest = "=text(B4,""aa"")&text(B4-DATE(year(B4),1,0),""000"")"
Range("E2").Formula = formuletest
End Sub
Bonjour vgendron,

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:="."

End Sub

Meilleures salutations,

Thierry
 
oui pardon. autre subtilité que j'ai oubliée: les " doivent etre doublés ""

pour anticiper un autre problème
la fonction TEXTE en vba s'appelle FORMAT
MAIS j'ignore pourquoi, ca ne passe pas: le résulat est "#NOM ?"

encore une subtilité que je n'ai pas encore identifiée
 
bon. alors. la subtilité est apparemment
quand tu veux ecrire la fonction texte DANS une formule, c'est pas "Format", mais "TEXT"

VB:
Sub test()
Dim formuletest As String
formuletest = "=text(B4,""aa"")&text(B4-DATE(year(B4),1,0),""000"")"
Range("E2").Formula = formuletest
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
16
Affichages
947
Réponses
3
Affichages
208
Retour