Macro de totalisation

Bonjour,

je souhaiterais inclure dans une macro, un code me permettant de passer de l'état Feuil1 à l'état Feuil2, dans le fichier joint (https://www.excel-pratique.com/~files/doc2/testsomme.xls)

Si quelqu'un pouvait me donner une idée se serait bien.

Merci

Bonjour

pourquoi une macro ? une formule fonctionne aussi bien et est sûrement plus rapide

formule à placer en C1 de la feuille 2

=SI($B1="C";-1;1) * SOMMEPROD((Feuil1!$A$1:$A$56=Feuil2!$A1)*(Feuil1!$B$1:$B$56=Feuil2!$B1)*Feuil1!$C$1:$C$56)

tirer la formule vers le bas

Bonjour à tous,

Tu peut aussi utiliser un tableau croisé dynamique.

https://www.excel-pratique.com/~files/doc2/IVh88testsomme.xls

C'est Nad-Dan qui m'a montrer cela il y quelques jours

@+++

Adrien

bonjour aborsell

as tu regardé le TCD ?, le débit et le crédit s'ajoutent dans le total !, je ne connais rien au TCD, mais il faudrait inverser le signe pour les Crédit, c'est peut être possible avec un champ calculé...

Merci pour la formule qui me donne bien la colonne C.

Mais moi je pars du principe que la feuil2 est vide à l'origine et donc je dois remplir les colonnes A, B et C.

Exact lol z'avais pas vu ...

Désolé pour l'info inexacte !

Adrien

re:

voici une macro (que j'ai cherché à faire assez rapide) à lier à un bouton en feuil1

Sub Mep_cpt()
    Dim i As Long, mondico As Variant, valeur As Double, tablo As Variant, valeu As Variant
    Set mondico = CreateObject("Scripting.Dictionary")
    For i = 1 To Range("A65536").End(xlUp).Row
        If Not mondico.Exists(Range("A" & i).Value & " - " & Range("B" & i).Value) Then
            If Range("B" & i) = "C" Then
                mondico.Add Range("A" & i).Value & " - " & Range("B" & i).Value, Range("C" & i).Value * -1
            Else
                mondico.Add Range("A" & i).Value & " - " & Range("B" & i).Value, Range("C" & i).Value
            End If
        Else
            valeur = mondico.Item(Range("A" & i).Value & " - " & Range("B" & i).Value)
            mondico.Remove Range("A" & i).Value & " - " & Range("B" & i).Value
            If Range("B" & i) = "C" Then
                mondico.Add Range("A" & i).Value & " - " & Range("B" & i).Value, valeur + (Range("C" & i).Value * -1)
            Else
                mondico.Add Range("A" & i).Value & " - " & Range("B" & i).Value, valeur + Range("C" & i).Value
            End If
        End If
    Next
    tablo = mondico.keys
    valeu = mondico.items
    Sheets("Feuil2").Cells.Clear
    For i = 0 To UBound(tablo)
        With Sheets("Feuil2")
            .Range("A" & i + 1) = Left(tablo(i), InStr(tablo(i), "-") - 2)
            .Range("B" & i + 1) = Right(tablo(i), 1)
            .Range("C" & i + 1) = valeu(i)
        End With
    Next
End Sub

Merci beaucoup. Je vais la tester dès que possible et l'adapterai en cas de besoin

Cordialement

Rechercher des sujets similaires à "macro totalisation"