impossible de mettre une formule dans une cellule en vba
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:
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:
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 |