Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

evaluer une chaine avec variable VBA d'une cellule

  • Initiateur de la discussion Initiateur de la discussion drone
  • Date de début Date de début

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 !

D

drone

Guest
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
 
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
 
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 😕

mais avec un fichier joint ce serait en effet mieux.

A+
 
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

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

Je fais une petite relance sur ce sujet car je pense qu'il doit y avoir quand même moyen d'évaluer une chaîne de caractère qui contient un ou plusieurs noms de variables.
 
Re : evaluer une chaine avec variable VBA d'une cellule

Bosoir Drone, le forum,

Pas sûr d'avoir tout compris mais peut-être que ceci te conviendra ou t'indiquera des pistes.

A+
 
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.
 
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+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
314
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…