Probleme de définition de formule en vba
Résolu/Fermé
A voir également:
- Probleme de définition de formule en vba
- Formule si et - Guide
- Excel mise en forme conditionnelle formule - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Formule excel moyenne - Guide
- Formule excel - Guide
1 réponse
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
Modifié par pijaku le 30/06/2011 à 10:59
Modifié par pijaku le 30/06/2011 à 10:59
Bonjour,
i étant une variable, il faut la "sortir" des guillemets. Comme ceci :
Juste au passage, et comme tu débutes autant prendre de bonnes habitudes, une variable doit être facilement compréhensible. Tu dois, juste à la lire, savoir à quoi elle correspond. Pour cela, il convient d'utiliser des variables d'au moins 3 caractères.
Un exemple :
Dim Lign As Integer, Col As Integer
est bien mieux que :
Dim i As Integer, j As Integer
Dans ton cas, j'utiliserais :
Bon je précise que je n'ai rien testé, c'est juste pour t'orienter...
EDIT : j'ai cru lire quelque part qu'il faut affecter un type systématiquement à chaque variable. La déclaration : Dim Lign, NbLign As Integer fait que Lign est déclaré comme variant et NbLign comme integer. Préférer : Dim Lign As Integer, NbLign As Integer
Si un pro pouvait confirmer...
Cordialement,
Franck P
i étant une variable, il faut la "sortir" des guillemets. Comme ceci :
ActiveCell.FormulaR1C1 = "=SUM(R[" & -i & "]C[-3]:R[-1]C[-3])"
Juste au passage, et comme tu débutes autant prendre de bonnes habitudes, une variable doit être facilement compréhensible. Tu dois, juste à la lire, savoir à quoi elle correspond. Pour cela, il convient d'utiliser des variables d'au moins 3 caractères.
Un exemple :
Dim Lign As Integer, Col As Integer
est bien mieux que :
Dim i As Integer, j As Integer
Dans ton cas, j'utiliserais :
Dim NbLign As Integer, Lign As Integer NbLign = Sheets("Test").Range("A3").End(xlDown).Row - 2 Lign = NbLign + 3 'au lieu de Range, je préfères Cell, mais c'est juste moi... Cells(Lign, 5).FormulaR1C1 = "=SUM(R[" & -NbLign & "]C[-3]:R[-1]C[-3])"
Bon je précise que je n'ai rien testé, c'est juste pour t'orienter...
EDIT : j'ai cru lire quelque part qu'il faut affecter un type systématiquement à chaque variable. La déclaration : Dim Lign, NbLign As Integer fait que Lign est déclaré comme variant et NbLign comme integer. Préférer : Dim Lign As Integer, NbLign As Integer
Si un pro pouvait confirmer...
Cordialement,
Franck P
30 juin 2011 à 11:03