La modération vous a écrit: L terme Problème a été supprimé du titre car il n'apporte rien à la compréhension
Bonjour,
Le problème concerné est expliqué dans ce fil : https://forum.openoffice.org/fr/forum/v ... 38#p318538
Visiblement, suite aux mises à jour d'Open Office les macros n'ont pas suivies, il semble qu'elles n'adressent plus les données CA par client et CA par produit vers la feuille "filtres" ce qui provoque la disparition de deux des 4 graphiques disponibles d'ordinaire.
Ci dessous les deux pages il me semble, concernées, j'espère ne pas avoir fait d'erreur dans la manière de poster :
Pour le CA par client :
'(C) 2009 Jérôme Bourgeois - contact@xlinfo.fr '
Code : Tout sélectionner
REM ***** BASIC *****
option explicit
Sub ChiffreAffaireMensuel
dim Saisie as object, Factures as object, Declaration as Object
dim i as integer
Saisie = thisComponent.Sheets.getByName("Saisie")
Factures = thisComponent.Sheets.getByName("Factures")
Declaration = thisComponent.Sheets.getByName("Déclarations")
ThisComponent.LockControllers
'on commmence par tout effacer
for i = 15 to 26
Saisie.getcellrangebyname("Q" & i).value = 0
next i
Saisie.getcellrangebyname("Q35").value = 0
Declaration.getcellrangebyname("C3:F5").clearContents(com.sun.star.sheet.CellFlags.VALUE)
Declaration.getcellrangebyname("C7:F9").clearContents(com.sun.star.sheet.CellFlags.VALUE)
Declaration.getcellrangebyname("C11:F13").clearContents(com.sun.star.sheet.CellFlags.VALUE)
Declaration.getcellrangebyname("C15:F17").clearContents(com.sun.star.sheet.CellFlags.VALUE)
'et on incrémente les règlements
i=2
Do
select case Month(Factures.getcellrangebyname("M" & i).value)
case 1
Saisie.getcellrangebyname("Q15").value = Saisie.getcellrangebyname("Q15").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C3").value = Declaration.getcellrangebyname("C3").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D3").value = Declaration.getcellrangebyname("D3").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E3").value = Declaration.getcellrangebyname("E3").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F3").value = Declaration.getcellrangebyname("F3").value + Factures.getcellrangebyname("R" & i).value
case 2
Saisie.getcellrangebyname("Q16").value = Saisie.getcellrangebyname("Q16").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C4").value = Declaration.getcellrangebyname("C4").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D4").value = Declaration.getcellrangebyname("D4").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E4").value = Declaration.getcellrangebyname("E4").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F4").value = Declaration.getcellrangebyname("F4").value + Factures.getcellrangebyname("R" & i).value
case 3
Saisie.getcellrangebyname("Q17").value = Saisie.getcellrangebyname("Q17").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C5").value = Declaration.getcellrangebyname("C5").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D5").value = Declaration.getcellrangebyname("D5").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E5").value = Declaration.getcellrangebyname("E5").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F5").value = Declaration.getcellrangebyname("F5").value + Factures.getcellrangebyname("R" & i).value
case 4
Saisie.getcellrangebyname("Q18").value = Saisie.getcellrangebyname("Q18").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C7").value = Declaration.getcellrangebyname("C7").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D7").value = Declaration.getcellrangebyname("D7").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E7").value = Declaration.getcellrangebyname("E7").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F7").value = Declaration.getcellrangebyname("F7").value + Factures.getcellrangebyname("R" & i).value
case 5
Saisie.getcellrangebyname("Q19").value = Saisie.getcellrangebyname("Q19").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C8").value = Declaration.getcellrangebyname("C8").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D8").value = Declaration.getcellrangebyname("D8").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E8").value = Declaration.getcellrangebyname("E8").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F8").value = Declaration.getcellrangebyname("F8").value + Factures.getcellrangebyname("R" & i).value
case 6
Saisie.getcellrangebyname("Q20").value = Saisie.getcellrangebyname("Q20").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C9").value = Declaration.getcellrangebyname("C9").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D9").value = Declaration.getcellrangebyname("D9").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E9").value = Declaration.getcellrangebyname("E9").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F9").value = Declaration.getcellrangebyname("F9").value + Factures.getcellrangebyname("R" & i).value
case 7
Saisie.getcellrangebyname("Q21").value = Saisie.getcellrangebyname("Q21").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C11").value = Declaration.getcellrangebyname("C11").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D11").value = Declaration.getcellrangebyname("D11").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E11").value = Declaration.getcellrangebyname("E11").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F11").value = Declaration.getcellrangebyname("F11").value + Factures.getcellrangebyname("R" & i).value
case 8
Saisie.getcellrangebyname("Q22").value = Saisie.getcellrangebyname("Q22").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C12").value = Declaration.getcellrangebyname("C12").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D12").value = Declaration.getcellrangebyname("D12").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E12").value = Declaration.getcellrangebyname("E12").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F12").value = Declaration.getcellrangebyname("F12").value + Factures.getcellrangebyname("R" & i).value
case 9
Saisie.getcellrangebyname("Q23").value = Saisie.getcellrangebyname("Q23").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C13").value = Declaration.getcellrangebyname("C13").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D13").value = Declaration.getcellrangebyname("D13").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E13").value = Declaration.getcellrangebyname("E13").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F13").value = Declaration.getcellrangebyname("F13").value + Factures.getcellrangebyname("R" & i).value
case 10
Saisie.getcellrangebyname("Q24").value = Saisie.getcellrangebyname("Q24").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C15").value = Declaration.getcellrangebyname("C15").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D15").value = Declaration.getcellrangebyname("D15").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E15").value = Declaration.getcellrangebyname("E15").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F15").value = Declaration.getcellrangebyname("F15").value + Factures.getcellrangebyname("R" & i).value
case 11
Saisie.getcellrangebyname("Q25").value = Saisie.getcellrangebyname("Q25").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C16").value = Declaration.getcellrangebyname("C16").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D16").value = Declaration.getcellrangebyname("D16").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E16").value = Declaration.getcellrangebyname("E16").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F16").value = Declaration.getcellrangebyname("F16").value + Factures.getcellrangebyname("R" & i).value
case 12
if Factures.getcellrangebyname("M" & i).value <> 0 then 'par defaut une valeur nulle donne comme mois 12
Saisie.getcellrangebyname("Q26").value = Saisie.getcellrangebyname("Q26").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C17").value = Declaration.getcellrangebyname("C17").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D17").value = Declaration.getcellrangebyname("D17").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E17").value = Declaration.getcellrangebyname("E17").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F17").value = Declaration.getcellrangebyname("F17").value + Factures.getcellrangebyname("R" & i).value
else
if Factures.getcellrangebyname("M" & i).string <> "Annulée" then
Saisie.getcellrangebyname("Q35").value = Saisie.getcellrangebyname("Q35").value + Factures.getcellrangebyname("D" & i).value
end if
end if
end select
i = i + 1
loop until Factures.getcellrangebyname("A" & i).string = ""
ThisComponent.UnLockControllers
End Sub
Sub ChiffreAffaireClient
'on Error resume next
dim Clients as object, Factures as object, Rapports as Object, Filtres as Object
dim coordonnees(0 To 1) as New com.sun.star.table.CellRangeAddress
Dim Recherche as object, Trouve as object
dim nbclients as integer,n as integer, i as integer, j as integer
Clients = thisComponent.Sheets.getByName("Clients")
Factures = thisComponent.Sheets.getByName("Factures")
Rapports = thisComponent.Sheets.getByName("Rapports")
Filtres = thisComponent.Sheets.getByName("Filtres")
ThisComponent.LockControllers
nbclients= CompterLignes("Clients")
for n = 1 to nbclients -1
Clients.getcellrangebyname("J" & n +1).value = 0
next n
for n = 1 to nbclients -1
Recherche = Factures.createSearchDescriptor()
With Recherche
.SearchString = Clients.getcellrangebyname("A" & n + 1).string
.SearchWords = True
End With
Trouve = Factures.findFirst(Recherche)
do while not(isnull(Trouve))
i = Trouve.cellAddress.row
if Factures.getcellrangebyname("M" & i + 1).value <> 0 then
Clients.getcellrangebyname("J" & n + 1).value = Clients.getcellrangebyname("J" & n + 1).value + Factures.getcellrangebyname("D" & i + 1).value
end if
Trouve = Factures.findNext(Trouve, Recherche)
loop
next n
ThisComponent.UnLockControllers
Deproteger("Clients")
ThisComponent.DatabaseRanges.getByName("plageClients").refresh()
'on met à jour les graphiques de la page rapports
Do
j = j + 1
loop until Filtres.getcellrangebyname("B" & j).string = ""
Deproteger("Filtres")
if j > 2 then
coordonnees(0).sheet = 11
coordonnees(0).startColumn = 1
coordonnees(0).startRow= 0
coordonnees(0).endColumn = 1
coordonnees(0).endRow= j - 2
coordonnees(1).sheet = 11
coordonnees(1).startColumn = 10
coordonnees(1).startRow= 0
coordonnees(1).endColumn = 10
coordonnees(1).endRow= j - 2
Rapports.charts(3).setranges(coordonnees)
Rapports.charts(3).HasColumnHeaders = true
Rapports.charts(3).HasRowHeaders = true
Rapports.charts(3).embeddedObject.Title.string = "C.A. par client"
Rapports.charts(3).embeddedObject.Legend.Alignment = com.sun.star.chart.ChartLegendPosition.LEFT
end if
verrouillerPlage("Filtres","B1:K"&j)
Proteger("CLients")
Proteger("Filtres")
End Sub
Sub ChiffreAffaireArticle
'on Error resume next
dim Produits as object, Prestations as object, Rapports as object, Filtres as Object
dim coordonnees(0 To 1) as New com.sun.star.table.CellRangeAddress
Dim Recherche as object, Trouve as object
dim nbproduits as integer,n as integer, i as integer, j as integer
Produits = thisComponent.Sheets.getByName("Produits")
Prestations = thisComponent.Sheets.getByName("Prestations")
Rapports = thisComponent.Sheets.getByName("Rapports")
Filtres = thisComponent.Sheets.getByName("Filtres")
ThisComponent.LockControllers
nbproduits= CompterLignes("Produits")
for n = 1 to nbproduits -1
Produits.getcellrangebyname("F" & n +1).value = 0
Produits.getcellrangebyname("G" & n +1).value = 0
next n
for n = 1 to nbproduits -1
Recherche = Prestations.createSearchDescriptor()
With Recherche
.SearchString = Produits.getcellrangebyname("A" & n + 1).string
.SearchWords = True
End With
Trouve = Prestations.findFirst(Recherche)
do while not(isnull(Trouve))
i = Trouve.cellAddress.row
if Prestations.getcellrangebyname("E" & i + 1).string = "oui" then
Produits.getcellrangebyname("F" & n + 1).value = Produits.getcellrangebyname("F" & n + 1).value + Prestations.getcellrangebyname("C" & i + 1).value
end if
Trouve = Prestations.findNext(Trouve, Recherche)
loop
Produits.getcellrangebyname("G" & n + 1).value = Produits.getcellrangebyname("D" & n + 1).value * Produits.getcellrangebyname("F" & n + 1).value
next n
ThisComponent.UnLockControllers
Deproteger("Produits")
ThisComponent.DatabaseRanges.getByName("plageProduits").refresh()
'on met à jour les graphiques de la page rapports
Do
j = j + 1
loop until Filtres.getcellrangebyname("M" & j).string = ""
Deproteger("Filtres")
if j > 2 Then
coordonnees(0).sheet = 11
coordonnees(0).startColumn = 12
coordonnees(0).startRow= 0
coordonnees(0).endColumn = 12
coordonnees(0).endRow= j - 2
coordonnees(1).sheet =11
coordonnees(1).startColumn = 17
coordonnees(1).startRow= 0
coordonnees(1).endColumn = 18
coordonnees(1).endRow= j - 2
Rapports.charts(2).setranges(coordonnees)
Rapports.charts(2).HasColumnHeaders = true
Rapports.charts(2).HasRowHeaders = true
Rapports.charts(2).embeddedObject.Title.string = "C.A. par produit"
Rapports.charts(2).embeddedObject.Diagram.HasSecondaryYAxis = true
Rapports.charts(2).embeddedObject.Diagram.GroupBarsPerAxis = false
Rapports.charts(2).embeddedObject.firstDiagram.CoordinateSystems(0).ChartTypes(0).Dataseries(0).AttachedAxisIndex=0
Rapports.charts(2).embeddedObject.firstDiagram.CoordinateSystems(0).ChartTypes(0).Dataseries(1).AttachedAxisIndex=1
Rapports.charts(2).embeddedObject.Legend.Alignment = com.sun.star.chart.ChartLegendPosition.RIGHT
Filtres.getCellRangeByName("filtreProduits").cellBackColor=RGB(255,255,255)
end if
verrouillerPlage("Filtres","M1:S"&j)
Proteger("Produits")
Proteger("Filtres")
End Sub
Sub recap
incrementerPlage("plageProduits","Produits")
incrementerPlage("plageClients","Clients")
ChiffreAffaireMensuel
ChiffreAffaireClient
ChiffreAffaireArticle
End sub
et pour le CA par produit :
'(C) 2009 Jérôme Bourgeois - contact@xlinfo.fr '
Code : Tout sélectionner
REM ***** BASIC *****
option explicit
Sub ChiffreAffaireMensuel
dim Saisie as object, Factures as object, Declaration as Object
dim i as integer
Saisie = thisComponent.Sheets.getByName("Saisie")
Factures = thisComponent.Sheets.getByName("Factures")
Declaration = thisComponent.Sheets.getByName("Déclarations")
ThisComponent.LockControllers
'on commmence par tout effacer
for i = 15 to 26
Saisie.getcellrangebyname("Q" & i).value = 0
next i
Saisie.getcellrangebyname("Q35").value = 0
Declaration.getcellrangebyname("C3:F5").clearContents(com.sun.star.sheet.CellFlags.VALUE)
Declaration.getcellrangebyname("C7:F9").clearContents(com.sun.star.sheet.CellFlags.VALUE)
Declaration.getcellrangebyname("C11:F13").clearContents(com.sun.star.sheet.CellFlags.VALUE)
Declaration.getcellrangebyname("C15:F17").clearContents(com.sun.star.sheet.CellFlags.VALUE)
'et on incrémente les règlements
i=2
Do
select case Month(Factures.getcellrangebyname("M" & i).value)
case 1
Saisie.getcellrangebyname("Q15").value = Saisie.getcellrangebyname("Q15").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C3").value = Declaration.getcellrangebyname("C3").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D3").value = Declaration.getcellrangebyname("D3").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E3").value = Declaration.getcellrangebyname("E3").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F3").value = Declaration.getcellrangebyname("F3").value + Factures.getcellrangebyname("R" & i).value
case 2
Saisie.getcellrangebyname("Q16").value = Saisie.getcellrangebyname("Q16").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C4").value = Declaration.getcellrangebyname("C4").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D4").value = Declaration.getcellrangebyname("D4").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E4").value = Declaration.getcellrangebyname("E4").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F4").value = Declaration.getcellrangebyname("F4").value + Factures.getcellrangebyname("R" & i).value
case 3
Saisie.getcellrangebyname("Q17").value = Saisie.getcellrangebyname("Q17").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C5").value = Declaration.getcellrangebyname("C5").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D5").value = Declaration.getcellrangebyname("D5").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E5").value = Declaration.getcellrangebyname("E5").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F5").value = Declaration.getcellrangebyname("F5").value + Factures.getcellrangebyname("R" & i).value
case 4
Saisie.getcellrangebyname("Q18").value = Saisie.getcellrangebyname("Q18").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C7").value = Declaration.getcellrangebyname("C7").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D7").value = Declaration.getcellrangebyname("D7").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E7").value = Declaration.getcellrangebyname("E7").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F7").value = Declaration.getcellrangebyname("F7").value + Factures.getcellrangebyname("R" & i).value
case 5
Saisie.getcellrangebyname("Q19").value = Saisie.getcellrangebyname("Q19").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C8").value = Declaration.getcellrangebyname("C8").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D8").value = Declaration.getcellrangebyname("D8").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E8").value = Declaration.getcellrangebyname("E8").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F8").value = Declaration.getcellrangebyname("F8").value + Factures.getcellrangebyname("R" & i).value
case 6
Saisie.getcellrangebyname("Q20").value = Saisie.getcellrangebyname("Q20").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C9").value = Declaration.getcellrangebyname("C9").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D9").value = Declaration.getcellrangebyname("D9").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E9").value = Declaration.getcellrangebyname("E9").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F9").value = Declaration.getcellrangebyname("F9").value + Factures.getcellrangebyname("R" & i).value
case 7
Saisie.getcellrangebyname("Q21").value = Saisie.getcellrangebyname("Q21").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C11").value = Declaration.getcellrangebyname("C11").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D11").value = Declaration.getcellrangebyname("D11").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E11").value = Declaration.getcellrangebyname("E11").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F11").value = Declaration.getcellrangebyname("F11").value + Factures.getcellrangebyname("R" & i).value
case 8
Saisie.getcellrangebyname("Q22").value = Saisie.getcellrangebyname("Q22").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C12").value = Declaration.getcellrangebyname("C12").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D12").value = Declaration.getcellrangebyname("D12").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E12").value = Declaration.getcellrangebyname("E12").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F12").value = Declaration.getcellrangebyname("F12").value + Factures.getcellrangebyname("R" & i).value
case 9
Saisie.getcellrangebyname("Q23").value = Saisie.getcellrangebyname("Q23").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C13").value = Declaration.getcellrangebyname("C13").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D13").value = Declaration.getcellrangebyname("D13").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E13").value = Declaration.getcellrangebyname("E13").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F13").value = Declaration.getcellrangebyname("F13").value + Factures.getcellrangebyname("R" & i).value
case 10
Saisie.getcellrangebyname("Q24").value = Saisie.getcellrangebyname("Q24").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C15").value = Declaration.getcellrangebyname("C15").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D15").value = Declaration.getcellrangebyname("D15").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E15").value = Declaration.getcellrangebyname("E15").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F15").value = Declaration.getcellrangebyname("F15").value + Factures.getcellrangebyname("R" & i).value
case 11
Saisie.getcellrangebyname("Q25").value = Saisie.getcellrangebyname("Q25").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C16").value = Declaration.getcellrangebyname("C16").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D16").value = Declaration.getcellrangebyname("D16").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E16").value = Declaration.getcellrangebyname("E16").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F16").value = Declaration.getcellrangebyname("F16").value + Factures.getcellrangebyname("R" & i).value
case 12
if Factures.getcellrangebyname("M" & i).value <> 0 then 'par defaut une valeur nulle donne comme mois 12
Saisie.getcellrangebyname("Q26").value = Saisie.getcellrangebyname("Q26").value + Factures.getcellrangebyname("D" & i).value
Declaration.getcellrangebyname("C17").value = Declaration.getcellrangebyname("C17").value + Factures.getcellrangebyname("O" & i).value
Declaration.getcellrangebyname("D17").value = Declaration.getcellrangebyname("D17").value + Factures.getcellrangebyname("P" & i).value
Declaration.getcellrangebyname("E17").value = Declaration.getcellrangebyname("E17").value + Factures.getcellrangebyname("Q" & i).value
Declaration.getcellrangebyname("F17").value = Declaration.getcellrangebyname("F17").value + Factures.getcellrangebyname("R" & i).value
else
if Factures.getcellrangebyname("M" & i).string <> "Annulée" then
Saisie.getcellrangebyname("Q35").value = Saisie.getcellrangebyname("Q35").value + Factures.getcellrangebyname("D" & i).value
end if
end if
end select
i = i + 1
loop until Factures.getcellrangebyname("A" & i).string = ""
ThisComponent.UnLockControllers
End Sub
Sub ChiffreAffaireClient
'on Error resume next
dim Clients as object, Factures as object, Rapports as Object, Filtres as Object
dim coordonnees(0 To 1) as New com.sun.star.table.CellRangeAddress
Dim Recherche as object, Trouve as object
dim nbclients as integer,n as integer, i as integer, j as integer
Clients = thisComponent.Sheets.getByName("Clients")
Factures = thisComponent.Sheets.getByName("Factures")
Rapports = thisComponent.Sheets.getByName("Rapports")
Filtres = thisComponent.Sheets.getByName("Filtres")
ThisComponent.LockControllers
nbclients= CompterLignes("Clients")
for n = 1 to nbclients -1
Clients.getcellrangebyname("J" & n +1).value = 0
next n
for n = 1 to nbclients -1
Recherche = Factures.createSearchDescriptor()
With Recherche
.SearchString = Clients.getcellrangebyname("A" & n + 1).string
.SearchWords = True
End With
Trouve = Factures.findFirst(Recherche)
do while not(isnull(Trouve))
i = Trouve.cellAddress.row
if Factures.getcellrangebyname("M" & i + 1).value <> 0 then
Clients.getcellrangebyname("J" & n + 1).value = Clients.getcellrangebyname("J" & n + 1).value + Factures.getcellrangebyname("D" & i + 1).value
end if
Trouve = Factures.findNext(Trouve, Recherche)
loop
next n
ThisComponent.UnLockControllers
Deproteger("Clients")
ThisComponent.DatabaseRanges.getByName("plageClients").refresh()
'on met à jour les graphiques de la page rapports
Do
j = j + 1
loop until Filtres.getcellrangebyname("B" & j).string = ""
Deproteger("Filtres")
if j > 2 then
coordonnees(0).sheet = 11
coordonnees(0).startColumn = 1
coordonnees(0).startRow= 0
coordonnees(0).endColumn = 1
coordonnees(0).endRow= j - 2
coordonnees(1).sheet = 11
coordonnees(1).startColumn = 10
coordonnees(1).startRow= 0
coordonnees(1).endColumn = 10
coordonnees(1).endRow= j - 2
Rapports.charts(3).setranges(coordonnees)
Rapports.charts(3).HasColumnHeaders = true
Rapports.charts(3).HasRowHeaders = true
Rapports.charts(3).embeddedObject.Title.string = "C.A. par client"
Rapports.charts(3).embeddedObject.Legend.Alignment = com.sun.star.chart.ChartLegendPosition.LEFT
end if
verrouillerPlage("Filtres","B1:K"&j)
Proteger("CLients")
Proteger("Filtres")
End Sub
Sub ChiffreAffaireArticle
'on Error resume next
dim Produits as object, Prestations as object, Rapports as object, Filtres as Object
dim coordonnees(0 To 1) as New com.sun.star.table.CellRangeAddress
Dim Recherche as object, Trouve as object
dim nbproduits as integer,n as integer, i as integer, j as integer
Produits = thisComponent.Sheets.getByName("Produits")
Prestations = thisComponent.Sheets.getByName("Prestations")
Rapports = thisComponent.Sheets.getByName("Rapports")
Filtres = thisComponent.Sheets.getByName("Filtres")
ThisComponent.LockControllers
nbproduits= CompterLignes("Produits")
for n = 1 to nbproduits -1
Produits.getcellrangebyname("F" & n +1).value = 0
Produits.getcellrangebyname("G" & n +1).value = 0
next n
for n = 1 to nbproduits -1
Recherche = Prestations.createSearchDescriptor()
With Recherche
.SearchString = Produits.getcellrangebyname("A" & n + 1).string
.SearchWords = True
End With
Trouve = Prestations.findFirst(Recherche)
do while not(isnull(Trouve))
i = Trouve.cellAddress.row
if Prestations.getcellrangebyname("E" & i + 1).string = "oui" then
Produits.getcellrangebyname("F" & n + 1).value = Produits.getcellrangebyname("F" & n + 1).value + Prestations.getcellrangebyname("C" & i + 1).value
end if
Trouve = Prestations.findNext(Trouve, Recherche)
loop
Produits.getcellrangebyname("G" & n + 1).value = Produits.getcellrangebyname("D" & n + 1).value * Produits.getcellrangebyname("F" & n + 1).value
next n
ThisComponent.UnLockControllers
Deproteger("Produits")
ThisComponent.DatabaseRanges.getByName("plageProduits").refresh()
'on met à jour les graphiques de la page rapports
Do
j = j + 1
loop until Filtres.getcellrangebyname("M" & j).string = ""
Deproteger("Filtres")
if j > 2 Then
coordonnees(0).sheet = 11
coordonnees(0).startColumn = 12
coordonnees(0).startRow= 0
coordonnees(0).endColumn = 12
coordonnees(0).endRow= j - 2
coordonnees(1).sheet =11
coordonnees(1).startColumn = 17
coordonnees(1).startRow= 0
coordonnees(1).endColumn = 18
coordonnees(1).endRow= j - 2
Rapports.charts(2).setranges(coordonnees)
Rapports.charts(2).HasColumnHeaders = true
Rapports.charts(2).HasRowHeaders = true
Rapports.charts(2).embeddedObject.Title.string = "C.A. par produit"
Rapports.charts(2).embeddedObject.Diagram.HasSecondaryYAxis = true
Rapports.charts(2).embeddedObject.Diagram.GroupBarsPerAxis = false
Rapports.charts(2).embeddedObject.firstDiagram.CoordinateSystems(0).ChartTypes(0).Dataseries(0).AttachedAxisIndex=0
Rapports.charts(2).embeddedObject.firstDiagram.CoordinateSystems(0).ChartTypes(0).Dataseries(1).AttachedAxisIndex=1
Rapports.charts(2).embeddedObject.Legend.Alignment = com.sun.star.chart.ChartLegendPosition.RIGHT
Filtres.getCellRangeByName("filtreProduits").cellBackColor=RGB(255,255,255)
end if
verrouillerPlage("Filtres","M1:S"&j)
Proteger("Produits")
Proteger("Filtres")
End Sub
Sub recap
incrementerPlage("plageProduits","Produits")
incrementerPlage("plageClients","Clients")
ChiffreAffaireMensuel
ChiffreAffaireClient
ChiffreAffaireArticle
End sub