Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Qu'y a t'il de faux dans cette ligne ?

sj4555

XLDnaute Junior
Bonjour,
Code:
Range("C5") = "=SUMIFS(PG1!$D:PG1!$D,PG1!$H:PG1!$H,""2020"",PG1!$G:PG1!$G,""mars"")"

Le Visual Basic me renvoie une erreur sur cette ligne,

Pour moi l'intérêt de cette ligne est simplement de récupérer dans la cellule C5 de la feuille "Consommation" la somme des valeurs de la colonne D de la feuille "PG1" dont les valeurs des cellules des colonnes H et G sont respectivement "2020" et "mars",

Une erreur de syntaxe m'aurait échappée ou il s'agit d'autre chose ?
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, sj455, cp4

Il manquait juste ce que j'ai ajouté ci-dessous
ActiveSheet.Range("C5").Formula = "=SUMIFS('PG1'!$D:$D,'PG1'!$H:$H,""2020"",'PG1'!$G:$G,""mars"")"
PS: test OK sur Excel 2013
 

Staple1600

XLDnaute Barbatruc
Re

Une variante (qui a mon sens) est plus ergonomique
VB:
Sub SUMIFS_en_VBA()
Dim rngD As Range, rngG As Range, rngH As Range
With Sheets("PG1")
Set rngD = .[D:D]: Set rngG = .[G:G]: Set rngH = .[H:H]
End With
[C5] = Application.SumIfs(rngD, rngH, "2020", rngG, "mars")
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Parce que le confinement ,c'est long, une version paramétrée.

VB:
Sub Test_OK()
vSUMIFS Sheets("PG1"), Sheets("Consommation").Range("C5"), "2020", "mars"
vSUMIFS Sheets("PG1"), Sheets("Consommation").Range("C6"), "2020", "janvier"
End Sub
Private Sub vSUMIFS(F As Worksheet, rDesti As Range, crit1 As String, crit2 As String)
Dim RngD As Range, rngG As Range, rngH As Range
With F
Set RngD = .[D:D]: Set rngG = .[G:G]: Set rngH = .[H:H]
End With
rDesti = Application.SumIfs(RngD, rngH, crit1, rngG, crit2)
End Sub
 

cp4

XLDnaute Barbatruc
Salut Staple1600,
En effet, le confinement ça pèse.
Bonne soirée.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…