Je me pose une autre question : comment calculer la valeur d'une cellule ou il n'y a pas que des chiffres? Par exemple la cellule G25 est > 520 Je voudrais faire une baisse de 15% de la valeur 520.
Je me pose une autre question : comment calculer la valeur d'une cellule ou il n'y a pas que des chiffres? Par exemple la cellule G25 est > 520 Je voudrais faire une baisse de 15% de la valeur 520.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if Range("G25") > 520 then range("G25") = range("G25") *(1 * 15/100)
Ce serait plutot avec un "-"Envoyé par bbil
non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if Range("G25") > 520 then range("G25") = range("G25") *(1 - 15/100)
Je n'ai pas compris ta question :
parce que tu nous donnes un exemple où ta cellules ne contient que des chiffres.comment calculer la valeur d'une cellule ou il n'y a pas que des chiffres?
Si tu as une cellule qui contient des lettres et des chiffres, tu peut recupérer la valeur de la cellule dans une string puis ensuite utiliser des fonctions de découpages de string pour extraire les chiffres de la cellule.
Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.
en fait le superieur à > fait partie de la cellule. donc comment calculer que le chiffre 520 et ne pas tenir compte du >
je m'explique mieux :
dans ma cellule G20 j'ai ceci : > 520 520 est le nombre de pièces a produire et > est au maximum.
je dois a tout prix laisser le > dans cette cellule.
Dans mon formulaire je voudrais en tapant un pourcetage, par exemple 0.15, que ca me calcule automatiquement la cellule G20 par 0.15 et bien sur après ca me change la nouvelle valeur de la cellule G20.
Il faut faire comme le dit Cédric600 je penseEnvoyé par cedric600
oui je vois la démarche à faire mais comment trouve t-on ces fonctions?Je ne l'ai pas trouvé dans le FAQ ni les tutoriels.
Ben en fait si tu a uniquement le caractère > suivi d'un espace tu peux toujours écrire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim Strvaleur as string Dim valeur as double Strvaleur=right(cells(20,7),len(cells(20,7))-2) valeur=CDbl(Strvaleur)
merci je vais essayer ceci, je vous tient au courant.
normalement ces test de comparaison avec des constantes se traitent par
des constantes
on aura en principe un nom maconstant=520 ou une cellule nommée
sinon on fait un rempacer > 520 par > 442
Elle est pas belle la vie ?
Tu veux faire ça comment ? en VBA ou dans une formule ?
Dans une formule, ça donnerait un truc comme ça :
où dans G3 j'ai "> 520" avec un espace entre > et 520 et dans F3 une valeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part =SI(CNUM(DROITE(G3;NBCAR(G3)-2))>F3;VRAI;FAUX)
Pour coller ta formule dans une cellule par macro, tu demandes
Si tu veux tout faire par macro... quel est le pb ?
A+
Edit
La formule est en H3 Enfin, elle n'est ni en G3 ni en F3
Et un petit format personnalisé de la cellule, style "> "0, ça serait pas plus simple?
Comme ça, on a une valeur numérique dans la cellule, c'est quand même plus simple à gérer que passer par des découpages de chaine...
il faut a tout pris que je garde > devant le 520.
Je dois recalculer ma cellule par rapport a un pourcentage que je saisie dans mon formulaire. Je pense qu'il faut que je choisisse la fonction Right(string,lenght), j'ai essayé ce code :
Mais ca me dit qu'il y a une incompatibilité de type. J'ai bien déclaré pourc en string et UserForm2.text_pourc.text est le pourcentage que je saisie dans mon textbox. Merci pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Right(pourc, 3) = mafeuille.Range("G28:H29") * UserForm2.text_pourc.Text
Je reprends au début :
Tu as "> 520" dans une cellule
Tu veux pouvoir lire 520
Tu fais
Ainsi, si tu as 1013 au lieu de 520, que tu as bien un espace entre ">" et ton nombre, tu liras toujours ton nombre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim NoColonne, NoLigne, valeur NoLigne = 1 NoColonne = 1 valeur = Val(Right(Cells(NoLigne, NoColonne).Formula, Len(Cells(NoLigne, NoColonne).Formula) - 2)) MsgBox valeur
Si ça ne fonctionne pas je quitte le forum
merci beaucoup ca marche, mais si la cellule est fusionnée il faut changer quelque chose dans le code non?
c'est bon désolé j'ai trouvé cela ne sert a rien de changer le code, mais il y a un problème cela ne garde pas le supérieur dans la cellule. Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 NoLigne = 28 NoColonne = 7 valeur = Val(Right(Cells(NoLigne, NoColonne).Formula, Len(Cells(NoLigne, NoColonne).Formula) - 2)) pourc = valeur * UserForm2.text_pourc.Text mafeuille.Range("G28:H29") = pourc
C'est une blague ?
Non, je pense que non
Si tes cellules sont fusionnées, tu fais référence à la colonne de gauche, sinon tu as une erreur
Et si par hasard tu mets Val(UserForm2.text_pourc.Text) ???
Je n'ai pas testé mais je suppose
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 NoLigne = 28 NoColonne = 7 valeur = Val(Right(Cells(NoLigne, NoColonne).Formula, Len(Cells(NoLigne, NoColonne).Formula) - 2)) pourc = valeur * Val(UserForm2.text_pourc.Text) mafeuille.Range("G28:H29") = pourc
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager