Vba : r

Le
Jac
Bonjour à tous,

je me souviens avoir vu passer une façon d'écrire en vba une formule de
calcul qui ne renvoie dans les cellules cibles que le résultat du
calcul et non la formule. Mais je ne me souviens pas de la syntaxe. A
moins que ce soit un rêve…
L'intérêt, c'est de ne plus avoir besoin de passer par copier et
collage spécial valeurs.

Si quelqu'un a une mémoire moins défaillante que la mienne ou une
meilleure façon d'archiver les trucs et astuces, je le remercie
d'avance d'appuyer sur l'icône "Refresh".

Jac
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #19680191
bonjour Jac,

sans connaitre la formule en question, voici un exemple :

Range("B1") = Evaluate("Sum(A1:A10)")

isabelle

Jac a écrit :
Bonjour à tous,

je me souviens avoir vu passer une façon d'écrire en vba une formule
de calcul qui ne renvoie dans les cellules cibles que le résultat du
calcul et non la formule. Mais je ne me souviens pas de la syntaxe. A
moins que ce soit un rêve…
L'intérêt, c'est de ne plus avoir besoin de passer par copier et
collage spécial valeurs.

Si quelqu'un a une mémoire moins défaillante que la mienne ou une
meilleure façon d'archiver les trucs et astuces, je le remercie
d'avance d'appuyer sur l'icône "Refresh".

Jac




isabelle
Le #19680231
hum ! j'ai peut être mal compris ta question, tu saura me le dire,

a+
isabelle

Jac a écrit :
Bonjour à tous,

je me souviens avoir vu passer une façon d'écrire en vba une formule
de calcul qui ne renvoie dans les cellules cibles que le résultat du
calcul et non la formule. Mais je ne me souviens pas de la syntaxe. A
moins que ce soit un rêve…
L'intérêt, c'est de ne plus avoir besoin de passer par copier et
collage spécial valeurs.

Si quelqu'un a une mémoire moins défaillante que la mienne ou une
meilleure façon d'archiver les trucs et astuces, je le remercie
d'avance d'appuyer sur l'icône "Refresh".

Jac




Jac
Le #19681501
Bonjour Isabelle,

tu as peut être mal compris, mais tu as bien répondu…
Dans mon souvenir, c'était une façon d'écrire la formule cible sans les
"" ou quelque chose du genre, mais que je n'ai pas encore retrouvé.

Voici deux formules que je voulais traiter de cette façon :
[D2:E20].FormulaR1C1 = "=TEXT(RC[2],""hh:mm"")"
[A2:A20].FormulaR1C1 = "=upper(RC[1])"

mais quand je transforme "=upper(RC[1])" en = Evaluate("upper(RC[1])")
j'obtiens des #VALEUR!

Y a-t'il moyen d'y remédier ?


isabelle a utilisé son clavier pour écrire :
hum ! j'ai peut être mal compris ta question, tu saura me le dire,

a+
isabelle

Jac a écrit :
Bonjour à tous,

je me souviens avoir vu passer une façon d'écrire en vba une formule de
calcul qui ne renvoie dans les cellules cibles que le résultat du calcul et
non la formule. Mais je ne me souviens pas de la syntaxe. A moins que ce
soit un rêve…
L'intérêt, c'est de ne plus avoir besoin de passer par copier et collage
spécial valeurs.

Si quelqu'un a une mémoire moins défaillante que la mienne ou une meilleure
façon d'archiver les trucs et astuces, je le remercie d'avance d'appuyer
sur l'icône "Refresh".

Jac




isabelle
Le #19682751
bonjour Jac,

essai comme ça,

[D2:E20] = Format([B2:B20], "hh:mm")
[A2:A20] = Application.Proper([A2:A20]) 'NomPropre
ou
[A2:A20] = Application.UCase([A2:A20]) 'MAJUSCULE

isabelle

Jac a écrit :
Bonjour Isabelle,

tu as peut être mal compris, mais tu as bien répondu…
Dans mon souvenir, c'était une façon d'écrire la formule cible sans
les "" ou quelque chose du genre, mais que je n'ai pas encore retrouvé.

Voici deux formules que je voulais traiter de cette façon :
[D2:E20].FormulaR1C1 = "=TEXT(RC[2],""hh:mm"")"
[A2:A20].FormulaR1C1 = "=upper(RC[1])"

