SOMME.SI (Macro ???)

  • Initiateur de la discussion Initiateur de la discussion LocSta
  • 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 !

LocSta

XLDnaute Occasionnel
Salut à tous, j'ai un petit probleme.

Introduction au probléme:
J'ai une feuille de saisie qui me permet de généré une archive (création d'une nouvelle ligne) à chaque clique sur le bouton de la macro.

Probléme:
Je voudrais que lorsque que deux lignes de l'archive correspondent aux meme client, à la meme affaire et à la meme machine les valeurs des cases suivantes soient additionner dans une des deux lignes et que l'autre ligne se supprime.

Exemple:
Ligne1:ClientA/Affaire1999/Machine01 - ValeurA1 - ValeurA2 ...
Ligne2:ClientB/Affaire2000/Machine02 - ValeurB1 - ValeurB2...
Ligne3:ClientB/Affaire2000/Machine02 - ValeurC1 - ValeurC2 ...

Je souhaiterais que dans le cas présent: Les lignes 2 et 3 soit regroupées en une seule, comme ceci:
Ligne3:ClientB/Affaire2000/Machine02 - ValeurB1+ValeurC1 - ValeurB2+ValeurC2 etc...

Si ça ne vous parait pas tres clair regarder mon fichier joint ça sera sans doute beaucoup plus explicite.

Merci
 

Pièces jointes

Dernière édition:
Re : SOMME.SI (Macro ???)

Enfaite le principe de l'algorythme c'est:
Saisir les données à archiver => Archivage dans la feuille "Archives" et Archivage dans la feuille "Archives Finale"
S'il existe une ligne dans la feuille "Archives Finale" qui comporte le meme Client, le meme n°d'affaire et la meme machine, alors les valeurs des lignes précédentes sont ajouter à la ligne à archiver et ensuites les lignes précédentes sont supprimé

PS: Normalement il ne peut pas y avoir plus de 2 lignes qui comporte le meme client, n°d'affaire et machine avant que la macro de modification des lignes se lance. Si elle avait bien fait son travail les fois précédentes.
 
Re : SOMME.SI (Macro ???)

Oui c'est presque ça mis à part que la feuille de saisie ne comporte qu'une seule ligne, du coup ça ne marche pas, je te réenvoi ton fichier avec un essai. J'ai executer ta macro puis j'ai retaper une ligne dans saisie et voila le résultat. A regarder.
Ton ancienne macro était plus proche du résultat que celle ci.
PS😛eut être qu'en mettant l'ancienne dans le meme code que ma macro d'archivage ça marcherai
Enfét il suffirai simplement que ton ancienne macro s'execute aprés chaque execution de la macro d'archivage

Voila mon fichier à l'heure actuelle:
 

Pièces jointes

Dernière édition:
Re : SOMME.SI (Macro ???)

bonjour LocSta

voila le fichier adapté pour une seule saisie

je n'ais pas traité le fichier Exemple V2 car il comporte trop de modifications par rapport au precedent (colonnes masquées, colonnes disparues, nom des feuilles different .......)
 

Pièces jointes

Re : SOMME.SI (Macro ???)

Pour ton fichier précedent le probléme était juste qu'il copier aussi les 2 premiéres lignes qui correspondent aux titres des colonnes sinon ça marchait nikel un adaptant un peu la macro à mon fichier, j'essaye la nouvelle version. Je te tiens au courant merci.
 
Re : SOMME.SI (Macro ???)

Ca marche toujours pas 🙁

J'ai essayé ton fichier mais y a toujours se probleme qu'il copie les lignes de titres (une fois sur 2) dans les archives et quand il copie les lignes de titres dans les archives il les supprimes dans la feuille saisie ce qui est assez dérangeant

Du coup j'ai par exemple en ligne 52: Date - Heure - Client etc... au lieu d'avoir les valeurs correspondante et dans la feuille saisie je n'est plus les titres (Notices etc...)

Sinon les calculs marchent bien mais uniquement pour les 3 premieres colonnes (Devis, Notices, Etudes Méca) il aditionne bien les valeurs. Par contre pour les autres il n'en tient pas compte il garde les valeurs qu'il avait avant.

Dans la feuille archive finale est t'il possible de garder la date et l'heure du dernier archivage plutot que celui du premier comme c'est le cas actuellement.

Autre chose, serait il possible que quand il effaces la valeur de la feuille saisie il ne supprime les valeurs pour Client, N°Affaire, Machine.

Merci
 
Dernière édition:
Re : SOMME.SI (Macro ???)

J'viens de tester, la macro mais plus 15min a s'executer dans mon fichier. Donc j'vais pas pouvoir utiliser celle là.
J'pense que le plus simple serait de repartir sur la macro que tu avais fait précedemment (voir plus bas), c'est vraiment celle qui marchais le mieu. Il suffit juste de la modifiée, que la feuille de saisie soit enfaite la feuille archive et que la macro s'execute aprés l'archivage.


Sub saisie()
Dim tablo
Dim pages
Dim derlin As Integer
Dim z As Byte
Dim n As Integer
Dim m As Integer
Dim p As Integer
Dim x As Integer
tablo = Sheets("Saisie").Range("A3:T" & Sheets("Saisie").Range("A65536").End(xlUp).Row)
pages = Array("Archive", "Archive Finale")
derlin = Sheets(pages(0)).Range("A65536").End(xlUp).Row + 1
If derlin < 3 Then derlin = 3
For z = 0 To 1
For n = 0 To UBound(tablo) - 1
For m = 1 To 5
Sheets(pages(z)).Cells(derlin + n, m + 1) = tablo(n + 1, m)
Sheets(pages(z)).Cells(derlin + n, 1) = derlin + n - 2
Next m
x = 1
For p = 6 To 20
Sheets(pages(z)).Cells(derlin + n, p + x) = tablo(n + 1, p)
x = x + 1
Next p
Next n
Next z
Sheets("Saisie").Range("A3:T" & Sheets("Saisie").Range("A65536").End(xlUp).Row).ClearContents
Call recap
End Sub

Sub recap()
Dim n As Integer
Dim m As Integer
With Sheets("Archive Finale")
Dim lignes As Collection
Set lignes = New Collection
For n = 3 To .Range("A65536").End(xlUp).Row
For m = n + 1 To .Range("A65536").End(xlUp).Row
If .Range("D" & n) & .Range("E" & n) & .Range("F" & n) = .Range("D" & m) & .Range("E" & m) & .Range("F" & m) Then
.Range("G" & n) = .Range("G" & n) + .Range("G" & m)
.Range("I" & n) = .Range("I" & n) + .Range("I" & m)
.Range("K" & n) = .Range("K" & n) + .Range("K" & m)
lignes.Add m
End If
Next m
Next n
For n = lignes.Count To 1 Step -1
.Rows(lignes(n)).Delete
Next n
End With
End Sub
 
Re : SOMME.SI (Macro ???)

Le principe le plus simple selon moi est d'archiver les données simultanément dans les feuilles archives et archives finale et ensuite d'utiliser ta macro "recap" afin quelle transforme les lignes dans archives finale. Qu'est ce que t'en pense?
 
- 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
Retour