Bonjour,
Je voudrais faire une boucle pour écrire une formule dans chaque cellule d'un tableau (chaque formule étant différente). La formule utilise SOMME.SI.ENS() de excel.
Voici le code que j'ai essayé, sans succès
Je pourrai remplir le tableau directement en enlevant la formule et en mettant à la place une macro qui marcherait mais y a 2 contraintes :
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 Sub RempliTablo() ' Ecrit les formules sur la page excel directement ' Ces formules iront chercher les références des différentes plages. Dim Lig As Integer, Sh As Sheets Set Sh = Sheets("BDD_matériels") Lig = Sheets("BDD_matériels").Range("A10000").End(xlUp).Row With Range("tab_usages_contrats") For i = 1 To Nbre_contrats ' nbre_contrats et nbre_usages sont des variables globales (Integer) For j = 1 To Nbre_usages .Cells(i + 1,j+1).Formulalocal=" _ =somme.si.ens("Sh.range(cells(2, 17), cells(lig, 17)) & ";" _ & Sh.Range(Cells(2, 6),cells(lig, 6)) & ";" & .Cells(i+1, 1) _ & ";" & Sh.Range(cells(2, 3), cells(lig, 3)) & ";" & .Cells(1, j+1) & ")" Next j Next i End With End Sub
1- La taille du tableau n'est pas fixe (il y a "nbre_contrats"+1 lignes et "nbre_contrats"+1 colonnes)
2- Les données qui se trouvent dans la feuille "BDD_matériels" peuvent changer, et le tableau doit se remplir automatiquement à ce moment là.
Vu que l'utilisation de formules marche bien pour ce cas là, je me suis un peu renseigné et j'ai trouvé "formulalocal" (qui a l'avantage de pas avoir à changer de langage par rapport à "formula").
Mais ça coince et j'arrive pas à bien l'utiliser.
Merci d'avance pour votre aide !
Renardor
Partager