Next Détail
TR(LR, 16) = TR(LR, 8) + TR(LR, 11)
TR(LR, 17) = TR(LR, 16) * 20 / 100
TR(LR, 18) = TR(LR, 16) + TR(LR, 17)
Next RefCmd
Private Sub Worksheet_Activate()
Dim Données As Collection, TR(), LR&, RefCmd As SsGr, Détail, PremièreLigne As Boolean
Set Données = Gigogne(TableUnique(Me.ListObjects(1), WshSuivCmd), 1)
'Set Données = Gigogne(TableUnique(Me, WshSuivCmd), 1)
ReDim TR(1 To Données.Count, 1 To 18)
For Each RefCmd In Données
LR = LR + 1
TR(LR, 1) = RefCmd.Id ' Identification de la commande
PremièreLigne = True
For Each Détail In RefCmd.Co
If Détail(0) = 0 Then
Rem. Report des infos manuelles de la ligne de facturation qui existait déjà. TR(LR, col. fact) = Détail(col. fact)
TR(LR, 9) = Détail(9)
TR(LR, 10) = Détail(10)
TR(LR, 11) = Détail(11)
TR(LR, 12) = Détail(12)
TR(LR, 13) = Détail(13)
TR(LR, 14) = Détail(14)
Else
If PremièreLigne Then
Rem. Reproduction des informations de la commande. TR(LR, col. fact) = Détail(col. commande)
TR(LR, 2) = Détail(2)
TR(LR, 3) = Détail(3)
TR(LR, 4) = Détail(4)
TR(LR, 5) = Détail(5)
TR(LR, 6) = Détail(6)
TR(LR, 7) = Détail(7)
PremièreLigne = False: End If
Rem. Cumul des montants de toutes les lignes de commande :
TR(LR, 8) = TR(LR, 8) + Détail(12)
TR(LR, 15) = DateSerial(Year(TR(LR, 13)), Month(TR(LR, 13)) + 1, 1) 'essaye arrondi 30 jour fin de mois
TR(LR, 16) = TR(LR, 8) + TR(LR, 11)
TR(LR, 17) = TR(LR, 16) * 20 / 100
TR(LR, 18) = TR(LR, 16) + TR(LR, 17)
End If: Next Détail, RefCmd
With Me.ListObjects("TblSuivisFacturation")
If LR < .ListRows.Count Then .ListRows(LR + 1).Range _
.Resize(.ListRows.Count - LR).Delete xlShiftUp
'.DataBodyRange.Resize(LR).Value = TR'pour recalculer la feuille complète
.DataBodyRange.Resize(LR, 18).Value = TR 'pour recalculer les 18première colonne
End With
End Sub
DatTrv = TR(LR, 13) + 30
TR(LR, 15) = DateSerial(Year(DatTrv), Month(DatTrv) + 1, 0)
À chaque ligne de commande ! Alors que pour toutes celles ci le but est de ne produire qu'une seule ligne de facturationje n'ai pas compris pourquoi c'était idiot de faire ca à chaque ligne
Private Sub Worksheet_Activate()
Dim Données As Collection, TR(), LR&, RefCmd As SsGr, Détail, PremièreLigne As Boolean
Dim DatTrv As Date
Set Données = Gigogne(TableUnique(Me.ListObjects(1), WshSuivCmd), 1)
'Set Données = Gigogne(TableUnique(Me, WshSuivCmd), 1)
ReDim TR(1 To Données.Count, 1 To 18)
For Each RefCmd In Données
LR = LR + 1
TR(LR, 1) = RefCmd.Id ' Identification de la commande
PremièreLigne = True
For Each Détail In RefCmd.Co
If Détail(0) = 0 Then
Rem. Report des infos manuelles de la ligne de facturation qui existait déjà. TR(LR, col. fact) = Détail(col. fact)
TR(LR, 9) = Détail(9)
TR(LR, 10) = Détail(10)
TR(LR, 11) = Détail(11)
TR(LR, 12) = Détail(12)
TR(LR, 13) = Détail(13)
TR(LR, 14) = Détail(14)
Else
If PremièreLigne Then
Rem. Reproduction des informations de la commande. TR(LR, col. fact) = Détail(col. commande)
TR(LR, 2) = Détail(2)
TR(LR, 3) = Détail(3)
TR(LR, 4) = Détail(4)
TR(LR, 5) = Détail(5)
TR(LR, 6) = Détail(6)
TR(LR, 7) = Détail(7)
PremièreLigne = False: End If
Rem. Cumul des montants de toutes les lignes de commande :
'Next Détail
DatTrv = TR(LR, 13) + 30
TR(LR, 15) = DateSerial(Year(DatTrv), Month(DatTrv) + 1, 0)
TR(LR, 16) = TR(LR, 8) + TR(LR, 11)
TR(LR, 17) = TR(LR, 16) * 20 / 100
TR(LR, 18) = TR(LR, 16) + TR(LR, 17)
'Next RefCmd
TR(LR, 8) = TR(LR, 8) + Détail(12)
End If: Next Détail, RefCmd
Option Explicit
Private Sub Worksheet_Activate()
Dim Données As Collection, TR(), LR&, RefCmd As SsGr, Détail, PremièreLigne As Boolean
Dim DatTrv As Date
Set Données = Gigogne(TableUnique(Me.ListObjects(1), WshSuivCmd), 1)
'Set Données = Gigogne(TableUnique(Me, WshSuivCmd), 1)
ReDim TR(1 To Données.Count, 1 To 18)
For Each RefCmd In Données
LR = LR + 1
TR(LR, 1) = RefCmd.Id ' Identification de la commande
PremièreLigne = True
For Each Détail In RefCmd.Co
If Détail(0) = 0 Then
Rem. Report des infos manuelles de la ligne de facturation qui existait déjà. TR(LR, col. fact) = Détail(col. fact)
TR(LR, 9) = Détail(9)
TR(LR, 10) = Détail(10)
TR(LR, 11) = Détail(11)
TR(LR, 12) = Détail(12)
TR(LR, 13) = Détail(13)
TR(LR, 14) = Détail(14)
DatTrv = TR(LR, 13) + 31
TR(LR, 15) = DateSerial(Year(DatTrv), Month(DatTrv) + 1, 0)
Else
If PremièreLigne Then
Rem. Reproduction des informations de la commande. TR(LR, col. fact) = Détail(col. commande)
TR(LR, 2) = Détail(2)
TR(LR, 3) = Détail(3)
TR(LR, 4) = Détail(4)
TR(LR, 5) = Détail(5)
TR(LR, 6) = Détail(6)
TR(LR, 7) = Détail(7)
PremièreLigne = False: End If
Rem. Cumul des montants de toutes les lignes de commande :
TR(LR, 8) = TR(LR, 8) + Détail(12)
TR(LR, 16) = TR(LR, 8) + TR(LR, 11)
TR(LR, 17) = TR(LR, 16) * 20 / 100
TR(LR, 18) = TR(LR, 16) + TR(LR, 17)
End If: Next Détail, RefCmd
With Me.ListObjects("TblSuivisFacturation")
If LR < .ListRows.Count Then .ListRows(LR + 1).Range _
.Resize(.ListRows.Count - LR).Delete xlShiftUp
'.DataBodyRange.Resize(LR).Value = TR'pour recalculer la feuille complète
.DataBodyRange.Resize(LR, 18).Value = TR 'pour recalculer les 18première colonne
End With
End Sub