evaluer une chaine avec variable VBA d'une cellule

drone

XLDnaute Nouveau
Bonjour,
j'ai dans les cellules d'une feuille des valeurs de la forme :
"texte bla bla" & Var1 & " texte blabla"
où var1 est le nom d'une variable VBA.
j'aimerais bien récupérer dans VBA cette chaîne avec "Var1" qui est évaluée.
Si je fais toto=Range("A1").value, j'ai exactement la même valeur que dans ma cellule.
Est-ce que c'est possible ?
Merci d'avance
 

Excel-lent

XLDnaute Barbatruc
Re : evaluer une chaine avec variable VBA d'une cellule

Bonsoir Drone,

Qu'entends-tu par : "Var1" qui est évaluée?

Tu veux récupérer le blabla situé avant Var 1, puis le blabla situé après Var 1?

Si oui :
-> utilise l'enregistreur de macro
-> à l'aide des formules =TROUVE() et =DROITE() et =GAUCHE() tu extraira tes informations dans la cellule où tu auras mis ta formule.

Ensuite, il ne te reste plus qu'à rentrer dans ta macro et récupérer le code ;)

Désolé de ne pouvoir faire plus, mais je n'ai presque rien compris à ta demande.

Si cela ne convient, n'hésites pas à mettre un fichier joint avec quelques exemples et le résultat final voulu.

Bonne soirée
 

esftel

XLDnaute Occasionnel
Re : evaluer une chaine avec variable VBA d'une cellule

Salut le forum,

en reprenant l'idée excel lent, je pensais à la fonction SUBSTITUE.

soit : =SUBSTITUE(A1;" var1";"")
qui permet de récupérer le texte de la cellule A1 sans "var1".
ou plus précisément de remplacer "var1" dans A1 par du vide.

j'espère avoir été assez claire :confused:

mais avec un fichier joint ce serait en effet mieux.

A+
 

drone

XLDnaute Nouveau
Re : evaluer une chaine avec variable VBA d'une cellule

Bonjour,
tout d'abord merci d'avoir essayé de me répondre surtout avec l'énoncé qui n'était pas clair.
Dans le fichier que j'ai joint, il y a deux cellules dans lesquelles j'ai des chemins de répertoires qui sont définis. Ces chemins de répertoire dépendent des dates choisies dans le formulaire.
J'aimerais pouvoir évaluer ce nom afin que "userform1.combobox1.value" prenne la valeur choisie dans la combobox.
J'espère que (pour quelqu'un qui est endehors de ma tête) j'ai été clair.
Merci d'avance.
 

Pièces jointes

  • exempleXLD.xls
    35.5 KB · Affichages: 115
  • exempleXLD.xls
    35.5 KB · Affichages: 111
  • exempleXLD.xls
    35.5 KB · Affichages: 111

drone

XLDnaute Nouveau
Re : evaluer une chaine avec variable VBA d'une cellule

Tout d'abord merci d'avoir répondu.
Dans le fichier que tu as renvoyé, on connait dès le départ la chaîne à renvoyer en fonction de la date sélectionnée dans la ComboBox. Du coup il n'est plus utile d'utiliser les cellules du classeur pour définir les chemins de fichiers (c'est dailleurs ce que tu as fait vu qu'elles ne servent qu'à afficher le chemin sélectionné).
Alors que ce que je souhaiterais faire finalement avoir un code vba qui fonctionne pour n'importe quelle expression que j'aurais stocké dans une cellule.
Exemple: dans le code du formulaire, au lieu d'avoir ceci :
Code:
chemin = "c:\Repertoire1\"& userform1.combobox1.value & "\sous-Rép2"
où la variable chemin serait définie quasiment en dur dans le code,
j'aimerais avoir quelquechose de ce style :
Code:
chemin = Evaluation(ThisWorkbook.Sheets(1).Range("A10").Value)
où dans la feuille n°1 de ce classeur, j'aurais en A10 :
"c:\Repertoire1\"& userform1.combobox1.value & "\sous-Rép2"
et la fonction Evalutation remplacerait "userform1.combobox1.value" par la valeur sélectionnée dans la ComboBox.

Ce qui me permettrait d'avoir le chemin défini dans une feuille et non pas dans le projet VBA, donc modifiable par n'importe qui.
Ceci est évidemment le cas simple de la résolution d'une seule valeur,
on pourrait avoir un truc du style :
"c:\Repertoire1\"& userform1.combobox1.value & "\sous-Rép2 - " & userform1.combobox2.value & "\toto"


L'objectif final étant d'avoir plein de boutons qui permettent d'ouvrir des fichiers dont les chemins et les noms dépendent de valeurs sélectionnées dans des combobox et sont définis dans des cellules.

J'espère avoir été plus clair.
 
G

Guest

Guest
Re : evaluer une chaine avec variable VBA d'une cellule

Bonjour drone,

J'espère avoir été plus clair

Non ce n'est pas plus clair.

Soit tu as une formule dans une cellule du style ="c:\Repertoire1\"& Variable & "\sous-Rép2"

Auquel cas Variable peut-être une adresse de cellule ou un nom définit, modifiés, l'un ou l'autre par le formulaire.

Soit une chaine de caractère représentant un chemin et dans laquelle tu peux remplacer une sous-chaine par une Variable.

De toutes façon tu ne pourra pas faire autrement que de passer par une variable.

Ton histoire d'évaluation n'est pas compréhensible pour mes neurones et apparement que par les miens.

Autre proposition, à partir de ton fichier

Code:
Private Sub CommandButton1_Click()
    Dim txtChemin
    txtChemin = Replace(ThisWorkbook.Sheets(1).Range("chemin1").Value, """", "")
    txtChemin = Replace(txtChemin, "& userform1.combobox1.value & ", ComboBox1.Value)
    MsgBox txtChemin
End Sub

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 467
Messages
2 088 676
Membres
103 915
dernier inscrit
VT14907