variables et formules...

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 !

geoffroy

XLDnaute Nouveau
Bonjour,

j'ai un petit soucis sous VBA au niveau des valeurs de variables à exprimer au sein d'une formule excel.

en gros, je traite des données et utilise les formules excel classique (SI, OU, SOMME, etc...)
Ayant un gros volume de données, je cherche à automatiser le processus, donc utilisation d'une macro.

bilan, quand je cherche à remplir ma cellule D1 avec une formule du type : SI(test_logique, resultat oui, resultat non) où test_logique : A1 = variable1

Au lieu de remplacer variable1 par sa valeur, il laisse "variable1", et donc cela plante... 😡

Après moulte recherches, j'ai compris que "ActiveCell.FormulaR1C1 = " ne prendra que du texte même en utilisant Application.WorksheetFunction.HsGetValue(variable1) pour expliciter ma variable, donc pas bon...

une idée pour me dépanner 😕

PS: je n'explicite pas ma formule, car très longue et peu intéressante.
 
Re : variables et formules...

Bonjour

Il faut fabriquer une chaine de caractères en utilisant la concaténation :

"SI(test_logique, resultat oui, resultat non) où test_logique : A1 =" & variable1


JP

Bonjour JP,

j'ai déjà essayé car dans mon test_logique, j'ai une formule du type
IF(A2=LOS & nomTab(kk, 2) , ABS(A1-A2) ,"" "" )
mais il ne remplace pas LOS & nomTab(kk,2) par sa valeur : LOS_toto_titi
(kk est un entier issu d'une boucle FOR)

et IF(A2="LOS & nomTab(kk, 2)" , ABS(A1-A2) ,"" "" ) n'est pas non plus reconnu...
 
Re : variables et formules...

Bonjour (re)

une question ou sont les formules
dans une feuille ou dans la macro

Pour faciliter la mise au point il faut utiliser une variable qui contient la formule
en mettant un espion sur cette variable ce qui simplifie le test
data1= "IF(A2=" & LOS & nomTab & "(kk, 2) , ABS(A1-A2) ,"" "" )
Il faut remplacer les guillemets ('A2) ,"" "" ) ) par CHR(code du guillemet)

JP
 
Re : variables et formules...

Bonjour (re)

une question ou sont les formules
dans une feuille ou dans la macro

Pour faciliter la mise au point il faut utiliser une variable qui contient la formule
en mettant un espion sur cette variable ce qui simplifie le test
data1= "IF(A2=" & LOS & nomTab & "(kk, 2) , ABS(A1-A2) ,"" "" )
Il faut remplacer les guillemets ('A2) ,"" "" ) ) par CHR(code du guillemet)

JP

désolé, si je n'ai pas été très clair 🙁
- les formules sont dans la macro et vont être déposées dans la feuille lors de l'exécution de la macro
- nomTab(kk,2) est un tableau de variable qui vaut successivement ELI_W11 puis ELI_E12 puis ESS_W11 puis ESS_E12

en simplifiant mon test pour voir si cela marche, j'essaye avec :
Dim LOS as string
LOS = "ELI_E12"
ActiveCell.FormulaR1C1 = "=IF(RC[-3]= LOS,titi,toto)"

mais il continue de remplir ma cellule avec : =SI(A1= LOS; titi; toto) alors que je veux =SI(A1="ELI_E12"; "titi"; "toto")

Sinon, désolé mais je n'ai pas compris le CHR ? un exemple pour mieux comprendre ....
 
Re : variables et formules...

Bonjour (re)

A tester

ActiveCell.FormulaR1C1 = "=IF(RC[-3]=" & LOS & ", " & titi " ," & toto &" )" si LOS titi et toto sont des variables
dans le cas contraire il faudra écrire chr(code) & "LOS" .....
Si on désire inscrire le caractère " dans la formule le considère comme un séparateur soit le début soit la fin d'un texte.
Pour résoudre ce problème on utilise chr(code), pour mettre "" dans une chaine on écrira chr(code)& chr(code).
Pour bien comprendre la manip il faut une variable string data1
data1= la formule et on vérifie le résultat
Macro à lancer avec F8 et regarder le résultat obtenu (il y aura des problèmes).


Code:
Option Explicit

Sub essai()
Dim data1 As String
data1 = "=IF(RC[-3]=" & LOS & ", " & titi & "," & toto & " )"
data1 = "=IF(RC[-3]=" & Chr(34) & "LOS" & Chr(34) & ", " & titi & "," & toto & " )"
End Sub
JP
 
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
5
Affichages
2 K
Retour