Remplacer somme 2 2 somme.si() par une macro

thombzh

XLDnaute Junior
Bonjour, j'ai un fichier qui rame bien comme il faut et c'est lié à 2 colonnes sur une feuille "synthèses" qui réalise se type de fotmule :

=SOMME.SI('Saisie 1'!$D$4:$D$9;Synthèses!$B3;'Saisie 1'!$E$4:$E$9)+SOMME.SI('Saisie 2'!$D$4:$D$9;Synthèses!$B3;'Saisie 2'!$E$4:$E$9)

Le fichier joint expliquera sans doute mieux, notez que ce fichier d'exemple est très petit, l'original comporte queques milliers de lignes.

dans l'idée je souhaiterai que dès que je sélectionne la feuille "synthèses" celle-ci lance le calcul
 

Pièces jointes

  • Thom_aide_macro1.xls
    19 KB · Affichages: 39
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Remplacer somme 2 2 somme.si() par une macro

Bonsoir thombzh,

Voir l'essai dans le fichier joint.

Code dans module1:
VB:
Option Explicit

Sub Consolider()
Dim RefSources(1 To 2) As String, zone As Range

Application.ScreenUpdating = False
  Set zone = Sheets("Saisie 1").Range("D3").CurrentRegion
  RefSources(1) = zone.Address(, , xlR1C1, True)

  Set zone = Sheets("Saisie 2").Range("D3").CurrentRegion
  RefSources(2) = zone.Address(, , xlR1C1, True)

With Sheets("Synthèses")
  .Columns("b:d").Clear
  .Range("B2").Consolidate Sources:=RefSources, _
        Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
  Columns("B:D").EntireColumn.AutoFit
  .Range("B2").CurrentRegion.Sort key1:=Columns("b"), Header:=xlYes
  .Activate
End With

  MsgBox "Consolidation terminée"
  Application.ScreenUpdating = True
End Sub
Code dans module de Feuille" Synthèses":
VB:
Option Explicit

Private Sub Worksheet_Activate()
  Consolider
End Sub
 

Pièces jointes

  • Thom_aide_macro1 v1.xls
    42 KB · Affichages: 43

kjin

XLDnaute Barbatruc
Re : Remplacer somme 2 2 somme.si() par une macro

bonsoir, salut Mapomme :),
Je ne vois comment une macro vba serait plus rapide qu'une fonction native d'excel
Une autre approche par TCD; note que l'actualisation pourrait aussi se faire à l'activation de la feuille
A+
kjin
 

Pièces jointes

  • Thom.xls
    27 KB · Affichages: 46

thombzh

XLDnaute Junior
Re : Remplacer somme 2 2 somme.si() par une macro

Merci pour vos réponses, le TCD est effectivement une très bonne solution, mais je ne peux l'utiliser dans mon fichier original, trop de colonnes et de texte entre les valeurs.. Je via prendre la méthode VBA pour l'instant.
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal