Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA totalisation colonnes selon critere

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 !

bertrand1202

XLDnaute Occasionnel
Bonsoir

Débutant en Macro, je me suis risqué à faire une première macro afin de l'utiliser sur un fichier avec plusieurs feuilles plus tard ( totalisation des colonnes si correspond à critère dans une colonne.

Je vous joins le fichier , je n'arrive pas à comprendre ou je fais fausse route.

Je souhaite totaliser dans la colonne de ligne c si l element en colonne MAg est identique a celui de la colonne A.

Je vous remercie de votre aide mais surtout de l'explication.
Merci d'avance , cela vous paraitra peut etre basique mais j'aime bien comprendre pourquoi VBA fait de la resistance.
Bonne soirée et merci au(x) VBAiste qui pourra(pourront m'aider.
 

Pièces jointes

Re : VBA totalisation colonnes selon critere

Hello,

Je t'avoue ne pas avoir tout compris. Aucune ligne n'est identique entre la colonne A et la colonne MAG. De plus que veux tu totaliser ?

Dans ton fichier test essai de mettre des infos (typiquement ce que tu attends comme résultat en donnant des chiffres)

@ te lire

Juju
 
Re : VBA totalisation colonnes selon critere

Meci JUju

je rejoins un fichier avec les resultats attendus .


Ce que je souhaite faire , si dans la colonne A, j 'ai le criter A1 ,vba recherche dans les colonnes MAG , les criteres A1 et cumule les Qte1 les Qte2 ect etc .

Merci de ton aide , je continue cependant à chercher et à comprendre.

je n'ai pas encore intégré toute la logique VBA

@+
 

Pièces jointes

Re : VBA totalisation colonnes selon critere

Bonsoir


Tout simplement, parce que dans le futur , j 'utiliserai ce systeme pour synthétuser le resultat des inventaires (42 magasins donc 42 pages et chaque page comprend 25 colonnres avec 2500 à 3000 lignes.

Je me prépare en essayant d'abord sur une exemple simple.

Merci de ton aide.
 
Re : VBA totalisation colonnes selon critere

Bonsoir JUJU



Merci de ton fichier , je crains de ne povoir faire du sommeprod quand j'aurai a faire la synthese des 42 feuilles , j'ai peur que ça rame sur le PC

Merci

Bonne soirée , je continue ma recherche

@+ Bertrand1202
 
Re : VBA totalisation colonnes selon critere

Helloskoobi,

j'ai eu du mal à comprendre aussi mais avec le fichier d'exemple2 c'est plus facile.
Exemple, à chaque fois que je trouve A1 dans Mag1 et dans Mag2, je somme qte1 de Mag1 et Mag2 que je mets en C6 puis je somme qte2 de Mag1 et Mag2 que je mets en D6...
 
Re : VBA totalisation colonnes selon critere

Bonsoir


Merci à Juju69 et Skoobi d'avoir pris un peu de temps, je vais essayer de comprendre le code et la démarche pour ensuite pouvoir cumuler différentes feuilles avec une colonne critere et additionner ainsi colonne par colonne dans le recap si le critere est present.

Merci de votre aide , à bientot , bonne nuit
@+
 
Re : VBA totalisation colonnes selon critere

Bonsoir Tous,

si j'ai compris, un autre exemple de
Code:
Sub Va()
  Dim C As Range, Li As Integer
 [COLOR=Green] 'on parcourt chaque cellule des colonnes E et H, ici, en s'arrêtant à la dernière ligne non vide [/COLOR] 
  For Each C In Application.Union(Range("E6:E" & [E5000].End(xlUp).Row), Range("H6:H" & [H5000].End(xlUp).Row))
 [COLOR=Green] 'on parcourt chaque cellule de CATEGORIE :  A6:A14 [/COLOR]
  For Li = 6 To 14
      If C.Value = Range("A" & Li) Then 
       [COLOR=Green] 'si on trouve la catégorie on ajoute le nombre de la colonne C+1[/COLOR]
        Range("C" & Li) = Range("C" & Li) + C.Offset(0, 1) 
        [COLOR=Green]'on ajoute le nombre de la colonne C+2[/COLOR]
        Range("D" & Li) = Range("D" & Li) + C.Offset(0, 2)
      End If
    Next Li
  Next C
 [COLOR=Green] 'On totalise dans les cases correspondantes[/COLOR]
  [C21] = Application.WorksheetFunction.Sum(Range("F6:F" & [F5000].End(xlUp).Row))
  [D21] = Application.WorksheetFunction.Sum(Range("G6:G" & [G5000].End(xlUp).Row))
  [C22] = Application.WorksheetFunction.Sum(Range("I6:I" & [I5000].End(xlUp).Row))
  [D22] = Application.WorksheetFunction.Sum(Range("J6:J" & [J5000].End(xlUp).Row))
  [C23] = [C21] + [C22]
  [D23] = [D21] + [D22]
End Sub
 

Pièces jointes

Re : VBA totalisation colonnes selon critere

Bonjour Lii

Merci pour ta reponse , je commence à comprendre, je vais donc ce week end pouvoir me pencher sur la totalisation de chacune des colonnes des autres feuilles dans le total 1 et total2.

Mon but est simple: en page recap (celle que j'ai mis , j 'ai les criteres (tous) dans les autres fauilles j 'ai une colonne critere et des colonnes , ensuite ,si le critere en colonne a de la page 2,3,4,n egal au critere colonne a de page recap , je somme dans chaque colonne (c, d....n) les elements contenus dans les colonnes (c,d...m) des autres feuilles.

Merci de ton explication , par contre que signifie [5000]&endxlup row .

Bonne journée et merci encore.Il faut que j'y arrive
 
Re : VBA totalisation colonnes selon critere

Bonjour

Tu verras plus souvent Range("F65536").End(XlUp).Row* que la formule ci-dessus pour chercher la ligne (Row) de la dernière cellule non vide de la colonne F en partant du bas (End) de la colonne (65536)et en remontant (Up).
J'ai remplacé le nombre 65536 par 5000 car tu avais dit avoir 2000 à 3000 lignes.
L'essentiel est que ce nombre soit supérieur au nombre de lignes non vides de la colonne. Comme ce dernier peut varier, on compte "large".

Attention, il faut respecter les formules sans oublier des signes ou des mots !

*Tu verras encore d'autres formulations
 
- 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

Discussions similaires

T
Réponses
2
Affichages
1 K
Tava94
T
B
Réponses
4
Affichages
884
Balek69
B
D
Réponses
4
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…