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

XL 2019 Problème calcul % sur calculatrice

  • Initiateur de la discussion Initiateur de la discussion Nathe
  • 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 !

Nathe

XLDnaute Junior
Bonjour à toutes et tous,

Je suis en train d'essayer de monter un projet calculatrice sur excel mais je peine sur l'adaptation du calcul du pourcentage,
Si une personne saurai comment effectué le code qui irai bien.

Merci à tous
Nathe

 

Pièces jointes


c'est pas mal ça, si vous commencez par une encapsule, vous pouvez pas intégrer les chiffre directement dedans, ils vont à droite de l'encapsule, et qu'entendez vous par le freewrite ?
 
le freewrite c'est exactement ce que tu viens de dire pouvoir insérer dans la formule
mais c'est pas du tout le même code c'est bien plus complexe
petite correction au cas ou tu selectionne un operateur en premier caractère pour l'encapsulation
VB:
Private Sub encapsule_Click()
    Dim v$, x&, l&
    With txtExpression
        v = .Text
        x = .SelStart
        l = .SelLength

        If x = 0 Then
            v = "(" & Left(v, l) & ")" & Mid(v, l + 1)
        Else
            v = Mid(v, 1, x) & "(" & Mid(v, x + 1, l) & ")" & Mid(v, x + 1 + l)
        End If
        v = Replace(Replace(Replace(v, "(x", "x("), "(+", "+("), "(/", "/(")
        .Value = v
        expression = v
    End With
End Sub
je ne l'ai pas fait pour le "-" pour que tu puisse faire des calculs avec des nombres negatifs
 
Hello,
😢 Snif ! Patricktoulon et Nathe n'ont pas répondu à ma question du post #31 :
Cela ne fonctionne pas sous quel Excel et quel O.S ? Et quel est le message complet du TimeOut ?
Quand quelque chose ne fonctionne pas, j'aime bien comprendre pourquoi.
Question bête -> Avez bien lancé la calculatrice Windows avant de lancer la calculatrice de Nathe ?
Sinon voici le code à remplacer dans mon classeur pour lancer la calculatrice Windows si elle n'est pas lancée :
VB:
Sub InitBoutons()
Dim c As New CUIAutomation, oCalc As IUIAutomationElement, Dico As Object
Dim oDesktop As IUIAutomationElement, oBtn As IUIAutomationElement
Dim oPane As IUIAutomationElement, oEdit As IUIAutomationElement
Set oDesktop = c.GetRootElement
Set oCalc = WaitForUiElem(c, oDesktop, "Name", "Calculatrice", _
                            TreeScope_Children, 1) ' Recherche de la fenêtre Calculatrice
If oCalc Is Nothing Then
    Shell "Calc.exe", vbNormalFocus
    Set oCalc = WaitForUiElem(c, oDesktop, "Name", "Calculatrice", _
                            TreeScope_Children, 2)
    Me.txtValeur.SetFocus
End If
Set DicoBtns = DicoUIAelems(c, oCalc)
'Set oBtn = DicoBtns("Effacer")
'GetIacc(oBtn).DoDefaultAction
End Sub

Concernant les priorités des opérateurs voici ce que me dit Léo la tête pensante de Brave :
N'importe comment quand on ne connaît pas les priorités ou qu'on a un doute, on utilise les parenthèses pour assurer.

Ami calmant, J.P
 

Bonjour, oui j'avais mal compris, en lançant la calculatrice windows ça fonctionne. Nathe
 
re
Bonjour à tous

Si vous utilisez des opérateurs de même priorité dans la même formule, Excel effectue les opérations de gauche à droite.
c'est bien ça le problème
toutes les calculettes window,google,et même sur des sites , ne respectent pas cette règle
20+10+30%
il l'interprète tous comme 20+(10+30%) soit 33
c'est pas un calcul de gauche à droite ça
d'ailleurs quand il me donne 33 c'est un résultat faux ça devrait être à minima 33.33333......

@Nathe
oui là tu t'engage dans un truc de fou d'ailleurs ton analyse de segment est fausse 25% c'est pas 0.3
c'est 0.4 me semble t-il

je pense qu'avant de proposer l’analyse tu devrait travailler sur le control de saisie
et dieu sait que même là en vba c'est coton
 
re
ou tu a raison @Nathe 4 c'est la division c'est bien 0.25 (+1 en positif )
j'ai bien l'intention de reprendre le projet
en commençant par le contrôle de saisie et validation a chaque touches cliqué
ainsi que l'insertion
cela sera je pense un grand pas
après la décomposition on verra

je vais d'abords le faire par les touches réelles du clavier ( que je maitrise assez bien) et je transfèrerais sur les touches virtuelles de l'interface
il m'est venu une idée aussi c'est de transformer dès la saisie de "%"
par exemple
+10,5% en +(1+(10.5/100)) directement dans l'affichage de la formule ou un textbox caché et evaluer celui ci plutôt que celui affiché
pourquoi
ben ça éviterait de reprendre la chaine de la formule pour la reconditionner
bref ce truc est intéressant quand même
 

Re, si vous souhaitez vous amuser repartez de cette base si pas trop tard, à plus tard,
Après c'est comme vous voulez, Nathe
 

Pièces jointes

Dernière édition:
- 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

Discussions similaires

Réponses
17
Affichages
802
Réponses
9
Affichages
345
  • Question Question
Microsoft 365 Formulaire
Réponses
2
Affichages
118
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…