Calcul matriciel avec collage formule

Bonjour à tous,

Je cherche à automatiser la création d'un tableau de suivi.

J'ai différent onglet de zone avec des items rattachés à des centres. Cette feuille est préalablement filtré par noms de centre.

Je souhaite sommer le temps et l'avancement des items des différents centres pour les afficher dans une feuille "global".

Pour cela j'imagine une variable avec une matrice pouvant contenir le temps et mes différents avancement.

Souhaitant que ce calcul soit automatique même si on ajoute un item dans un centre je pense qu'il faut coller la formule créer dans la matrice et là je suis perdu

Les exemples sont plus parlant que des longs discours, attaché un fichier qui fonctionne (Suivi Tx Lot 2) et l'autre à construire automatiquement (test2).

Si vous avez des meilleurs pistes pour le fonctionnement recherché je suis ouvert

2suivi-tx-lot-2.xlsx (138.65 Ko)
1test2.xlsx (328.28 Ko)

Bonjour,

Je constate que mon sujet ne vous fait pas rêver certainement trop de sujet qui s'emboite

J'ai mis de côté le calcul matriciel pour commencer par le début...

Voici ma problématique du jour, comment faire une somme sur des éléments qui varies. La solution envisagée est de regarder à un instant t les items qui appartiennent à un centre, de créer la formule à partir du premier item du centre et du dernier et de coller la formule dans une cellule. Ainsi l'utilisateur après pourra rajouter des items dans un centre en insérant une ligne avant la dernière ligne de ce centre.

Mon problème est de récupérer la 1er et dernière ligne des items rattachés au centre. A vrai dire pour la dernière ligne je dois pouvoir récupérer la variable de ma boucle mais je bloque sur la récupération de la 1er.

Sub sum()

Dim Wb_dep As String

Dim zone, centre As String

Dim i, e, p As Integer

Dim rg As Range

Wb_dep = ...

Sheets("Chantier Global").Select

For p = 13 To Workbooks(Wb_dep).Sheets("Chantier Global").Range("A65536").End(xlUp).Row

zone = Cells(13, 1)

centre = Cells(13, 2)

For i = 5 To Workbooks(Wb_dep).Sheets(zone).Range("A65536").End(xlUp).Row

If Cells(i, 2) = centre Then

Set rg = ActiveSheet.Range(Cells(), Cells())

Sheets("Chantier Global").Cells(p, 4).Formula = "=SUM(" & rg.AddressLocal & " )"

End Sub

Si quelqu'un pouvait m'aiguiller

J'ai finalement avancer avec un sommeprod, cela à bien fonctionner pour sommer des temps en recherchant le centre dans l'onglet de la zone approprié.

Par contre j'ai un problème pour sommer mes avancements. Et là je bloque...

"En manuel" j'ai cette formule pour le centre 1 =SOMMEPROD('P66'!H11:H18;'P66'!P11:P18)/SOMME('P66'!H11:H18)

"en automatique" =SOMMEPROD(('P66'!$B$5:$B$199='Chantier Global'!B17)*('P66'!H5:H199;'P66'!P5:P199)/SOMME('P66'!H5:H199))

qui me renvoi #valeur je ne comprends l'erreur pas de #valeur dans la zone de calcul et matrice de la même taille...

Sub sum()

Dim Wb_dep As String

Dim zone, centre As String

Dim i, e, p As Integer

Dim rg As Range

Wb_dep = ...

Sheets("Chantier Global").Select

For p = 13 To Workbooks(Wb_dep).Sheets("Chantier Global").Range("A65536").End(xlUp).Row

zone = Cells(p, 1)

centre = Cells(p, 2)

For i = 5 To Workbooks(Wb_dep).Sheets(zone).Range("A65536").End(xlUp).Row

If Cells(i, 2) = centre Then

Sheets("Chantier Global").Select

Cells(p, 4).Select

ActiveCell.FormulaR1C1 = _

"=SUMPRODUCT(('" & zone & "'!R5C2:R199C2='Chantier Global'!RC[-2])*('" & zone & "'!R5C7:R199C7))"

Cells(p, 6).Select

ActiveCell.FormulaR1C1 = _

"=SUMPRODUCT(('" & zone & "'!R5C2:R199C2='Chantier Global'!RC[-4])*(('" & zone & "'!R5C8:R199C8,'" & zone & "'!)/SUM('" & zone & "'R5C8:R199C8)))"

End If

Next i

Next p

End Sub

une idée ?

Bonjour,

Je n'arrive pas à me dépatouiller de ma formule avec sommeprod.

J'ai réussi à obtenir mon temps de prod par centre en recherchant le centre dans un onglet :

manuellement : =SOMME('P66'!G12:G19)

Avec la recherche du centre : =SOMMEPROD(('P66'!$B$5:$B$199='Chantier Global'!B14)*('P66'!$G$5:$G$199))

Par contre j'ai un #valeur! pour le calcul de mon % d'avancement de déroulage :

En manuel : =SOMMEPROD('P66'!H12:H19;'P66'!P12:P19)/SOMME('P66'!H12:H19)

En auto =SOMMEPROD(('P66'!$B$5:$B$199='Chantier Global'!B14)*('P66'!H5:H199;'P66'!P5:P199)/SOMME('P66'!H5:H199))

Et là je sèche, j'ai essayé avec un INDIRECT mais je n'arrive pas non plus.

Si une âme charitable passe par là, il aura toute mon estime.

3test2.xlsx (327.89 Ko)
Rechercher des sujets similaires à "calcul matriciel collage formule"