OVH Cloud OVH Cloud

macro : excel -> vb

5 réponses
Avatar
corolleur
bonjour

sur une feuille excel, j'ai utilisé différentes formules afin d'extraire des infos dans une chaine de caracteres : droite, gauche, nbcar, cnum..
je voudrais maintenant automatiser ce tri. pour cela, je suis passé par une macro sous vb. un probleme se pose : comment copier les formules de vb à excel. j'ai essayé Range().value = "=formule" mais ça ne semble pas fonctionnner. Pouvez vous m'aider

5 réponses

Avatar
Kamel
Salut,

En général pour ecrire une formule en vb on utilise
Range().FormulaR1C1 = "formule".

Aussi, pour la formule entre "", tu dois utiliser les noms anglais des
fonctions: par exemple droite("chaine",2) -> right("chaine,2) ...

bon courage !
Kamel

"corolleur" wrote in message
news:
bonjour,

sur une feuille excel, j'ai utilisé différentes formules afin d'extraire
des infos dans une chaine de caracteres : droite, gauche, nbcar, cnum...

je voudrais maintenant automatiser ce tri. pour cela, je suis passé par
une macro sous vb. un probleme se pose : comment copier les formules de vb à

excel. j'ai essayé Range().value = "=formule" mais ça ne semble pas
fonctionnner. Pouvez vous m'aider

Avatar
papou
Bonjour
1°) Range attend les coordonnées de la (des) cellule (s) et notamment sous
la forme A1
Dans ton cas, il te manque ces coordonnées ex : Range("A1")
2°) .Value ne correspond pas à ce que tu souhaites, il te faut utiliser
.Formula ou .FormulaR1C1 (s'il s'agit bien d'une formule à inscrire dans une
cellule)

Cordialement
Pascal

"corolleur" a écrit dans le message de
news:
bonjour,

sur une feuille excel, j'ai utilisé différentes formules afin d'extraire
des infos dans une chaine de caracteres : droite, gauche, nbcar, cnum...

je voudrais maintenant automatiser ce tri. pour cela, je suis passé par
une macro sous vb. un probleme se pose : comment copier les formules de vb à

excel. j'ai essayé Range().value = "=formule" mais ça ne semble pas
fonctionnner. Pouvez vous m'aider

Avatar
corolleur
lorsque j'utilise le methode formula il me met des apostrophes
exemple :
droite('E2')

aussi je cherche l'equivalent sur vb de la fonction cnum (conversion d'une chaine en nombre). il semblerait que c'est al mais je n'arrive pas à obtenir un resultat satifaisant
Avatar
papou
Re
Je pense que le plus simple est que tu fasses cela à l'aide de
l'enregistreur pour chaque fonction, de cette manière tu verras ce qui est
inscrit.
Donc pour le faire tu démarres l'enregistreur, tu saisi une formule dans une
cellule que tu valides et tu arrêtes l'enregistreur, cela te permettra de
mieux comprendre (je pense)

Cordialement
Pascal

"corolleur" a écrit dans le message de
news:
lorsque j'utilise le methode formula il me met des apostrophes
exemple :
droite('E2')

aussi je cherche l'equivalent sur vb de la fonction cnum (conversion d'une
chaine en nombre). il semblerait que c'est al mais je n'arrive pas à obtenir

un resultat satifaisant

Avatar
AV
aussi je cherche l'equivalent sur vb de la fonction cnum


Il s'agit de "value" mais cette fonction ne sert pas à grand chose et peut être
remplacé par une quelconque opération arthmétique neutre (ex : *1 ou +0 ou
/1....etc...)
Pour la question plus générique d'inscription d'une formule dans une cellule,
plusieurs possibilités :
Exemples de 3 formulations équivalentes pour écriture en A1 :

[A1] = "=SUM(B1:B10)"
[A1].Formula = "=SUM(B1:B10)"
[A1].FormulaLocal = "=SOMME(B1:B10)"

AV