Impossible d'obtenir une formule dans cellule excel via Vba
JPC63990
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
JPC63990 Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
JPC63990 Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Impossible d'obtenir une formule dans cellule excel via Vba
- Formule si et excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Aller à la ligne dans une cellule excel - Guide
- Excel cellule couleur si condition texte - Guide