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 :
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"
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
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
Partager