EXCEL / VBA – Insérez les formules dynamicment dans les cellules

J'ai une table et le nombre de lignes qu'il possède est inconnu. Chaque fois que l'user saisit un élément dans la colonne A de ce tableau, je veux que les autres colonnes de la table se retrouvent dynamicment avec des formules qui font reference à l'élément qui vient d'être entré dans la colonne A.

Je ne veux pas simplement copyr la formule dans les colonnes B, C, D etc tout au long de ma feuille car le nombre de lignes dans la feuille est inconnu.

Existe-t-il un moyen efficace de le faire?

Mes tentatives d'écriture de code dans les events onCalculate et onChange dans VBA semblent très inefficaces ou entraînent des loops éternelles.

Si vous utilisez Excel 2007 ou Excel 2010, définissez votre gamme de list car une list le fera automatiquement!
La meilleure macro n'est pas une macro

Voici un exemple qui remplira les formules vierges en B, C et D chaque fois que votre sélection change:

Dans ThisWorkbook:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Dim oSh As Worksheet, oUsed As Range, oRng As Range Set oSh = Sh Set oUsed = oSh.UsedRange.Columns("B") 'only add to blank formulas Set oRng = oUsed.Find("", LookIn:=xlFormulas) Do While Not oRng Is Nothing 'B formula oRng.Offset(, 0).FormulaR1C1 = "=RC[-1] + 100" 'C formula oRng.Offset(, 1).FormulaR1C1 = "=RC[-1] + 100" 'D formula oRng.Offset(, 2).FormulaR1C1 = "=RC[-1] + 100" Set oRng = oUsed.Find("", oRng, xlFormulas) Loop End Sub 

Cela fonctionne sur chaque feuille de calcul dans le classur, vous voudrez peut-être tester la feuille dans laquelle vous vous trouvez.