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

  • Initiateur de la discussion Initiateur de la discussion thombzh
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

thombzh

Guest
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

Dernière modification par un modérateur:
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

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

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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
1 K
P
  • Question Question
Réponses
3
Affichages
1 K
B
Réponses
2
Affichages
2 K
bastienb
B
Y
  • Question Question
Réponses
4
Affichages
956
Yondaime114
Y
Retour