Impossible d'obtenir une formule dans cellule excel via Vba

Fermé
JPC63990 Messages postés 7 Date d'inscription mercredi 24 avril 2019 Statut Membre Dernière intervention 2 mai 2019 - 24 avril 2019 à 17:50
JPC63990 Messages postés 7 Date d'inscription mercredi 24 avril 2019 Statut Membre Dernière intervention 2 mai 2019 - 24 avril 2019 à 18:25
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 :

...
...
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...MERCI de votre aide.

Je vous donne les fonctions utilisées pour info :

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
A voir également:

1 réponse

JPC63990 Messages postés 7 Date d'inscription mercredi 24 avril 2019 Statut Membre Dernière intervention 2 mai 2019
24 avril 2019 à 18:25
Pour information chaine1 prends une valeur comme suit : "='04-2019'!G7"
0