[VBA] conditions dans une cellule d'Excel [Résolu/Fermé]

Signaler
-
 kero -
Bonjour,

j'ai un souci avec Excel et Visual Basic.

Je souhaite ecrire dans la cellule d'Excel (1,1) une condition, par exemple, =9. J'ai mis la cellule en format texte pour que le = reste affiché.
Je souhaiterai ensuite comparer les valeurs de la cellule (1,2) a cette condition.

J'ai essayé avec toutes sortes de concatenation du genre =if(A1 & B1=true;1;0) mais ca ne marche pas.

Et ca m'embete de faire une macro du style
If cells(1,1)="=9" then....
Ca marche mais c pas tres flexible!!! :)

Si vous avez un idée, une piste, ou meme une direction ou chercher, ce serait sympa.
Merci d'avance

6 réponses

Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
833
Bonsoir,

Ok, il suffit d'utiliser la fonction EVAL(A2&$A$1) où A1 contient =9, >=9 ou <=0, et A2 contient 10 par exemple.

là, ça retournera FAUX.
si tu mets 9 en A2, ça retournera VRAI

NB : EVAL() est une fonction de la bibliothèque Morefunc (http://xcell05.free.fr/downloads/Morefunc.zip ) de Laurent Longre. Il faut donc l'installer d'abord.

Tu peux également écrire ta propre fonction :

Function evalue(montexte As String) As Boolean
evalue = Evaluate(montexte)
End Function

qui fait la même chose

A+
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Ok merci, c pile ce dont j'avais besoin!

Une petite derniere question (un peu part curiosité :))

La fonction evalue définie, n'est pas utilisable comme tel dans Excel. (ecrire dans une cellule, =evalue(B3) ne marche pas).
C'est possible de definir une fonction sous VBA pour l'utiliser sous Excel? Si oui, comment?

A plus
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
833
Bonsoir,

je ne comprends pas ce que tu veux faire avec VBA mais je peux te dire qu'il suffit que tu utilises Range("A1").value=Range("A2").value ou encore [A1]=[A2] dans tes IF THEN.

remarques :
je ne vois pas pourquoi tu gardes le égal dans ce que tu appelles (à tort) une condition : =9

tu peux rester dans excel en mettant 9 en A1 et tu utilises une formule (en A3 par ex) =Si(A2=A1;"toto";"titi")
cette dernière approche n'est valable que si tu veux mettre une valeur en A3, valeur qui dépend de l'égalité A2=A1 qui elle est la condition de ta formule SI()

A+
Bonsoir,

d'abord merci d'essayer de repondre a mon probleme.

En fait, c'est plus compliqué que ca. Je voudrais que l'uitilisateur de la feuille Excel, ne puisse avoir le choix pour remplir le cellule (1,1) qu'entre :
≥9
=9
≤9

Il est donc important que le signe =ou ≤ ou ≥ soit visible. (Pour le probleme du choix j'utilise l'option de Validation de données.)

Mon probleme reside donc dans le fait que je n'arrive pas a utiliser ce signe choisi.

En concatenant, on peut ecrire dans une autre case, la valeur de la cellule (1,2) et la condition.
Par exemple, si la case (1,2) contient 10, on obtiendra 10=9 en cellule (1,3). Et je voudrais que la cellule (1,4) affiche donc FAUX (ou aute chose signifiant l'erreur precedente).

La concatenation n'etait qu'une idée, mais si vous aviez une idée pour que si j'ai toute une liste de valeurs en colonne 2, j'ai dans une colonne autre un resultat de la compraraison avec cette "condition" en cellule (1,1).

Merci d'avance
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
833
Bonjour,

evalue(montexte As String) As Boolean est bien entendu une fonction à définir dans VBA.

tu colles le code que je t'ai indiqué dans un module de ton classeur.

ensuite seulement tu pourras l'utiliser

A+
Merci

mon probleme est resolu, je sais pas s'il faut changer le statut de la conversation ni comment on le fait. Alors si qlq'un sait qu'il n'hesite pas a le faire:::: :)
Bonjour,

pourrai-tu expliquer comment tu mets le format de la cellule en texte. Est-ce par logicielle ou directement dans Excel?

Merci à toi.
bonjour tout le monde,

je voudrais savoir ce qu'on peut faire concretement avec VBA sur excel en finances??
des pistes?

merci
Concrètement tu peux faire tout ce que peut faire VBA (à toi de savoir programmer un algorithme..), tu créer une fonction (type : Function) que tu appelle dans ta cellule avec les fonctions personnalisée ^^
tout les arguments de ta fonction te seront demandé si tu passe par l'assistant de excel (le petit bouton fx) et tu choisi les cases correspondant a ton argument :)
La conversion de la case choisie en texte est automatique...