Report de données et somme si en Vba

Citaro

XLDnaute Occasionnel
Bonjour au forum et bonne année à tous ses membres et leurs proches !

Dans mon classeur en pièce jointe j'ai une feuille "Compte", une feuille "Données" et une feuille "Résultat Ana".
Sur la feuille "Résultat Ana" en colonne A et B, le report des valeurs des colonnes A et B jusqu'à la dernière ligne non vide de la feuille Données
En colonne C 1 =SOMME.SI(Compte!G5:G;Données!A2;Compte!J5:J)
En colonne C 2 =SOMME.SI(Compte!G5:G;Données!A3;Compte!J5:J)
En colonne C 3 =SOMME.SI(Compte!G5:G;Données!A4;Compte!J5:J)
En colonne C 4 =SOMME.SI(Compte!G5:G;Données!A5;Compte!J5:J)
Etc
Etc jusqu'à la dernière ligne non vide de la colonne A de la feuille Résultat Ana

Le tout en vba
Est-ce possible ?
Citaro
 

Pièces jointes

  • Test_Report_Vba.xlsx
    10.4 KB · Affichages: 17

camarchepas

XLDnaute Barbatruc
Re : Report de données et somme si en Vba

Bonjour ,

une astuce à essayer est l'enregistreur de macros,

tu passes en mode enregistrement , puis tu ecris la formule sur une ligne ,
tu arrêtes le mode enregistrement,

ensuite tu enregistres le fichier en xlsm car il faut conserver les macros
il ne reste ensuite qu'a faire une boucle allant de la 2eme ligne jusque la derniére.

voilà voilà
 
G

Guest

Guest
Re : Report de données et somme si en Vba

Bonjour,

Si j'ai bien compris le sens de la formule, une proposition par tableau croisé dynamique qui a l'avantage d'être actualisable facilement et d'alléger l'ensemble.

A+
 

Citaro

XLDnaute Occasionnel
Re : Report de données et somme si en Vba

Bonjour,

Merci pour vos réponses, le tableau croisé dynamique ne donne pas la possibilité d'avoir un code analytique qui n'est dans la feuille Compte mais doit apparaitre dans la feuille Résultat Ana avec la valeur 0
 

Citaro

XLDnaute Occasionnel
Re : Report de données et somme si en Vba

Bonsoir,

Avec l'enregistreur j'obtiens ce code :

Sub azerty()
'
' azerty Macro
'

'
Range("A1").Select
ActiveCell.FormulaR1C1 = "=Données!R[1]C"
Range("A1").Select
Selection.AutoFill Destination:=Range("A1:B1"), Type:=xlFillDefault
Range("A1:B1").Select
Range("C1").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF(Compte!C[4],'Résultat Ana'!RC[-2],Compte!C[7])"
End Sub

Mais je ne sais pas faire le reste, je bloque sur la boucle allant de la 2eme ligne jusque la dernière

Bonne soirée
 

Discussions similaires

Réponses
22
Affichages
788

Statistiques des forums

Discussions
312 322
Messages
2 087 270
Membres
103 503
dernier inscrit
maison