Bonjour,

J'espère être dans le bon forum.
Je souhaite mettre une formule dans une cellule Excel en utilisant du code Vba.
Voici l'extrait de mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
... 
... 
With Worksheets(Tab_Annee(i)) ' Tab_Annee(i) contient par exemple 04-2019 (mois et année) 
.Activate 
End With 
... 
Saut_Ligne=3 
... 
... 
For i = 0 to max 
... 
... 
Select Case i 
Case Is = 0 ' premier mois 
Case Is = Max_Feuilles - 1 ' dernier mois 
Case Else ' les autres mois 
For l = Prem_Ligne To Ligne_Max 
chaine1 = "='" & CStr(Tab_Annee(i - 1)) & "'!" & CStr(ConvertToLetter(DDay_MoisPreced)) & l 
Worksheets(Tab_Annee(i)).Cells(AlphaColToNum(DDay_MoisEnCours), l).Formula = chaine1 
l = l + (Saut_Ligne - 1) 
Next l 
 
End Select 
... 
... 
Next i
Lorsque je mets un espion sur Worksheets(Tab_Annee(i)).Cells(AlphaColToNum(DDay_MoisEnCours), l).Formula, cela est bien égale à chaine1 (enfin le contenu) mais la formule ne s'inscrit jamais dans la cellule. J'y ai passé l'après-midi...Pour information chaine1 prends une valeur comme suit : "='04-2019'!G7"

MERCI de votre aide.

Je vous donne les fonctions utilisées pour info :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Function AlphaColToNum(Col) As Long 
AlphaColToNum = Range(Col & 1).Column 
End Function 
 
Function ConvertToLetter(iCol As Variant) As String 
Dim iAlpha As Integer 
Dim iRemainder As Integer 
iAlpha = Int(iCol / 27) 
iRemainder = iCol - (iAlpha * 26) 
If iAlpha > 0 Then 
ConvertToLetter = Chr(iAlpha + 64) 
End If 
If iRemainder > 0 Then 
ConvertToLetter = ConvertToLetter & Chr(iRemainder + 64) 
End If 
End Function