mais quand je transforme "=upper(RC[1])" en = Evaluate("upper(RC[1])")
j'obtiens des #VALEUR!

Y a-t'il moyen d'y remédier ?


isabelle a utilisé son clavier pour écrire :
hum ! j'ai peut être mal compris ta question, tu saura me le dire,

a+
isabelle

Jac a écrit :
Bonjour à tous,

je me souviens avoir vu passer une façon d'écrire en vba une formule
de calcul qui ne renvoie dans les cellules cibles que le résultat du
calcul et non la formule. Mais je ne me souviens pas de la syntaxe.
A moins que ce soit un rêve…
L'intérêt, c'est de ne plus avoir besoin de passer par copier et
collage spécial valeurs.

Si quelqu'un a une mémoire moins défaillante que la mienne ou une
meilleure façon d'archiver les trucs et astuces, je le remercie
d'avance d'appuyer sur l'icône "Refresh".

Jac








Jac
Le #19683081
… sur la première formule j'obtiens une erreur 13 / incompabilité de
type et sur la deuxième une erreur 438 / propriété ou méthode non gérée
par cet objet.
J'ai fais quelques essais en réduisant le calcul à une seule cellule,
en redéfinissant les zones en range… à la place des [ mais ça n'a rien
changé.


isabelle a exposé le 02/07/2009 :
bonjour Jac,

essai comme ça,

[D2:E20] = Format([B2:B20], "hh:mm")
[A2:A20] = Application.Proper([A2:A20]) 'NomPropre
ou
[A2:A20] = Application.UCase([A2:A20]) 'MAJUSCULE

isabelle

Jac a écrit :
Bonjour Isabelle,

tu as peut être mal compris, mais tu as bien répondu…
Dans mon souvenir, c'était une façon d'écrire la formule cible sans les ""
ou quelque chose du genre, mais que je n'ai pas encore retrouvé.

Voici deux formules que je voulais traiter de cette façon :
[D2:E20].FormulaR1C1 = "=TEXT(RC[2],""hh:mm"")"
[A2:A20].FormulaR1C1 = "=upper(RC[1])"

mais quand je transforme "=upper(RC[1])" en = Evaluate("upper(RC[1])")
j'obtiens des #VALEUR!

Y a-t'il moyen d'y remédier ?


isabelle a utilisé son clavier pour écrire :
hum ! j'ai peut être mal compris ta question, tu saura me le dire,

a+
isabelle

Jac a écrit :
Bonjour à tous,

je me souviens avoir vu passer une façon d'écrire en vba une formule de
calcul qui ne renvoie dans les cellules cibles que le résultat du calcul
et non la formule. Mais je ne me souviens pas de la syntaxe. A moins que
ce soit un rêve…
L'intérêt, c'est de ne plus avoir besoin de passer par copier et collage
spécial valeurs.

Si quelqu'un a une mémoire moins défaillante que la mienne ou une
meilleure façon d'archiver les trucs et astuces, je le remercie d'avance
d'appuyer sur l'icône "Refresh".

Jac








isabelle
Le #19683141
bonjour Jac,

peut tu mettre un exemple de tes données en ligne sur ci-joint ?

isabelle

Jac a écrit :
… sur la première formule j'obtiens une erreur 13 / incompabilité de
type et sur la deuxième une erreur 438 / propriété ou méthode non
gérée par cet objet.
J'ai fais quelques essais en réduisant le calcul à une seule cellule,
en redéfinissant les zones en range… à la place des [ mais ça n'a rien
changé.


isabelle a exposé le 02/07/2009 :
bonjour Jac,

essai comme ça,

[D2:E20] = Format([B2:B20], "hh:mm")
[A2:A20] = Application.Proper([A2:A20]) 'NomPropre
ou
[A2:A20] = Application.UCase([A2:A20]) 'MAJUSCULE

isabelle

Jac a écrit :
Bonjour Isabelle,

tu as peut être mal compris, mais tu as bien répondu…
Dans mon souvenir, c'était une façon d'écrire la formule cible sans
les "" ou quelque chose du genre, mais que je n'ai pas encore retrouvé.

Voici deux formules que je voulais traiter de cette façon :
[D2:E20].FormulaR1C1 = "=TEXT(RC[2],""hh:mm"")"
[A2:A20].FormulaR1C1 = "=upper(RC[1])"

mais quand je transforme "=upper(RC[1])" en = Evaluate("upper(RC[1])")
j'obtiens des #VALEUR!

Y a-t'il moyen d'y remédier ?


isabelle a utilisé son clavier pour écrire :
hum ! j'ai peut être mal compris ta question, tu saura me le dire,

a+
isabelle

Jac a écrit :
Bonjour à tous,

je me souviens avoir vu passer une façon d'écrire en vba une
formule de calcul qui ne renvoie dans les cellules cibles que le
résultat du calcul et non la formule. Mais je ne me souviens pas
de la syntaxe. A moins que ce soit un rêve…
L'intérêt, c'est de ne plus avoir besoin de passer par copier et
collage spécial valeurs.

Si quelqu'un a une mémoire moins défaillante que la mienne ou une
meilleure façon d'archiver les trucs et astuces, je le remercie
d'avance d'appuyer sur l'icône "Refresh".

Jac












Jac
Le #19683261
… voici la "chose" : http://cjoint.com/?hcpYPqE70S

Dans son message précédent, isabelle a écrit :
bonjour Jac,

peut tu mettre un exemple de tes données en ligne sur ci-joint ?

isabelle

Jac a écrit :
… sur la première formule j'obtiens une erreur 13 / incompabilité de type
et sur la deuxième une erreur 438 / propriété ou méthode non gérée par cet
objet.
J'ai fais quelques essais en réduisant le calcul à une seule cellule, en
redéfinissant les zones en range… à la place des [ mais ça n'a rien changé.


isabelle a exposé le 02/07/2009 :
bonjour Jac,

essai comme ça,

[D2:E20] = Format([B2:B20], "hh:mm")
[A2:A20] = Application.Proper([A2:A20]) 'NomPropre
ou
[A2:A20] = Application.UCase([A2:A20]) 'MAJUSCULE

isabelle

Jac a écrit :
Bonjour Isabelle,

tu as peut être mal compris, mais tu as bien répondu…
Dans mon souvenir, c'était une façon d'écrire la formule cible sans les
"" ou quelque chose du genre, mais que je n'ai pas encore retrouvé.

Voici deux formules que je voulais traiter de cette façon :
[D2:E20].FormulaR1C1 = "=TEXT(RC[2],""hh:mm"")"
[A2:A20].FormulaR1C1 = "=upper(RC[1])"

mais quand je transforme "=upper(RC[1])" en = Evaluate("upper(RC[1])")
j'obtiens des #VALEUR!

Y a-t'il moyen d'y remédier ?


isabelle a utilisé son clavier pour écrire :
hum ! j'ai peut être mal compris ta question, tu saura me le dire,

a+
isabelle

Jac a écrit :
Bonjour à tous,

je me souviens avoir vu passer une façon d'écrire en vba une formule de
calcul qui ne renvoie dans les cellules cibles que le résultat du
calcul et non la formule. Mais je ne me souviens pas de la syntaxe. A
moins que ce soit un rêve…
L'intérêt, c'est de ne plus avoir besoin de passer par copier et
collage spécial valeurs.

Si quelqu'un a une mémoire moins défaillante que la mienne ou une
meilleure façon d'archiver les trucs et astuces, je le remercie
d'avance d'appuyer sur l'icône "Refresh".

Jac












isabelle
Le #19683301
bonjour Jac,

je crois bien qu'il n'y a pas d'autre solution que de passer par une boucle,

For i = 2 To 20
Range("A" & i) = UCase(Range("B" & i))
Range("D" & i) = "'" & Format(Range("F" & i), "hh:mm")
Range("E" & i) = "'" & Format(Range("G" & i), "hh:mm")
Next

isabelle

Jac a écrit :
… voici la "chose" : http://cjoint.com/?hcpYPqE70S

Dans son message précédent, isabelle a écrit :
bonjour Jac,

peut tu mettre un exemple de tes données en ligne sur ci-joint ?

isabelle

Jac a écrit :
… sur la première formule j'obtiens une erreur 13 / incompabilité de
type et sur la deuxième une erreur 438 / propriété ou méthode non
gérée par cet objet.
J'ai fais quelques essais en réduisant le calcul à une seule
cellule, en redéfinissant les zones en range… à la place des [ mais
ça n'a rien changé.


isabelle a exposé le 02/07/2009 :
bonjour Jac,

essai comme ça,

[D2:E20] = Format([B2:B20], "hh:mm")
[A2:A20] = Application.Proper([A2:A20]) 'NomPropre
ou
[A2:A20] = Application.UCase([A2:A20]) 'MAJUSCULE

isabelle

Jac a écrit :
Bonjour Isabelle,

tu as peut être mal compris, mais tu as bien répondu…
Dans mon souvenir, c'était une façon d'écrire la formule cible
sans les "" ou quelque chose du genre, mais que je n'ai pas encore
retrouvé.

Voici deux formules que je voulais traiter de cette façon :
[D2:E20].FormulaR1C1 = "=TEXT(RC[2],""hh:mm"")"
[A2:A20].FormulaR1C1 = "=upper(RC[1])"

mais quand je transforme "=upper(RC[1])" en =
Evaluate("upper(RC[1])")
j'obtiens des #VALEUR!

Y a-t'il moyen d'y remédier ?


isabelle a utilisé son clavier pour écrire :
hum ! j'ai peut être mal compris ta question, tu saura me le dire,

a+
isabelle

Jac a écrit :
Bonjour à tous,

je me souviens avoir vu passer une façon d'écrire en vba une
formule de calcul qui ne renvoie dans les cellules cibles que le
résultat du calcul et non la formule. Mais je ne me souviens pas
de la syntaxe. A moins que ce soit un rêve…
L'intérêt, c'est de ne plus avoir besoin de passer par copier et
collage spécial valeurs.

Si quelqu'un a une mémoire moins défaillante que la mienne ou
une meilleure façon d'archiver les trucs et astuces, je le
remercie d'avance d'appuyer sur l'icône "Refresh".

Jac
















Jac
Le #19683361
… bon, la messe est dite… Si pour ne pas copier et coller les valeurs,
je dois faire une boucle, alors je ne suis pas sûr de vraiment y gagner
au change. Comme j'utilise souvent cette façon de faire, je pensais
réduire une peu les instructions. On finit par se créer tout seul des
problèmes. C'est comme ça les pinailleurs…

Merci encore de t'être intéressée à mon "problème".

Jac

isabelle avait écrit le 02/07/2009 :
bonjour Jac,

je crois bien qu'il n'y a pas d'autre solution que de passer par une boucle,

For i = 2 To 20
Range("A" & i) = UCase(Range("B" & i))
Range("D" & i) = "'" & Format(Range("F" & i), "hh:mm")
Range("E" & i) = "'" & Format(Range("G" & i), "hh:mm")
Next

isabelle

Jac a écrit :
… voici la "chose" : http://cjoint.com/?hcpYPqE70S

Dans son message précédent, isabelle a écrit :
bonjour Jac,

peut tu mettre un exemple de tes données en ligne sur ci-joint ?

isabelle

Jac a écrit :
… sur la première formule j'obtiens une erreur 13 / incompabilité de type
et sur la deuxième une erreur 438 / propriété ou méthode non gérée par
cet objet.
J'ai fais quelques essais en réduisant le calcul à une seule cellule, en
redéfinissant les zones en range… à la place des [ mais ça n'a rien
changé.


isabelle a exposé le 02/07/2009 :
bonjour Jac,

essai comme ça,

[D2:E20] = Format([B2:B20], "hh:mm")
[A2:A20] = Application.Proper([A2:A20]) 'NomPropre
ou
[A2:A20] = Application.UCase([A2:A20]) 'MAJUSCULE

isabelle

Jac a écrit :
Bonjour Isabelle,

tu as peut être mal compris, mais tu as bien répondu…
Dans mon souvenir, c'était une façon d'écrire la formule cible sans les
"" ou quelque chose du genre, mais que je n'ai pas encore retrouvé.

Voici deux formules que je voulais traiter de cette façon :
[D2:E20].FormulaR1C1 = "=TEXT(RC[2],""hh:mm"")"
[A2:A20].FormulaR1C1 = "=upper(RC[1])"

mais quand je transforme "=upper(RC[1])" en = Evaluate("upper(RC[1])")
j'obtiens des #VALEUR!

Y a-t'il moyen d'y remédier ?


isabelle a utilisé son clavier pour écrire :
hum ! j'ai peut être mal compris ta question, tu saura me le dire,

a+
isabelle

Jac a écrit :
Bonjour à tous,

je me souviens avoir vu passer une façon d'écrire en vba une formule
de calcul qui ne renvoie dans les cellules cibles que le résultat du
calcul et non la formule. Mais je ne me souviens pas de la syntaxe. A
moins que ce soit un rêve…
L'intérêt, c'est de ne plus avoir besoin de passer par copier et
collage spécial valeurs.

Si quelqu'un a une mémoire moins défaillante que la mienne ou une
meilleure façon d'archiver les trucs et astuces, je le remercie
d'avance d'appuyer sur l'icône "Refresh".

Jac
















isabelle
Le #19683441
oublie ce que je viens de dire Jac,
j'ai réussi avec Transpose :

[a2:a20] = Evaluate("transpose(upper(transpose(b2:b20)))")
[d2:d20] =
Application.Transpose(Application.Text(Application.Transpose([f2:f20]),
"hh:mm"))
[e2:e20] =
Application.Transpose(Application.Text(Application.Transpose([g2:g20]),
"hh:mm"))


isabelle

Jac a écrit :
… bon, la messe est dite… Si pour ne pas copier et coller les valeurs,
je dois faire une boucle, alors je ne suis pas sûr de vraiment y
gagner au change. Comme j'utilise souvent cette façon de faire, je
pensais réduire une peu les instructions. On finit par se créer tout
seul des problèmes. C'est comme ça les pinailleurs…

Merci encore de t'être intéressée à mon "problème".

Jac

isabelle avait écrit le 02/07/2009 :
bonjour Jac,

je crois bien qu'il n'y a pas d'autre solution que de passer par une
boucle,

For i = 2 To 20
Range("A" & i) = UCase(Range("B" & i))
Range("D" & i) = "'" & Format(Range("F" & i), "hh:mm")
Range("E" & i) = "'" & Format(Range("G" & i), "hh:mm")
Next

isabelle

Jac a écrit :
… voici la "chose" : http://cjoint.com/?hcpYPqE70S

Dans son message précédent, isabelle a écrit :
bonjour Jac,

peut tu mettre un exemple de tes données en ligne sur ci-joint ?

isabelle

Jac a écrit :
… sur la première formule j'obtiens une erreur 13 / incompabilité
de type et sur la deuxième une erreur 438 / propriété ou méthode
non gérée par cet objet.
J'ai fais quelques essais en réduisant le calcul à une seule
cellule, en redéfinissant les zones en range… à la place des [
mais ça n'a rien changé.


isabelle a exposé le 02/07/2009 :
bonjour Jac,

essai comme ça,

[D2:E20] = Format([B2:B20], "hh:mm")
[A2:A20] = Application.Proper([A2:A20]) 'NomPropre
ou
[A2:A20] = Application.UCase([A2:A20]) 'MAJUSCULE

isabelle

Jac a écrit :
Bonjour Isabelle,

tu as peut être mal compris, mais tu as bien répondu…
Dans mon souvenir, c'était une façon d'écrire la formule cible
sans les "" ou quelque chose du genre, mais que je n'ai pas
encore retrouvé.

Voici deux formules que je voulais traiter de cette façon :
[D2:E20].FormulaR1C1 = "=TEXT(RC[2],""hh:mm"")"
[A2:A20].FormulaR1C1 = "=upper(RC[1])"

mais quand je transforme "=upper(RC[1])" en =
Evaluate("upper(RC[1])")
j'obtiens des #VALEUR!

Y a-t'il moyen d'y remédier ?


isabelle a utilisé son clavier pour écrire :
hum ! j'ai peut être mal compris ta question, tu saura me le dire,

a+
isabelle

Jac a écrit :
Bonjour à tous,

je me souviens avoir vu passer une façon d'écrire en vba une
formule de calcul qui ne renvoie dans les cellules cibles que
le résultat du calcul et non la formule. Mais je ne me
souviens pas de la syntaxe. A moins que ce soit un rêve…
L'intérêt, c'est de ne plus avoir besoin de passer par copier
et collage spécial valeurs.

Si quelqu'un a une mémoire moins défaillante que la mienne ou
une meilleure façon d'archiver les trucs et astuces, je le
remercie d'avance d'appuyer sur l'icône "Refresh".

Jac




















Publicité
Poster une réponse
Anonyme