cibleo
XLDnaute Impliqué
Bonsoir le forum 🙂
Pour bien comprendre, cliquez sur le bouton Feuil2 :
Maintenant, j'aimerais réaliser le même type de synthèse mais en affichant le résultat pour chacune des différentes stations services. (ici 3)
Ainsi pour chaque période, 3 lignes devraient apparaitre avec tout son détail en regard de la colonne A.
Exemple : Février 2012
BP --> 2 pleins --> 80,90 € --> 56,32 L --> 1,436 €
ESSO --> 14 pleins --> 551,20 € --> 381,93 L --> 1,443 €
SHELL --> 15 pleins --> 758,45 € --> 526,85 L --> 1,440 €
Avec la macro présentée, je n'obtiens qu'une seule ligne pour février 2012 :
31 pleins --> 1390,55 € ---> 965,10 L --> 1,441 €
	
	
	
	
	
		
Pouvez-vous m'aider ?
Merci Cibleo
	
		
			
		
		
	
				
			Pour bien comprendre, cliquez sur le bouton Feuil2 :
Maintenant, j'aimerais réaliser le même type de synthèse mais en affichant le résultat pour chacune des différentes stations services. (ici 3)
Ainsi pour chaque période, 3 lignes devraient apparaitre avec tout son détail en regard de la colonne A.
Exemple : Février 2012
BP --> 2 pleins --> 80,90 € --> 56,32 L --> 1,436 €
ESSO --> 14 pleins --> 551,20 € --> 381,93 L --> 1,443 €
SHELL --> 15 pleins --> 758,45 € --> 526,85 L --> 1,440 €
Avec la macro présentée, je n'obtiens qu'une seule ligne pour février 2012 :
31 pleins --> 1390,55 € ---> 965,10 L --> 1,441 €
		VB:
	
	
	Sub FusionConso()
  Set mondico = CreateObject("Scripting.Dictionary")
  Set mondico1 = CreateObject("Scripting.Dictionary")
  Set mondico2 = CreateObject("Scripting.Dictionary")
  Application.ScreenUpdating = False
  Range("A1:F" & Range("F65536").End(xlUp).Row).Clear 'Efface toute la Feuil2
  For s = 1 To 3 'On copie les données des 3 premières feuilles ds Feuil2 : colonnes A,B,C et D
     Range(Sheets(s).[A3], Sheets(s).[D65536].End(xlUp)).Copy [A65536].End(xlUp).Offset(1, 0)
  Next s
  'On trie ces données par ordre chronologique
  Range("A2:D" & Range("D65536").End(xlUp).Row).Sort Key1:=[A2], Order1:=xlAscending, Key2:=[D2], Order2:=xlAscending, Header:=xlGuess
  For Each C In Range("A2:A" & Range("A65536").End(xlUp).Row)
    mondico(Format(C.Value, "mmmm yyyy")) = mondico(Format(C.Value, "mmmm yyyy")) + 1
    mondico1(Format(C.Value, "mmmm yyyy")) = mondico1(Format(C.Value, "mmmm yyyy")) + CDec(C.Offset(, 1).Value)
    mondico2(Format(C.Value, "mmmm yyyy")) = mondico2(Format(C.Value, "mmmm yyyy")) + C.Offset(, 2).Value
  Next C
  Range("A2:D" & Range("D65536").End(xlUp).Row).Clear 'Efface la Feuil2 à nouveau
  Range("A1") = "Périodes": Range("B1") = "Stations": Range("C1") = "Nbre de pleins"
  Range("D1") = "Montants TTC": Range("E1") = "Volumes": Range("F1") = "Prix du litre Gazole"
  Range("A2").Resize(mondico.Count, 1) = Application.Transpose(mondico.keys) 'Clé Périodes
  Range("C2").Resize(mondico.Count, 1) = Application.Transpose(mondico.items) 'Nbre de pleins
  Range("D2").Resize(mondico.Count, 1) = Application.Transpose(mondico1.items) 'Cumul Montants
  Range("E2").Resize(mondico.Count, 1) = Application.Transpose(mondico2.items) 'Cumul Volumes
  For Lig = 2 To Range("A" & Rows.Count).End(xlUp).Row
  'Prix du litre en colonne F
    Cells(Lig, 6).Value = Cells(Lig, 4).Value / Cells(Lig, 5).Value
  Next
  Range("D2:D" & Range("D" & Rows.Count).End(xlUp).Row).NumberFormat = "# ##0.00 $"
  Range("E2:E" & Range("E" & Rows.Count).End(xlUp).Row).NumberFormat = "# ##0.00 L"
  Range("F2:F" & Range("F" & Rows.Count).End(xlUp).Row).NumberFormat = "# ##0.000 $"
Application.ScreenUpdating = True
End Sub
	Pouvez-vous m'aider ?
Merci Cibleo
Pièces jointes
			
				Dernière édition: