Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

calcul colonne

5 réponses
Avatar
achille
Bonjour

J'ai un tableau dont le nom de mes clients se trouvent en colonne F ( allant
de F7 à l'infini)
et le montant des factures correspondant se trouvant en colonne I ( allant
de I7 à l'infini).

j 'aimerai qu'une macro me reprenne les noms des clients sans doublons en
colonne A et me mette le cumul de factures pour chaque client en colonne B
dans une feuille appelée "CA2010"

est possible?

merci d'avance!

5 réponses

Avatar
isabelle
bonjour achille,

Sub Macro1()
Dim c As Range, Client As Range, Facture As Range

With Sheets("Feuil1") '<--------------Adapter au nom de la feuille du
tableau
Set Client = .Range("F7:F" & .Range("F65536").End(xlUp).Row)
Set Facture = .Range("I7:I" & .Range("I65536").End(xlUp).Row)
ActiveWorkbook.Names.Add Name:="cl", RefersTo:=Client
ActiveWorkbook.Names.Add Name:="fact", RefersTo:úcture
End With

With Sheets("CA2010")
Client.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("A1"),
Unique:=True
For Each c In .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.Range("B" & c.Row).Formula = "=SumProduct((cl =" & c.Address & ") *
(fact))"
Next
End With
End Sub

isabelle
------------------------------------------------------------------

Le 2011-03-24 09:14, achille a écrit :
Bonjour

J'ai un tableau dont le nom de mes clients se trouvent en colonne F ( allant
de F7 à l'infini)
et le montant des factures correspondant se trouvant en colonne I ( allant
de I7 à l'infini).

j 'aimerai qu'une macro me reprenne les noms des clients sans doublons en
colonne A et me mette le cumul de factures pour chaque client en colonne B
dans une feuille appelée "CA2010"

est possible?

merci d'avance!








Avatar
achille
merci ca marche nikel


"isabelle" a écrit dans le message de news:
imfjse$qmh$
bonjour achille,

Sub Macro1()
Dim c As Range, Client As Range, Facture As Range

With Sheets("Feuil1") '<--------------Adapter au nom de la feuille du
tableau
Set Client = .Range("F7:F" & .Range("F65536").End(xlUp).Row)
Set Facture = .Range("I7:I" & .Range("I65536").End(xlUp).Row)
ActiveWorkbook.Names.Add Name:="cl", RefersTo:=Client
ActiveWorkbook.Names.Add Name:="fact", RefersTo:úcture
End With

With Sheets("CA2010")
Client.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("A1"),
Unique:=True
For Each c In .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.Range("B" & c.Row).Formula = "=SumProduct((cl =" & c.Address & ") *
(fact))"
Next
End With
End Sub

isabelle
------------------------------------------------------------------

Le 2011-03-24 09:14, achille a écrit :
Bonjour

J'ai un tableau dont le nom de mes clients se trouvent en colonne F (
allant
de F7 à l'infini)
et le montant des factures correspondant se trouvant en colonne I (
allant
de I7 à l'infini).

j 'aimerai qu'une macro me reprenne les noms des clients sans doublons en
colonne A et me mette le cumul de factures pour chaque client en colonne
B
dans une feuille appelée "CA2010"

est possible?

merci d'avance!








Avatar
MichD
Bonjour,

Une variante :

Tu adaptes le nom de la feuille source et de destination si nécessaire.

'------------------------------------------
Sub test()
Dim DerLig As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Feuille source des données
DerLig = .Range("A65536").End(xlUp).Row
With .Range("A1:A" & DerLig)
.AdvancedFilter xlFilterCopy, , Feuil2.Range("A1"), True
End With
.Range("A2:A" & DerLig).Name = "MLesNoms"
.Range("B2:B" & DerLig).Name = "MLesDonnées"
End With
With Worksheets("Feuil2") 'feuille de destination des données
.Range("B1") = "Total"
.Range("B2").Formula = "=Sumproduct((MLesNoms=" & _
.Range("A2").Address(0, 0) & ")*(MLesDonnées))"
With .Range("B2:B" & .Range("A65536").End(xlUp).Row)
.FillDown
.Value = .Value
With .Offset(, -1).Resize(, 2)
.Sort Key1:=.Item(2, 1), _
order1:=xlAscending, Header:=xlNo
.EntireRow.AutoFit
End With
End With
End With
Application.Names("MLesNoms").Delete
Application.Names("MLesDonnées").Delete
Application.ScreenUpdating = True
End Sub
'------------------------------------------



MichD
--------------------------------------------
"achille" a écrit dans le message de groupe de discussion : 4d8b4409$0$7721$

Bonjour

J'ai un tableau dont le nom de mes clients se trouvent en colonne F ( allant
de F7 à l'infini)
et le montant des factures correspondant se trouvant en colonne I ( allant
de I7 à l'infini).

j 'aimerai qu'une macro me reprenne les noms des clients sans doublons en
colonne A et me mette le cumul de factures pour chaque client en colonne B
dans une feuille appelée "CA2010"

est possible?

merci d'avance!
Avatar
MichD
Dans la procédure, il faut modifier :

.EntireRow.AutoFit

Par

.EntireColumn.AutoFit


MichD
--------------------------------------------
Avatar
MichD
Selon l'organisation de tes données :


'-----------------------------------------
Sub test()
Dim DerLig As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Feuille source des données à adapter
DerLig = .Range("F65536").End(xlUp).Row
With .Range("F7:F" & DerLig)
.AdvancedFilter xlFilterCopy, , Feuil2.Range("A1"), True
End With
.Range("F7:F" & DerLig).Name = "MLesNoms"
.Range("i7:i" & DerLig).Name = "MLesDonnées"
End With
With Worksheets("CA2010") 'feuille de destination des données
.Range("A1:A" & .Range("A65536").End(xlUp).Row). _
Sort key1:=.Range("A2"), order1:=xlAscending, Header:=xlYes
.Range("B1") = "Total"
.Range("B2").Formula = "=Sumproduct((MLesNoms=" & _
.Range("A2").Address(0, 0) & ")*1,(MLesDonnées))"
With .Range("B2:B" & .Range("A65536").End(xlUp).Row)
.FillDown
.Value = .Value
With .Offset(, -1).Resize(, 2)
.EntireColumn.AutoFit
End With
End With

End With
Application.Names("MLesNoms").Delete
Application.Names("MLesDonnées").Delete
Application.ScreenUpdating = True
End Sub
'-----------------------------------------


MichD
--------------------------------------------