Attribuer a une variable une formule

Résolu
aminesc Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   -  
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

je veux attribué a la valeur d'une variable une formule , du genre :
Dim id_modif As String
id_modif.Value = "=RIGHT(USERFORM92.ID.VALUE,1)"
A voir également:

3 réponses

Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
Bonjour,

Deux possibilités :

- Tu veux que cette variable puisse renseigner une formule dans une case Excel ?
Dans ce cas ta variable doit être déclarée en String (chaîne de caractère). Attention, ton "USERFORM92.ID.VALUE" est très probablement une variable ?
Il faudra alors la concaténer avec les chaînes de caractère de ta formule :
id_modif.Value = "=RIGHT(" & USERFORM92.ID.VALUE & ";1)"

De même, ta formule doit reprendre l'écriture telle que sur Excel (j'ai remplacé la virgule par un point virgule). Si tu as une version française, il faudra écrire
id_modif.Value = "=DROITE(" & USERFORM92.ID.VALUE & ";1)"


- Tu veux simplement reprendre une formule existante d'Excel pour modifier ta variable ?
id_modif.Value = RIGHT(USERFORM92.ID.VALUE,1)
1
thev Messages postés 1985 Date d'inscription   Statut Membre Dernière intervention   713
 
Bonjour,


Tu ne peux pas appliquer une propriété Value à une variable String.
Il faut que la variable soit associée à une classe possédant cette propriété.
1
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
En effet, je vois l'arbre, mais ne remarque pas la forêt !
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour à tous

Quel est l'intérêt d'écrire une formule alors que la fonction "Right" existe en VBA ?
capture d'écran de l'aide Microsoft

A UTILISER:



et ainsi pour "Right"



0
aminesc Messages postés 70 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

-on premier lieu j'ai pas compris ta declaration de variable :
Dim any string , mystr ????
on est pas obliger de mètre as string , as,,,,,

-corriger moi si je fais une erreur , je peux utilisé les formule VBA directement avec les variable pas besoin d’apostrophe "",
j'ai essayé sa mais sa na pas marche :

 N°R = VLookup(""" & TYPE_DEBOURS.Text & """, TYPE_DEBOURS, 2, False)
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314 > aminesc Messages postés 70 Date d'inscription   Statut Membre Dernière intervention  
 
Pour Aminsec

excuses moi Arkana, pour mon incruste

-on premier lieu j'ai pas compris ta declaration de variable :
Dim any string , mystr ????


Ce n'est pas MA déclaration de Variable mais celle de Microsoft puisque c'est une capture d'écran de l'aide MS !!!!!

on est pas obliger de mètre as string , as,,,,,
Non on est pas obligé mais,Bien sûr, si Microsoft le fait, il a tort puisque tu le dis

Bonne continuation
0
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182 > michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention  
 
Il n'y a pas chasse gardée pour les gens que l'on aide ;)
0
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
Bonjour,

Les apostrophes marquent le début ou la fin d'une chaîne de caractères pour que le compilateur constate que tu écris une chaîne de caractère et pas le nom d'une variable ou d'une fonction. Deux "chaînes de caractères" (ou du moins considérées comme telles par le compilateur) côte à côte sans opérateur & engendreront une erreur.

Pour écrire des guillemets, il faut terminer la première chaîne de caractère avec... un guillemet. puis y ajouter le caractère Chr(34).

Ça donne le code suivant :
VLookup(" & Chr(34) & " & TYPE_DEBOURS.Text & " & Chr(34) & ", TYPE_DEBOURS, 2, False)


Mais en l'occurrence, tu n'as pas à mettre entre guillemets une variable String, sauf pour l'accoler à d'autres chaînes de caractères.

Au final, ton code devrait ressembler à ça :
N°R = VLookup(TYPE_DEBOURS, TYPE_DEBOURS, 2, False)


Car je ne vois pas ce que le .text vient faire là non-plus...
0