J'utilise cette macro pour construire des graphiques XY.
Question :
Est-ce possible de remplacer le «For each» par
une évaluation matricielle ?
Et si oui, comment ?
Sub Fonction()
Dim f As String
'[B4] contient une expression en x
'et est formatée «texte»
'C'est ma fonction.
'Exemple :
'(x^2)^(1/3)-sin(-x^2)+EXP(1)^(-2*x^2)
f = [B4]
f = Replace(f, ",", ".")
f = Replace(f, "-x", "+0-x")
'La plage nommée «vx» (en colonne) contient
'50 valeurs numériques de -5 à 5.
Set ici = Range("vx")
'Évalue la fonction pour chaque valeur de x :
For Each valeur In ici
i = i + 1
v = Replace(ici(i, 1), ",", ".")
ici(i, 2) = Evaluate(Replace(f, "x", v))
Next
'Question : Est-ce possible de remplacer le
'«For each» par une évaluation matricielle ?
'Serge
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
AV
Pourquoi pas :
Sub zzzzz() f = [B4] [vx].Offset(0, 1) = Evaluate(Replace(Replace(f, ",", "."), "x", v)) End Sub
PS : > 'La plage nommée «vx» (en colonne) Il me semble (d'après lecture de ton code) que la plage est plutôt en lignes
AV
"garnote" a écrit dans le message news: 8rIbb.24584$
Bonsoir à tous toutes,
J'utilise cette macro pour construire des graphiques XY. Question : Est-ce possible de remplacer le «For each» par une évaluation matricielle ? Et si oui, comment ?
Sub Fonction() Dim f As String '[B4] contient une expression en x 'et est formatée «texte» 'C'est ma fonction. 'Exemple : '(x^2)^(1/3)-sin(-x^2)+EXP(1)^(-2*x^2) f = [B4] f = Replace(f, ",", ".") f = Replace(f, "-x", "+0-x") 'La plage nommée «vx» (en colonne) contient '50 valeurs numériques de -5 à 5. Set ici = Range("vx") 'Évalue la fonction pour chaque valeur de x : For Each valeur In ici i = i + 1 v = Replace(ici(i, 1), ",", ".") ici(i, 2) = Evaluate(Replace(f, "x", v)) Next 'Question : Est-ce possible de remplacer le '«For each» par une évaluation matricielle ? 'Serge End Sub
;-))) et merci
Serge
Pourquoi pas :
Sub zzzzz()
f = [B4]
[vx].Offset(0, 1) = Evaluate(Replace(Replace(f, ",", "."), "x", v))
End Sub
PS : > 'La plage nommée «vx» (en colonne)
Il me semble (d'après lecture de ton code) que la plage est plutôt en lignes
AV
"garnote" <laogarno@globetrotter.net> a écrit dans le message news:
8rIbb.24584$C92.9492@charlie.risq.qc.ca...
Bonsoir à tous toutes,
J'utilise cette macro pour construire des graphiques XY.
Question :
Est-ce possible de remplacer le «For each» par
une évaluation matricielle ?
Et si oui, comment ?
Sub Fonction()
Dim f As String
'[B4] contient une expression en x
'et est formatée «texte»
'C'est ma fonction.
'Exemple :
'(x^2)^(1/3)-sin(-x^2)+EXP(1)^(-2*x^2)
f = [B4]
f = Replace(f, ",", ".")
f = Replace(f, "-x", "+0-x")
'La plage nommée «vx» (en colonne) contient
'50 valeurs numériques de -5 à 5.
Set ici = Range("vx")
'Évalue la fonction pour chaque valeur de x :
For Each valeur In ici
i = i + 1
v = Replace(ici(i, 1), ",", ".")
ici(i, 2) = Evaluate(Replace(f, "x", v))
Next
'Question : Est-ce possible de remplacer le
'«For each» par une évaluation matricielle ?
'Serge
End Sub
Sub zzzzz() f = [B4] [vx].Offset(0, 1) = Evaluate(Replace(Replace(f, ",", "."), "x", v)) End Sub
PS : > 'La plage nommée «vx» (en colonne) Il me semble (d'après lecture de ton code) que la plage est plutôt en lignes
AV
"garnote" a écrit dans le message news: 8rIbb.24584$
Bonsoir à tous toutes,
J'utilise cette macro pour construire des graphiques XY. Question : Est-ce possible de remplacer le «For each» par une évaluation matricielle ? Et si oui, comment ?
Sub Fonction() Dim f As String '[B4] contient une expression en x 'et est formatée «texte» 'C'est ma fonction. 'Exemple : '(x^2)^(1/3)-sin(-x^2)+EXP(1)^(-2*x^2) f = [B4] f = Replace(f, ",", ".") f = Replace(f, "-x", "+0-x") 'La plage nommée «vx» (en colonne) contient '50 valeurs numériques de -5 à 5. Set ici = Range("vx") 'Évalue la fonction pour chaque valeur de x : For Each valeur In ici i = i + 1 v = Replace(ici(i, 1), ",", ".") ici(i, 2) = Evaluate(Replace(f, "x", v)) Next 'Question : Est-ce possible de remplacer le '«For each» par une évaluation matricielle ? 'Serge End Sub
;-))) et merci
Serge
garnote
Salut AV,
Je voulais dire «sur une colonne». L'imbrication des Replace et l'utilisation des [ ] m'a permis d'obtenir ceci :
Sub Fonction()
' Ma fonction, formatée «texte» en A4: ' 1,01*(x^2)^(1/3)-sin(-x^2)/2+EXP(1)^(-x^2)-1,8 ' Valeurs de x de C6 à C55, nommées vx.
f = Replace(Replace([A4], ",", "."), "-x", "+0-x") For Each v In [vx] r = Replace(v, ",", ".") v.Offset(0, 1) = Evaluate(Replace(f, "x", r)) Next
End Sub
MAIS je ne sais toujours pas où insérer ta formule matricielle ! Comment remplacer matriciellement les virgules de [vx] par des points et ensuite évaluer matriciellement f pour chaque valeur de [vx] ?
Serge
"AV" a écrit dans le message de news:
Pourquoi pas :
Sub zzzzz() f = [B4] [vx].Offset(0, 1) = Evaluate(Replace(Replace(f, ",", "."), "x", v)) End Sub
PS : > 'La plage nommée «vx» (en colonne) Il me semble (d'après lecture de ton code) que la plage est plutôt en lignes
AV
"garnote" a écrit dans le message news: 8rIbb.24584$
Bonsoir à tous toutes,
J'utilise cette macro pour construire des graphiques XY. Question : Est-ce possible de remplacer le «For each» par une évaluation matricielle ? Et si oui, comment ?
Sub Fonction() Dim f As String '[B4] contient une expression en x 'et est formatée «texte» 'C'est ma fonction. 'Exemple : '(x^2)^(1/3)-sin(-x^2)+EXP(1)^(-2*x^2) f = [B4] f = Replace(f, ",", ".") f = Replace(f, "-x", "+0-x") 'La plage nommée «vx» (en colonne) contient '50 valeurs numériques de -5 à 5. Set ici = Range("vx") 'Évalue la fonction pour chaque valeur de x : For Each valeur In ici i = i + 1 v = Replace(ici(i, 1), ",", ".") ici(i, 2) = Evaluate(Replace(f, "x", v)) Next 'Question : Est-ce possible de remplacer le '«For each» par une évaluation matricielle ? 'Serge End Sub
;-))) et merci
Serge
Salut AV,
Je voulais dire «sur une colonne».
L'imbrication des Replace et l'utilisation
des [ ] m'a permis d'obtenir ceci :
Sub Fonction()
' Ma fonction, formatée «texte» en A4:
' 1,01*(x^2)^(1/3)-sin(-x^2)/2+EXP(1)^(-x^2)-1,8
' Valeurs de x de C6 à C55, nommées vx.
f = Replace(Replace([A4], ",", "."), "-x", "+0-x")
For Each v In [vx]
r = Replace(v, ",", ".")
v.Offset(0, 1) = Evaluate(Replace(f, "x", r))
Next
End Sub
MAIS je ne sais toujours pas où insérer ta formule matricielle !
Comment remplacer matriciellement les virgules de [vx]
par des points et ensuite évaluer matriciellement f
pour chaque valeur de [vx] ?
Serge
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de news:
OumXvEYgDHA.2984@TK2MSFTNGP11.phx.gbl...
Pourquoi pas :
Sub zzzzz()
f = [B4]
[vx].Offset(0, 1) = Evaluate(Replace(Replace(f, ",", "."), "x", v))
End Sub
PS : > 'La plage nommée «vx» (en colonne)
Il me semble (d'après lecture de ton code) que la plage est plutôt en
lignes
AV
"garnote" <laogarno@globetrotter.net> a écrit dans le message news:
8rIbb.24584$C92.9492@charlie.risq.qc.ca...
Bonsoir à tous toutes,
J'utilise cette macro pour construire des graphiques XY.
Question :
Est-ce possible de remplacer le «For each» par
une évaluation matricielle ?
Et si oui, comment ?
Sub Fonction()
Dim f As String
'[B4] contient une expression en x
'et est formatée «texte»
'C'est ma fonction.
'Exemple :
'(x^2)^(1/3)-sin(-x^2)+EXP(1)^(-2*x^2)
f = [B4]
f = Replace(f, ",", ".")
f = Replace(f, "-x", "+0-x")
'La plage nommée «vx» (en colonne) contient
'50 valeurs numériques de -5 à 5.
Set ici = Range("vx")
'Évalue la fonction pour chaque valeur de x :
For Each valeur In ici
i = i + 1
v = Replace(ici(i, 1), ",", ".")
ici(i, 2) = Evaluate(Replace(f, "x", v))
Next
'Question : Est-ce possible de remplacer le
'«For each» par une évaluation matricielle ?
'Serge
End Sub
Je voulais dire «sur une colonne». L'imbrication des Replace et l'utilisation des [ ] m'a permis d'obtenir ceci :
Sub Fonction()
' Ma fonction, formatée «texte» en A4: ' 1,01*(x^2)^(1/3)-sin(-x^2)/2+EXP(1)^(-x^2)-1,8 ' Valeurs de x de C6 à C55, nommées vx.
f = Replace(Replace([A4], ",", "."), "-x", "+0-x") For Each v In [vx] r = Replace(v, ",", ".") v.Offset(0, 1) = Evaluate(Replace(f, "x", r)) Next
End Sub
MAIS je ne sais toujours pas où insérer ta formule matricielle ! Comment remplacer matriciellement les virgules de [vx] par des points et ensuite évaluer matriciellement f pour chaque valeur de [vx] ?
Serge
"AV" a écrit dans le message de news:
Pourquoi pas :
Sub zzzzz() f = [B4] [vx].Offset(0, 1) = Evaluate(Replace(Replace(f, ",", "."), "x", v)) End Sub
PS : > 'La plage nommée «vx» (en colonne) Il me semble (d'après lecture de ton code) que la plage est plutôt en lignes
AV
"garnote" a écrit dans le message news: 8rIbb.24584$
Bonsoir à tous toutes,
J'utilise cette macro pour construire des graphiques XY. Question : Est-ce possible de remplacer le «For each» par une évaluation matricielle ? Et si oui, comment ?
Sub Fonction() Dim f As String '[B4] contient une expression en x 'et est formatée «texte» 'C'est ma fonction. 'Exemple : '(x^2)^(1/3)-sin(-x^2)+EXP(1)^(-2*x^2) f = [B4] f = Replace(f, ",", ".") f = Replace(f, "-x", "+0-x") 'La plage nommée «vx» (en colonne) contient '50 valeurs numériques de -5 à 5. Set ici = Range("vx") 'Évalue la fonction pour chaque valeur de x : For Each valeur In ici i = i + 1 v = Replace(ici(i, 1), ",", ".") ici(i, 2) = Evaluate(Replace(f, "x", v)) Next 'Question : Est-ce possible de remplacer le '«For each» par une évaluation matricielle ? 'Serge End Sub
;-))) et merci
Serge
AV
Ne reste plus qu'à se débarrasser du «For each» pour la rendre encore plus incompréhensible !!!
Et ma proposition elle fait quoi hein ? Pfffff....
AV
Ne reste plus qu'à se débarrasser du «For each» pour la
rendre encore plus incompréhensible !!!
Et ma proposition elle fait quoi hein ?
Pfffff....
Sub Fonction() f = Replace(Replace([A4], ",", "."), "-x", "+0-x") For Each v In [vx] v.offset(0,1) = Evaluate(Replace(f, "x", Replace(v, ",", "."))) Next v End Sub
ta super proposition ?
Serge
"AV" a écrit dans le message de news: #3ANU$
Ne reste plus qu'à se débarrasser du «For each» pour la rendre encore plus incompréhensible !!!
Et ma proposition elle fait quoi hein ? Pfffff....
Sub Fonction()
f = Replace(Replace([A4], ",", "."), "-x", "+0-x")
For Each v In [vx]
v.offset(0,1) = Evaluate(Replace(f, "x", Replace(v, ",", ".")))
Next v
End Sub
ta super proposition ?
Serge
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de news:
#3ANU$dgDHA.1648@TK2MSFTNGP10.phx.gbl...
Ne reste plus qu'à se débarrasser du «For each» pour la
rendre encore plus incompréhensible !!!
Et ma proposition elle fait quoi hein ?
Pfffff....
Sub Fonction() f = Replace(Replace([A4], ",", "."), "-x", "+0-x") For Each v In [vx] v.offset(0,1) = Evaluate(Replace(f, "x", Replace(v, ",", "."))) Next v End Sub
ta super proposition ?
Serge
"AV" a écrit dans le message de news: #3ANU$
Ne reste plus qu'à se débarrasser du «For each» pour la rendre encore plus incompréhensible !!!
Et ma proposition elle fait quoi hein ? Pfffff....