Bonsoir Dranreb et le forum,
Je passe aux surfaces des locaux selon leur usage. La surface des locaux et en col 25. Col32 est à Oui si la surface du local est à déduire de la surface globale des locaux. Col 27 est la liste des usages qui deviennent les titres des colonnes (DCols).
Par Usage, je calcule la surface des locaux avec :
For Each Détail In STATUT.Co
If Détail(32) <> "Oui" Then TS(L, C) = TS(L, C) + Détail(25)
Next Détail
Si la col32 est à Oui, la surface de la col25 n'est pas prise en compte.
Au niveau du site je calcule aussi la surface des locaux du site par :
TS(L, 10) = TS(L, 10) + SIT.Somme(25)
Ma question : A ce niveau là comment calculer TS(L,10) correctement en supprimant les surfaces de la col25 dont la col32 est à Oui sans créer une col supplémentaire pour traduire les Oui en surface ?
Une partie du code :
L = 1: Lo = 1: Ld = 1
For Each OP In Gigogne(PlgDon, 10, 1, 2, 8, ColTitre) 'OP/DR/SITE/BAT/STATUT
For C = 4 To CFin: TotOP(C) = 0: Next C
Lo = Lo + 1: TSop(Lo, 1) = "Total " & OP.Id
Ld = Ld + 1: TSdr(Ld, 1) = "OP " & OP.Id
For Each DR In OP.Co
For C = 4 To CFin: TotDR(C) = 0: Next C
For Each SIT In DR.Co
L = L + 1
TS(L, 1) = OP.Id
TS(L, 2) = DR.Id
TS(L, 3) = SIT.Id
TS(L, 4) = SIT.Count 'Nb BAT
For C = 4 To CFin: TOccS(C) = 0: TOccS(C) = 0: Next C
For Each BAT In SIT.Co
If Right$(BAT.Id, 1) = "0" Then TS(L, 5) = TS(L, 5) + 1
For Each STATUT In BAT.Co
C = DCols(STATUT.Id)
For Each Détail In STATUT.Co
'Calcul de la surface des locaux par usage sans prendre en compte les surfaces à déduire, col32 à Oui
If Détail(32) <> "Oui" Then TS(L, C) = TS(L, C) + Détail(25): Next Détail
NbD(C) = NbD(C) + STATUT.Count: Next STATUT
TS(L, 6) = TS(L, 6) + BAT.Count: Next BAT 'Nb lignes
TS(L, 8) = Empty: TS(L, 9) = Empty
TS(L, 10) = TS(L, 10) + SIT.Somme(25) 'Surface des locaux
'Comment supprimer de SIT.Somme(25) les surfaces des locaux dont col32 à Oui ?
For C = ColDép To ColDép + DCols.Count - 1: TS(L, ColDép + DCols.Count) = TS(L, ColDép + DCols.Count) + TS(L, C): Next C
For C = 4 To CFin: TotDR(C) = TotDR(C) + TS(L, C): Next C, SIT
Merci d'avance
KIM