VBA - Sommes et suppression de ligne

Bonsoir,

Il reste, a priori, un dernier souci sur ce document pour qu'il fonctionne parfaitement.

J'ai testé des méthodes qui me semblaient fonctionnelles, sans succès... Je ne pense pas m'y prendre correctement.

Ce que je cherche à faire :

En partant de la dernière ligne, si les informations entre la dernière ligne et celle juste au dessus (en colonne [A] ) sont identique alors :

Colonne [F] : additionner les valeurs (entre les deux lignes donc) sur la cellule du haut

Supprimer la ligne identique du dessous.

Réitérer l'opération.

Plus concis : Additionner les valeurs de la colonne [6] lorsque les valeurs de la colonne [1] sont identiques.

Puis supprimer la ligne en double en utilisant la colonne [1] (mais sans supprimer la ligne où la somme a été faite).

J'ai fait ceci :

Private Sub CommandButton1_Click()
Dim LastR As Long

LastR = Cells(Rows.Count, "A").End(xlUp).Row

Application.DisplayAlerts = False
Application.ScreenUpdating = False

For t = LastR To 4 Step -1
                                                'For f = 1 To 13
If Cells(t + 1, 1).Value = Cells(t + 1, 1).Value Then _
   ' Ne fonctionne pas, je ne sais pas comment additionner en utilisant cette méthode, ce n'est peut être pas possible ...
    .Sum (Range(Cells(t, 6), Cells(t + 1, 6)

   'Petit soucis, ça me supprime toutes les lignes sauf la première... 
    Cells(t + 1, 5).EntireRow.Delete

Next
                                                'Next

Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub

J'ai ajouté un document Excel, si vous souhaitez voir mon code en action.

Il est tard, je m'y intéresserai à nouveau demain, si je trouve une solution je posterai à la suite.

Je vous remercie de votre attention,

A plus tard !

Bonne soirée / nuit

Salut Le Drosophile,

voici avec un petit tableau-exemple en 'A'.

Double-clic sur la feuille 'A' pour démarrer la macro.

Vu la présence d'autres macros, il conviendrait peut-être, si tu comptes utiliser cette fonction régulièrement, de préciser un mode de déclenchement plus précis!

En l'état, pour le test, ça suffit encore!

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Cancel = True
'
Application.EnableEvents = False
Application.ScreenUpdating = False
'
For x = Range("A" & Rows.Count).End(xlUp).Row To 3 Step -1
    If Cells(x, 1) = Cells(x - 1, 1) Then
        Cells(x - 1, 6) = Cells(x, 6) + Cells(x - 1, 6)
        Rows(x).Delete Shift:=xlUp
    End If
Next
'
Application.EnableEvents = True
Application.ScreenUpdating = True
'
End Sub

A+

Bonjour,

C'est assez bizarre, le tableau que j'ai upload qui est dans mon ordinateur est très différent de celui qui se trouve sur le forum. Il n'est pas censé y avoir de code et les tableaux ne sont pas les mêmes.

Je vais tester votre solution !

Pour le moment j'ai le message d'erreur d'exécution n°13 : "Incompatibilité de type".

J'ai compris d'où vient le problème... Ça va encore être la galère.

Le drosophile a écrit :

Pour le moment j'ai le message d'erreur d'exécution n°13 : "Incompatibilité de type".

J'ai compris d'où vient le problème... Ça va encore être la galère.

quel bel enthousiasme ! alors bon courage !

dhany

Rechercher des sujets similaires à "vba sommes suppression ligne"