Comparaison de texte dans une boucle for et somme

Bonjour,

Je suis novice en codage VBA et pour mon travail j'aurai grand besoin de votre aide.

Détail de mon projet :

Je souhaite lire une colonne avec une boucle for, dans laquelle on trouve des numéros de bons de commande (qui contiennent des lettres, chiffres, espaces et slashs) et à chaque fois qu'un même numéro est retrouvé dans 2 lignes successives, on fait la somme des montants (nombres décimaux) associés à ces 2 lignes.

De plus je voudrais que la ligne superflue qui à été ajoutée soit supprimée, pour que l'ensemble des lignes d'un même bon de commande se retrouve en une seule ligne avec le montant total associé.

Ex :

num commande montant

A45G 12

FD67K 45

FD67K 20

FD67K 10

ce tableau deviendrait :

A45G 12

FD67K 75

Voila j'espère avoir été assez clair et ne pas avoir fait de double post, car je n'ai trouvé que des demandes similaires mais pas totalement identiques et cela ne m'a pas permis de résoudre mon soucis.

Merci d'avance pour votre aide

bonjour,

en supposant le code en colonne A et le montant en colonne B, voici une proposition de solution via une macro

Sub test()
    dl = Cells(Rows.Count, 1).End(xlUp).Row
    For i = dl - 1 To 2 Step -1
        If Cells(i + 1, 1) = Cells(i, 1) Then
            Cells(i, 2) = Cells(i + 1, 2) + Cells(i, 2)
            Rows(i + 1).Delete shift:=xlUp
        End If
    Next i
End Sub

Merci H2SO4 ça marche très bien sur les colonne A et B, par contre que dois-je modifié dans le code si je veux que le codage s'applique à d'autres colonnes, par exemple la colonne C pour les numéros de commandes et la colonne L pour les montants ?

re-bonjour,

change les A et les B dans le codes ci-dessous.

Sub test()
    dl = Cells(Rows.Count, "A").End(xlUp).Row
    For i = dl - 1 To 2 Step -1
        If Cells(i + 1, "A") = Cells(i, "A") Then
            Cells(i, "B") = Cells(i + 1, "B") + Cells(i, "B")
            Rows(i + 1).Delete shift:=xlUp
        End If
    Next i
End Sub

ok merci je vais tester voir si cela fonctionne


ça fonctionne merci bien

Pour supprimer les lignes qui ne contiennent pas "Grand Code", comme demandé en MP

voici

Sub test1()
    dl = Cells(Rows.Count, 1).End(xlUp).Row
    For i = dl To 2 Step -1
        If  not UCase(Cells(i, 1))  like "*GRAND CODE*" Then
            Rows(i).Delete shift:=xlUp
        End If
    Next i
End Sub
Rechercher des sujets similaires à "comparaison texte boucle somme"