Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[vba] ? convertir une chaine txt concaténée en nom de variable

2 réponses
Avatar
chris
Bonsoir à tous,

dans l'exemple suivant comment écrire "Var" & " Bb"
pour que cette concatenation soit reconnue comme une variable ?

Sub essai_1()
'.......
VarAa = 2: VarBb = 3
VarTot = VarAa + Val("Var" & "Bb") ' ici la valeur de VarBb n'est pas
prise en compte
MsgBox VarTot
'........
End Sub

--
Ne pas utiliser la fonction: "Répondre à l'expéditeur"
L'adresse a été volontairement modifiée (spam)
écrire à: cchris.col@free.fr avec un seul 'c' au début

2 réponses

Avatar
Geo

Bonsoir à tous,

dans l'exemple suivant comment écrire "Var" & " Bb"
pour que cette concatenation soit reconnue comme une variable ?

Sub essai_1()
'.......
VarAa = 2: VarBb = 3
VarTot = VarAa + Val("Var" & "Bb") ' ici la valeur de VarBb n'est pas prise en
compte
MsgBox VarTot
'........
End Sub


C'est marrant ton truc, tu as du mal lire l'aide :
Extrait :
Dans l'exemple suivant, la fonction renvoie la valeur 161517 :
Val(" 1615 17e siècle")

donc : Val("Var" & "Bb") = 0 puisqu'il n'y a pas de chiffres

la réponse à ta question : amha on ne peut pas le faire simplement, vba
n'est pas un macro générateur,
mais on peut modifier du texte de macro par macro ,
qqch du genre :
NormalTemplate.VBProject.VBComponents("MonModule").CodeModule.DeleteLines
StartLine:
NormalTemplate.VBProject.VBComponents("MonModule").CodeModule.InsertLines
Line:, String:=LeNouveauTexte
La mise au point ne doit pas être facile facile,
car on voit un autre code que celui qui s'exécute.
Jamais essayé, perturbations neuronales assurées.

--
A+

Avatar
lapointe
Bonjour

Essaies de te pencher sur Eval(). Dans le cas ou tu lui passes une fonction,
elle évalue le résultat. Ton pb est que tu souhaites référencer une variable
en indirect.
Jettes un oeil si ca peut solutionner ton problème.

Sub test()
Dim I As Integer
For I = 1 To 10
debug.print Eval("FuncTest" & I & "()")
Next I
End Sub



Bonsoir à tous,

dans l'exemple suivant comment écrire "Var" & " Bb"
pour que cette concatenation soit reconnue comme une variable ?

Sub essai_1()
'.......
VarAa = 2: VarBb = 3
VarTot = VarAa + Val("Var" & "Bb") ' ici la valeur de VarBb n'est pas
prise en compte
MsgBox VarTot
'........
End Sub

--
Ne pas utiliser la fonction: "Répondre à l'expéditeur"
L'adresse a été volontairement modifiée (spam)
écrire à: avec un seul 'c' au début