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

Evaluate boucle

  • Initiateur de la discussion Initiateur de la discussion Hoareau
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Hoareau

XLDnaute Occasionnel
Bonjour

si je mets dans la cellule

=SOMME((F3:I3>=1)*(F3:I3<=5))

cela fonctionnne


Si je fais une boucle avec evaluate, cela ne fonctionne pas

merci


Sub Tranches()

For i = 3 To 367

Tranche_1 = Range("F" & i & ":I" & i)

'Ne fonctionne pas
Cells(i, 31) = Evaluate("=sum((Tranche_1 >= 1)*(Tranche_1 <= 5))")

'Fonctionne pour test
Range("af" & i & ":ai" & i) = Tranche_1

Next

End Sub
 
Re : Evaluate boucle

bonsoir hoareau

Salut kjin

Pas sur d'avoir compris

A tester
Code:
Sub Tranches()
For i = 3 To 367
Tranche_1 = Range("F" & i & ":I" & i).Address
'Ne fonctionne pas
Cells(i, 31) = Evaluate("=sumproduct((" & Tranche_1 & ">= 1)*(" & Tranche_1 & "<= 5))")
'Fonctionne pour test
'Range("af" & i & ":ai" & i) = Tranche_1
Next
End Sub
 
Re : Evaluate boucle

Re

Essentiellement parceque Tranche_1 etant entre les " " est compris comme un texte et non comme un Range
La meilleure façon de proceder est d'ecrire la formule voulue dans la feuille puis d'aller chercher la façon de l'ecrire en faisant un msgbox(range("cellule ou est la formule").formula)
Ensuite traduire en remplacant du texte par une variable qui se trouvera ainsi: "..." & var & "..."
 
Re : Evaluate boucle

Merci pour les explications, J'ai essayé d'appliquer les conseils, mais toujours ce problème de variable.

ajouté T_1_Inf pour tranche inférieure
ajouté T_1_Supp pour tranche suppérieure



Sub Tranches()

T_1_Inf = 1
T_1_Supp = 10

For i = 3 To 367

Plage = Range("F" & i & ":I" & i).Address

'Ne fonctionne pas
Cells(i, 31) = Evaluate("=sumproduct((" & Plage & " >= T_1_Inf) * (" & Plage & " <= T_1_Supp))")

'Fonctionne
Cells(i, 32) = Evaluate("=sumproduct((" & Plage & ">= 1)*(" & Plage & "<= 10))")

Next

End Sub
 
Re : Evaluate boucle

Salut
Bonjour le fil

peut être en modifiant comme ceux ci
Code:
[SIZE=1]Cells(i, 7) = Evaluate("=sumproduct((" & Plage & ">=[COLOR=red]"[/COLOR][COLOR=red] &[/COLOR] T_1_Inf [COLOR=red]&[/COLOR] [COLOR=red]"[/COLOR]) _[/SIZE]
[SIZE=1]                                       * (" & Plage & " <=[COLOR=red]" &[/COLOR] T_1_Supp [COLOR=red]&[/COLOR] [COLOR=red]"[/COLOR]))")[/SIZE]
toujours ce problème de variables Texte Lol
bonne journée
 
Dernière édition:
Re : Evaluate boucle

Re, bonjour Bebere 🙂
Ecrire d'abord en formule pour vérifier, puis transformer en valeur
Code:
Sub Tranches()
a = 1
b = 10

For i = 3 To 367
    rng = Range("F" & i & ":I" & i).Address
    With Cells(i, 1)
        .FormulaLocal = "=SOMMEPROD((" & rng & ">=" & a & ")*(" & rng & "<=" & b & "))"
        .Value = .Value
    End With
Next

End Sub
A+
kjin
 
Re : Evaluate boucle

bonjour Kjin,Hoareau?chti,pierre-Jean
que tu beau monde et salutations amicales
en suivant l'idée de Chti
Sub Tranches()
a = 1
b = 4

For I = 3 To 367
Set rng = Range("F" & I & ":I" & I)
rng.Name = "LigneI"
With Cells(I, 1)
.FormulaLocal = Evaluate("SUMPRODUCT((ligneI>=" & a & ")*(ligneI<=" & b & "))")
' .Value = .Value
End With
Next

end sub

à bientôt
 
Re : Evaluate boucle

Bonjour à tous


Pourquoi passer par une boucle ?

Code:
Sub Macro5()
Dim a, b
a = 1
b = 10
With Range("A3:A367")
.FormulaR1C1 = "=SUMPRODUCT((RC[5]:RC[8]>=" & a & ")*(RC[5]:RC[8]<=" & b & "))"
.Value=.Value
End with
End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
788
Réponses
5
Affichages
914
Réponses
8
Affichages
782
Réponses
2
Affichages
528
Réponses
7
Affichages
538
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…