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

Evaluer une variable

golden

XLDnaute Nouveau
Bonjour,

J'essaye d'écrire une application qui donne aux utilisateurs la possibilité de dessiner des formes sur une feuille excel, en rentrant dans une liste excel les paramètres des formes voulues, par exemple les coordonnées, les dimensions, le texte, la couleur, etc...

Ainsi, si dans la feuille une ligne contient les valeurs suivantes:
5 5 25 50 "hello world" "rouge"
je veux obtenir une textbox avec le coin en haut à gauche aux coordonnées 5,5, avec une largeur de 25 pixels et une hauteur de 50 pixels, contenant le texte "hello world".

Jusque là tout va bien. Je gère également la police, sa taille, l'orientation, le souligné, etc.

Le problème vient pour la couleur. Je voudrais que l'utilisateur puisse mettre par exemple "rouge" dans la case ad hoc pour signifier la couleur de remplissage, ou du texte.

J'ai donc défini des variables ayant la forme suivante:
rouge = rgb(255,0,0)

Le problème survient lorsque je parcours mon tableau pour dessiner les boites.
Mon code VBA ressemble à ceci:
boite.gauche = sheets(1).cells(i,1).value
boite.haut=sheets(1).cells(i,2).value
...
boite.texte=sheets(1).cells(i,5).value
boite.remplissage=sheets(1).cells(i,6).value

Pour les valeurs numériques ou textuelles, il n'y a pas de problème, mais boite.remplissage contient la chaine "rouge", plutot que la valeur numérique 255 (le résultat de rgb(255,0,0)).

J'ai essayé d'utiliser la fonction Evaluate, mais ca ne marche pas.

par exemple:
couleur = ["rouge"] ===> "rouge"
et
couleur = evaluate("rouge") ===> Error 2029

Quelqu'un a-t-il une idée pour résoudre ce problème ?

Merci,
Christopher
 

Excel-lent

XLDnaute Barbatruc
Re : Evaluer une variable

Bonsoir Golden,

Cela vient peut être de la définition de ta variable "rouge" et/ou "couleur"! Non?

Le plus simple serait de prendre l'autre codification des couleurs (au lieu de prendre RGB), non?

Rouge = 3
Bleu = 5
Jaune = 6
Vert = 10
Rose = 7

Sinon, merci d'envoyer un extrait de ton fichier, qu'on essaye notre solution dessus, cela nous permet ainsi de te donner une réponse juste et vérifiée

Bonne soirée
 

Pierrot93

XLDnaute Barbatruc
Re : Evaluer une variable

Bonsoir Golden, Exel Lent

en supposant la "case ad hoc" la cellule A1, et une "textbox" de la boite à outils controles présente sur la "Feuil1", regarde le code ci dessous si cela peut t'aider :

Code:
Option Explicit
Sub test()
Dim couleur As Long
If Range("A1").Value = "rouge" Then
    couleur = RGB(255, 0, 0)
    ElseIf Range("A1").Value = "bleu" Then couleur = RGB(0, 0, 255)
    ElseIf Range("A1").Value = "vert" Then couleur = RGB(0, 255, 0)
Else
    couleur = RGB(255, 0, 255)
End If
Feuil1.TextBox1.BackColor = couleur
End Sub

bonne soirée
@+
 

Discussions similaires

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