Bonjour à tous,
décidemment le calcul matriciel en VBA c'est pas de la tarte, il y a
toujours une syntaxe qui merdois
En l'occurence je souhaite faire (à titre d'exemple) un calcul tout simple
j'ai mis dans une colonne 5 valeurs :
B2="CE"
B3="CE"
B4="AM"
B5="AM"
B6="AM"
J'ai donné le nom "Champs" à ces 5 cellules
J'ai en G4 la variable que je veux comptabiliser dans Champs
J'ai nommé G4 en "Type"
Enfin je voudrais comptabiliser le nombre de variables "type" dans le
"Champs" en utilisant la fonction SUMPRODUCT
Je veux mettre le résultat en G6 cellule que j'ai nommé "Total"
Je déclenche mon calcul par un bouton qui envoie vers la macro suivante
Private Sub CommandButton1_Click()
Ty = Range("Type")
With Worksheets(1)
ChampsDeTest = .Name & "!" & .Range("Champs").Address
End With
x = Application.Evaluate("=SUMPRODUCT((" & ChampsDeTest & "=" & Ty
& ")*1)") ' C'est ici qu'il y a erreur 2029
Range("Total") = x
End Sub
Malheureusement le calcul de x ne marche pas j'ai une erreur 2029
Sub Test() Range("Total") = Evaluate("=SUMPRODUCT(--(Champs=Type))") End Sub
___________________________________________________ merguez07 a émis l'idée suivante :
Bonjour à tous, décidemment le calcul matriciel en VBA c'est pas de la tarte, il y a toujours une syntaxe qui merdois
En l'occurence je souhaite faire (à titre d'exemple) un calcul tout simple
j'ai mis dans une colonne 5 valeurs : B2="CE" B3="CE" B4="AM" B5="AM" B6="AM"
J'ai donné le nom "Champs" à ces 5 cellules
J'ai en G4 la variable que je veux comptabiliser dans Champs J'ai nommé G4 en "Type"
Enfin je voudrais comptabiliser le nombre de variables "type" dans le "Champs" en utilisant la fonction SUMPRODUCT
Je veux mettre le résultat en G6 cellule que j'ai nommé "Total"
Je déclenche mon calcul par un bouton qui envoie vers la macro suivante
Private Sub CommandButton1_Click()
Ty = Range("Type") With Worksheets(1) ChampsDeTest = .Name & "!" & .Range("Champs").Address End With x = Application.Evaluate("=SUMPRODUCT((" & ChampsDeTest & "=" & Ty & ")*1)") ' C'est ici qu'il y a erreur 2029 Range("Total") = x
End Sub
Malheureusement le calcul de x ne marche pas j'ai une erreur 2029
Where is the problème ?
Bonjour merguez07,
Le code suivant devrait le faire:
Sub Test()
Range("Total") = Evaluate("=SUMPRODUCT(--(Champs=Type))")
End Sub
___________________________________________________
merguez07 a émis l'idée suivante :
Bonjour à tous,
décidemment le calcul matriciel en VBA c'est pas de la tarte, il y a toujours
une syntaxe qui merdois
En l'occurence je souhaite faire (à titre d'exemple) un calcul tout simple
j'ai mis dans une colonne 5 valeurs :
B2="CE"
B3="CE"
B4="AM"
B5="AM"
B6="AM"
J'ai donné le nom "Champs" à ces 5 cellules
J'ai en G4 la variable que je veux comptabiliser dans Champs
J'ai nommé G4 en "Type"
Enfin je voudrais comptabiliser le nombre de variables "type" dans le
"Champs" en utilisant la fonction SUMPRODUCT
Je veux mettre le résultat en G6 cellule que j'ai nommé "Total"
Je déclenche mon calcul par un bouton qui envoie vers la macro suivante
Private Sub CommandButton1_Click()
Ty = Range("Type")
With Worksheets(1)
ChampsDeTest = .Name & "!" & .Range("Champs").Address
End With
x = Application.Evaluate("=SUMPRODUCT((" & ChampsDeTest & "=" & Ty &
")*1)") ' C'est ici qu'il y a erreur 2029
Range("Total") = x
End Sub
Malheureusement le calcul de x ne marche pas j'ai une erreur 2029
Sub Test() Range("Total") = Evaluate("=SUMPRODUCT(--(Champs=Type))") End Sub
___________________________________________________ merguez07 a émis l'idée suivante :
Bonjour à tous, décidemment le calcul matriciel en VBA c'est pas de la tarte, il y a toujours une syntaxe qui merdois
En l'occurence je souhaite faire (à titre d'exemple) un calcul tout simple
j'ai mis dans une colonne 5 valeurs : B2="CE" B3="CE" B4="AM" B5="AM" B6="AM"
J'ai donné le nom "Champs" à ces 5 cellules
J'ai en G4 la variable que je veux comptabiliser dans Champs J'ai nommé G4 en "Type"
Enfin je voudrais comptabiliser le nombre de variables "type" dans le "Champs" en utilisant la fonction SUMPRODUCT
Je veux mettre le résultat en G6 cellule que j'ai nommé "Total"
Je déclenche mon calcul par un bouton qui envoie vers la macro suivante
Private Sub CommandButton1_Click()
Ty = Range("Type") With Worksheets(1) ChampsDeTest = .Name & "!" & .Range("Champs").Address End With x = Application.Evaluate("=SUMPRODUCT((" & ChampsDeTest & "=" & Ty & ")*1)") ' C'est ici qu'il y a erreur 2029 Range("Total") = x
End Sub
Malheureusement le calcul de x ne marche pas j'ai une erreur 2029
Where is the problème ?
michdenis
Si tu utilises des noms de plage, en vba, la formule est :
Sub Test() Range("Total") = Evaluate("=SUMPRODUCT(--(Champs=Type))") End Sub
___________________________________________________ merguez07 a émis l'idée suivante :
Bonjour à tous, décidemment le calcul matriciel en VBA c'est pas de la tarte, il y a toujours une syntaxe qui merdois
En l'occurence je souhaite faire (à titre d'exemple) un calcul tout simple
j'ai mis dans une colonne 5 valeurs : B2="CE" B3="CE" B4="AM" B5="AM" B6="AM"
J'ai donné le nom "Champs" à ces 5 cellules
J'ai en G4 la variable que je veux comptabiliser dans Champs J'ai nommé G4 en "Type"
Enfin je voudrais comptabiliser le nombre de variables "type" dans le "Champs" en utilisant la fonction SUMPRODUCT
Je veux mettre le résultat en G6 cellule que j'ai nommé "Total"
Je déclenche mon calcul par un bouton qui envoie vers la macro suivante
Private Sub CommandButton1_Click()
Ty = Range("Type") With Worksheets(1) ChampsDeTest = .Name & "!" & .Range("Champs").Address End With x = Application.Evaluate("=SUMPRODUCT((" & ChampsDeTest & "=" & Ty & ")*1)") ' C'est ici qu'il y a erreur 2029 Range("Total") = x
End Sub
Malheureusement le calcul de x ne marche pas j'ai une erreur 2029
Where is the problème ?
Merci ça marche
Le 26.02.2011 14:16, Charabeuh a écrit :
Bonjour merguez07,
Le code suivant devrait le faire:
Sub Test()
Range("Total") = Evaluate("=SUMPRODUCT(--(Champs=Type))")
End Sub
___________________________________________________
merguez07 a émis l'idée suivante :
Bonjour à tous,
décidemment le calcul matriciel en VBA c'est pas de la tarte, il y a
toujours une syntaxe qui merdois
En l'occurence je souhaite faire (à titre d'exemple) un calcul tout
simple
j'ai mis dans une colonne 5 valeurs :
B2="CE"
B3="CE"
B4="AM"
B5="AM"
B6="AM"
J'ai donné le nom "Champs" à ces 5 cellules
J'ai en G4 la variable que je veux comptabiliser dans Champs
J'ai nommé G4 en "Type"
Enfin je voudrais comptabiliser le nombre de variables "type" dans le
"Champs" en utilisant la fonction SUMPRODUCT
Je veux mettre le résultat en G6 cellule que j'ai nommé "Total"
Je déclenche mon calcul par un bouton qui envoie vers la macro suivante
Private Sub CommandButton1_Click()
Ty = Range("Type")
With Worksheets(1)
ChampsDeTest = .Name & "!" & .Range("Champs").Address
End With
x = Application.Evaluate("=SUMPRODUCT((" & ChampsDeTest & "=" & Ty &
")*1)") ' C'est ici qu'il y a erreur 2029
Range("Total") = x
End Sub
Malheureusement le calcul de x ne marche pas j'ai une erreur 2029
Sub Test() Range("Total") = Evaluate("=SUMPRODUCT(--(Champs=Type))") End Sub
___________________________________________________ merguez07 a émis l'idée suivante :
Bonjour à tous, décidemment le calcul matriciel en VBA c'est pas de la tarte, il y a toujours une syntaxe qui merdois
En l'occurence je souhaite faire (à titre d'exemple) un calcul tout simple
j'ai mis dans une colonne 5 valeurs : B2="CE" B3="CE" B4="AM" B5="AM" B6="AM"
J'ai donné le nom "Champs" à ces 5 cellules
J'ai en G4 la variable que je veux comptabiliser dans Champs J'ai nommé G4 en "Type"
Enfin je voudrais comptabiliser le nombre de variables "type" dans le "Champs" en utilisant la fonction SUMPRODUCT
Je veux mettre le résultat en G6 cellule que j'ai nommé "Total"
Je déclenche mon calcul par un bouton qui envoie vers la macro suivante
Private Sub CommandButton1_Click()
Ty = Range("Type") With Worksheets(1) ChampsDeTest = .Name & "!" & .Range("Champs").Address End With x = Application.Evaluate("=SUMPRODUCT((" & ChampsDeTest & "=" & Ty & ")*1)") ' C'est ici qu'il y a erreur 2029 Range("Total") = x
End Sub
Malheureusement le calcul de x ne marche pas j'ai une erreur 2029
Where is the problème ?
merguez07
Merci Mich, effectivement dans ce cas ça fonctionne.
Par contre j'ai encore des pb lorsque je nomme les plages dans la procédure (le programme sort de la procedure au moment de la rencontre avec le code
dim M as string M="CE" ThisWorkbook.Names.Add "type", M, False
Le 26.02.2011 14:42, michdenis a écrit :
Si tu utilises des noms de plage, en vba, la formule est :
Si tu procèdes ainsi, il n'y a pas de raison que cela ne fonctionne pas... Tu dois avoir un environnement particulier!
Tu dois créer le nom "type" avant de tenter d'évaluer la formule. Ceci suppose que Champ est aussi une plage nommée.
'--------------------------- Sub test() Dim M As String M = "CE" ThisWorkbook.Names.Add "type", M, False a = [Sumproduct((Champ=type)*1)] End Sub '---------------------------
MichD -------------------------------------------- "merguez07" a écrit dans le message de groupe de discussion : 4d6a01e9$0$10730$
Merci Mich, effectivement dans ce cas ça fonctionne.
Par contre j'ai encore des pb lorsque je nomme les plages dans la procédure (le programme sort de la procedure au moment de la rencontre avec le code
dim M as string M="CE" ThisWorkbook.Names.Add "type", M, False
Le 26.02.2011 14:42, michdenis a écrit :
Si tu utilises des noms de plage, en vba, la formule est :
Si tu procèdes ainsi, il n'y a pas de raison que cela ne fonctionne pas...
Tu dois avoir un environnement particulier!
Tu dois créer le nom "type" avant de tenter d'évaluer la formule.
Ceci suppose que Champ est aussi une plage nommée.
'---------------------------
Sub test()
Dim M As String
M = "CE"
ThisWorkbook.Names.Add "type", M, False
a = [Sumproduct((Champ=type)*1)]
End Sub
'---------------------------
MichD
--------------------------------------------
"merguez07" a écrit dans le message de groupe de discussion : 4d6a01e9$0$10730$426a74cc@news.free.fr...
Merci Mich, effectivement dans ce cas ça fonctionne.
Par contre j'ai encore des pb lorsque je nomme les plages dans la
procédure (le programme sort de la procedure au moment de la rencontre
avec le code
dim M as string
M="CE"
ThisWorkbook.Names.Add "type", M, False
Le 26.02.2011 14:42, michdenis a écrit :
Si tu utilises des noms de plage, en vba, la formule est :
Si tu procèdes ainsi, il n'y a pas de raison que cela ne fonctionne pas... Tu dois avoir un environnement particulier!
Tu dois créer le nom "type" avant de tenter d'évaluer la formule. Ceci suppose que Champ est aussi une plage nommée.
'--------------------------- Sub test() Dim M As String M = "CE" ThisWorkbook.Names.Add "type", M, False a = [Sumproduct((Champ=type)*1)] End Sub '---------------------------
MichD -------------------------------------------- "merguez07" a écrit dans le message de groupe de discussion : 4d6a01e9$0$10730$
Merci Mich, effectivement dans ce cas ça fonctionne.
Par contre j'ai encore des pb lorsque je nomme les plages dans la procédure (le programme sort de la procedure au moment de la rencontre avec le code
dim M as string M="CE" ThisWorkbook.Names.Add "type", M, False
Le 26.02.2011 14:42, michdenis a écrit :
Si tu utilises des noms de plage, en vba, la formule est :