Bonjour
Je suis surpris que sommeprod prenne une minute....
Bien vérifier que les cellules de la colonne J soient bien formatées en
date.
D'abord, sommeprod ne peut s'utiliser sur une colonne complète. Il lui
faut au moins une ligne de libre (celle des titres de colonnes suffit).
Si j'ai bien compris, il suffit de calculer le nombre de fois que le
mois de décembre se trouve dans la colonne A
=Sommeprod((mois(J2:J100))*1) --> à placer dans une cellule de la
même feuille (ex: en A1) et valider par un simple "Enter". Sommeprod
n'est pas une matricielle.
-----------------------------------
ou bien, toujours les dates en col J
compteur=0
for each c in range("j1:j100")
if month(c) then
compteur=compteur+1
end if
next
msgbox compteur
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"merguez07" a écrit dans le message de groupe de discussion :
4d564d34$0$8434$
Bonjour à tous,
voilà mon problème est assez simple
J'ai une fichier excel sous Excel 2000 dans lequel j'ai des tableau avec
un certain nombre de calcul matriciel utilisant la formule sommeprod.
Pour donner un peu plus de visibilité dans les formules (il s'agit de
formule sommeprod à rallonge) j'ai décidé de créer des formules
personnalisés.
Jusque la pas de problème, plutôt que d'utiliser des formules sommeprod
j'utilise donc sous vba des boucles qui balaye chaque ligne et me donne
le résultat escompté. le hic c'est le temps de calcul qui peut dépasser
une minute alors qu'avec les sommeprod le résultat était dans la seconde.
La solution serait donc d'utiliser les sommeprod dans le vba et là je
bloque
ci dessous je dois calculer le nombre de date en décembre. La date se
trouve dans la 10eme colonne de la feuille "test"
Total > Application.WorksheetFunction.SumProduct((Month(Worksheets("test").Columns(10)) >
12))
là le programme sort de la formule sans calcul et sans message d'erreur
J'ai aussi essayé
Total = [SumProduct((Month(Worksheets("test").Columns(10)) = 12))]
et j'ai un message d'erreur 2015
Help me please
Bonjour
Je suis surpris que sommeprod prenne une minute....
Bien vérifier que les cellules de la colonne J soient bien formatées en
date.
D'abord, sommeprod ne peut s'utiliser sur une colonne complète. Il lui
faut au moins une ligne de libre (celle des titres de colonnes suffit).
Si j'ai bien compris, il suffit de calculer le nombre de fois que le
mois de décembre se trouve dans la colonne A
=Sommeprod((mois(J2:J100))*1) --> à placer dans une cellule de la
même feuille (ex: en A1) et valider par un simple "Enter". Sommeprod
n'est pas une matricielle.
-----------------------------------
ou bien, toujours les dates en col J
compteur=0
for each c in range("j1:j100")
if month(c) then
compteur=compteur+1
end if
next
msgbox compteur
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"merguez07" a écrit dans le message de groupe de discussion :
4d564d34$0$8434$426a74cc@news.free.fr...
Bonjour à tous,
voilà mon problème est assez simple
J'ai une fichier excel sous Excel 2000 dans lequel j'ai des tableau avec
un certain nombre de calcul matriciel utilisant la formule sommeprod.
Pour donner un peu plus de visibilité dans les formules (il s'agit de
formule sommeprod à rallonge) j'ai décidé de créer des formules
personnalisés.
Jusque la pas de problème, plutôt que d'utiliser des formules sommeprod
j'utilise donc sous vba des boucles qui balaye chaque ligne et me donne
le résultat escompté. le hic c'est le temps de calcul qui peut dépasser
une minute alors qu'avec les sommeprod le résultat était dans la seconde.
La solution serait donc d'utiliser les sommeprod dans le vba et là je
bloque
ci dessous je dois calculer le nombre de date en décembre. La date se
trouve dans la 10eme colonne de la feuille "test"
Total > Application.WorksheetFunction.SumProduct((Month(Worksheets("test").Columns(10)) >
12))
là le programme sort de la formule sans calcul et sans message d'erreur
J'ai aussi essayé
Total = [SumProduct((Month(Worksheets("test").Columns(10)) = 12))]
et j'ai un message d'erreur 2015
Help me please
Bonjour
Je suis surpris que sommeprod prenne une minute....
Bien vérifier que les cellules de la colonne J soient bien formatées en
date.
D'abord, sommeprod ne peut s'utiliser sur une colonne complète. Il lui
faut au moins une ligne de libre (celle des titres de colonnes suffit).
Si j'ai bien compris, il suffit de calculer le nombre de fois que le
mois de décembre se trouve dans la colonne A
=Sommeprod((mois(J2:J100))*1) --> à placer dans une cellule de la
même feuille (ex: en A1) et valider par un simple "Enter". Sommeprod
n'est pas une matricielle.
-----------------------------------
ou bien, toujours les dates en col J
compteur=0
for each c in range("j1:j100")
if month(c) then
compteur=compteur+1
end if
next
msgbox compteur
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"merguez07" a écrit dans le message de groupe de discussion :
4d564d34$0$8434$
Bonjour à tous,
voilà mon problème est assez simple
J'ai une fichier excel sous Excel 2000 dans lequel j'ai des tableau avec
un certain nombre de calcul matriciel utilisant la formule sommeprod.
Pour donner un peu plus de visibilité dans les formules (il s'agit de
formule sommeprod à rallonge) j'ai décidé de créer des formules
personnalisés.
Jusque la pas de problème, plutôt que d'utiliser des formules sommeprod
j'utilise donc sous vba des boucles qui balaye chaque ligne et me donne
le résultat escompté. le hic c'est le temps de calcul qui peut dépasser
une minute alors qu'avec les sommeprod le résultat était dans la seconde.
La solution serait donc d'utiliser les sommeprod dans le vba et là je
bloque
ci dessous je dois calculer le nombre de date en décembre. La date se
trouve dans la 10eme colonne de la feuille "test"
Total > Application.WorksheetFunction.SumProduct((Month(Worksheets("test").Columns(10)) >
12))
là le programme sort de la formule sans calcul et sans message d'erreur
J'ai aussi essayé
Total = [SumProduct((Month(Worksheets("test").Columns(10)) = 12))]
et j'ai un message d'erreur 2015
Help me please
Peut-être que tu préfères cette syntaxe :
'-------------------------------------------------
Sub test()
Dim Adr As String
Dim LeMois As Integer, Lannée As Integer
LeMois = 2 ' Le mois et l'année que tu désires
Lannée = 2011
With Worksheets("Feuil1")
Adr = .Name& "!"& .Range("J1:J"& .Range("J65536").End(xlUp).Row).Address
End With
'Nombre de données tenant compte que tu mois
x = Evaluate("SumProduct((month("& Adr& ")="& LeMois& ")*1)")
'Nombre de données tenant compte du mois et de l'année
F = Evaluate("SumProduct((month("& Adr& ")="& LeMois& _
")*(year("& Adr& ")="& Lannée& "))")
End Sub
'-------------------------------------------------
MichD
--------------------------------------------
Peut-être que tu préfères cette syntaxe :
'-------------------------------------------------
Sub test()
Dim Adr As String
Dim LeMois As Integer, Lannée As Integer
LeMois = 2 ' Le mois et l'année que tu désires
Lannée = 2011
With Worksheets("Feuil1")
Adr = .Name& "!"& .Range("J1:J"& .Range("J65536").End(xlUp).Row).Address
End With
'Nombre de données tenant compte que tu mois
x = Evaluate("SumProduct((month("& Adr& ")="& LeMois& ")*1)")
'Nombre de données tenant compte du mois et de l'année
F = Evaluate("SumProduct((month("& Adr& ")="& LeMois& _
")*(year("& Adr& ")="& Lannée& "))")
End Sub
'-------------------------------------------------
MichD
--------------------------------------------
Peut-être que tu préfères cette syntaxe :
'-------------------------------------------------
Sub test()
Dim Adr As String
Dim LeMois As Integer, Lannée As Integer
LeMois = 2 ' Le mois et l'année que tu désires
Lannée = 2011
With Worksheets("Feuil1")
Adr = .Name& "!"& .Range("J1:J"& .Range("J65536").End(xlUp).Row).Address
End With
'Nombre de données tenant compte que tu mois
x = Evaluate("SumProduct((month("& Adr& ")="& LeMois& ")*1)")
'Nombre de données tenant compte du mois et de l'année
F = Evaluate("SumProduct((month("& Adr& ")="& LeMois& _
")*(year("& Adr& ")="& Lannée& "))")
End Sub
'-------------------------------------------------
MichD
--------------------------------------------
Donc SP travaille comme une matricielle, mais se valide du bout d'un
doigt.
Donc SP travaille comme une matricielle, mais se valide du bout d'un
doigt.
Donc SP travaille comme une matricielle, mais se valide du bout d'un
doigt.