[Résolu par BrunoM45] Calculatrice à bande -limitée à 255 caractères-

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 !

Webperegrino

XLDnaute Accro
Supporter XLD
Bonjour Le Forum,
Dans le fichier ci-joint vous trouverez un UserForm de calculatrice.
Il n'est pas de ma conception ; il a été récupéré sur notre Forum dans un fichier appelé Xl0000009, et je l'avais gardé "au cas où".
Une petite merveille que j'ai adaptée au niveau du TextBox1 où j'ai placé le ScrollBars en "ScrollBarsVertical" …

Comme le dit le titre de cette conversation, connaissez-vous le moyen pour forcer la saisie à beaucoup plus que seulement 255 caractères (chiffre et signes) ?

Puis afficher le résultat en cellule A13 de la feuille 3 par exemple ?
Je n'ai pas non plus trouvé la signification du bouton D, pour votre information...
Merci
Webperegrino
 

Pièces jointes

Dernière édition:
Re : Calculatrice à bande - contenu limité à 255 caractères-

Bonjour,

Comme le dit le titre de cette conversation, connaissez-vous le moyen pour forcer la saisie à beaucoup plus que seulement 255 caractères (chiffre et signes) ?
Qu'elle limitation !?
J'ai mis plus de 500 caractères sans problème !?

A+
 
Re : Calculatrice à bande - contenu limité à 255 caractères-

Bonjour Le Forum,
Bonjour Bruno (BRUNO45) et merci pour ton intervention,

Par exemples ci-après j'ai essayé avec le cas 1 et le cas 2 : ça passe bien.
Avec le cas n° 3 qui suit ça casse !
+1, +11 d'accord,
mais pas avec +111.

Bonne soirée,
Webperegrino

Cas 1 & 2 :
896523.12+23456789.23+896523.12+23456789.23+896523.12+23456789.23+896523.12+23456789.23+896523.12+23456789.23+896523.12+23456789.23+896523.12+23456789+23456789.23+896523.12+23456789.23+896523.12+23456789.23+896523.10+896523.12+23456789+12456.25+123+1+3+1

896523.12+23456789.23+896523.12+23456789.23+896523.12+23456789.23+896523.12+23456789.23+896523.12+23456789.23+896523.12+23456789.23+896523.12+23456789+23456789.23+896523.12+23456789.23+896523.12+23456789.23+896523.10+896523.12+23456789+12456.25+123+1+3+11

Cas n° 3 :
896523.12+23456789.23+896523.12+23456789.23+896523.12+23456789.23+896523.12+23456789.23+896523.12+23456789.23+896523.12+23456789.23+896523.12+23456789+23456789.23+896523.12+23456789.23+896523.12+23456789.23+896523.10+896523.12+23456789+12456.25+123+1+3+111
 
Re : Calculatrice à bande - contenu limité à 255 caractères-

Salut WebPeregrino

Effectivement, apparemment c'est la fonction EVALUATE() qui ne passe pas

Tu peux contourner le problème en passant pas une cellule
Voici le code
VB:
Public Sub ControlClick(Index As Integer)
    Select Case Index
    Case Is < 10: AjouterSurText CStr(Index)
    Case Is = 10: AjouterSurText ","
    Case Is = 11 'Résultat
        On Error GoTo ErreurCalcul
        Range("A1").FormulaLocal = "=" & Replace(TextBox1.Text, ".", ",")
        Label1.Caption = Range("A1").Value
    Case Is < 18
        AjouterSurText ClGroup(CStr(Index)).Caption
        Case 18: If TextBox1.SelLength > 0 Then AjouterSurText ""
        Case 19: TextBox1 = "": Label1 = ""
    End Select
Exit Sub
ErreurCalcul:
MsgBox "Votre calcul comporte une erreur", vbCritical, "VOTRE CALCULATRICE VOUS PARLE !"
End Sub

A+
 
Re : Calculatrice à bande - contenu limité à 255 caractères-

Bonsoir Le FOrum,
Merci pour cette dernière proposition.
Je l'étudie de mon côté, essaie d'en prendre le fonctionnement également (c'est important pour moi).

Je regarderai aussi ensuite si je peux réussir à avoir, au fur et à mesure que les chiffres et nombres s'affichent dans cette première fenêtre, le résultat s'affiche automatiquement dans la deuxième fenêtre (plutôt que d'attendre l'appui sur la touche =, cette touche 'égale' confirmant la valeur déjà affichée -ce n'est pas le cas pour le moment-) :

11 dans la fenêtre A donne 11 dans la fenêtre B
11+1 en A donne tout de suite 12 en B
puis 11+13 en A donne 24 en B, etc

Merci encore Bruno,
Bonsoir à toi et à tous les amis du Forum,
Webperegrino
 
Re : Calculatrice à bande - contenu limité à 255 caractères-

Re,

Dans l'USF il suffit d'ajouter cet évènement avec ce code 😉
VB:
Private Sub TextBox1_Change()
  If IsNumeric(Right(Me.TextBox1, 1)) Then
    Range("A1").FormulaLocal = "=" & Replace(TextBox1.Text, ".", ",")
    Label1.Caption = Range("A1").Value
  End If
End Sub

Comme ça à chaque appuie de touche, si le caractère saisie est numérique, on effectue le calcul

A+
 
Re : Calculatrice à bande - contenu limité à 255 caractères-

Le Forum,
Bonjour Bruno,
Alors là ! Chapeau bas : on se croirait devant ma vielle calculatrice manuelle à bande papier.

Dans les jours prochains, je vais m'amuser à ajouter un bouton dans l'UserForm pour copier-coller le contenu du TextBox1 sur une feuille Word à imprimer -utile pour le contrôle stockage de factures ou chèques rassemblés, les artisans et banquiers connaissent bien cela-, avec une présentation du style (aligné à droite) :
12 456.25 +
123+
1+
3+
111 =

12 694.25

et ce sera le paradis dans l'application !
Je mettrai alors mes résultats de recherches à la suite de cette conversation, pour les autres éventuels utilisateurs.
Merci à toi en tout cas, c'est très sympa de ta part d'être si actif sur le Forum, le meilleur qui soit en ce domaine.
Webperegrino
 
Re : Calculatrice à bande - contenu limité à 255 caractères-

Le Forum,
Bruno45,
Degap05 bonjour,
Merci pour ta participation également.
Ceci me servira aussi dans mes UserForm ultérieurs.
Je suis toutefois passé à la recherche d'une macro (* une approche qui bloque) qui m'imprimerait la liste saisie en TextBox1 en export sur une feuille Word, mais, sur la toile, ça n'est pas évident de trouver l'idée.
Bon week-end
Webperegrino

(*)
Sub copieFenetre1versWord ()
Dim WorApp As Word.application 'J'ai déjà ici une erreur de compilation Type défini ...non défini ; ça commence mal !Dim WordDoc As Word.Document
Set WordApp = New Word.Application
WordApp.Visible = False
Set WordDoc = WordApp.Documents.Open (Fichier)
TextBox1.Value.Copy 'pour une présentation comme en #8 ce sera complexe j'imagine...With WordDoc
.Paste
.BlackAndWhite = True
ActiveSheet.PageSetup.orientation = WordLandscape
ActiveSheet.PrintOut 'en directEnd With
End Sub
 
Re : Calculatrice à bande - contenu limité à 255 caractères-

Le Forum,
J'ai fait une petite avancée... mais ce n'est pas encore olympique comme résultat...

En effet, il y a du copier-coller à réaliser entre la 1ère fenêtre de l'UserForm et l'application Word ouverte.
Placez d'abord une feuille Word dans G:\ ou autre comme expliqué dans le fichier ci-joint.
Si cela peut servir à d'autres personnes, allons-y donc : voici le fichier.
Bonne soirée,
Webperegrino
 
Dernière édition:
Re : Calculatrice à bande - contenu limité à 255 caractères-

Salut Degap05, webperegrino

Petites modifications apportées :
  1. la possibilité de diviser par un nombre décimal commençant par un 0
  2. la possibilité d'ajouter des parenthèses à n'importe quel moment
  3. la saisie du pourcentage
Au plaisir 😉
 

Pièces jointes

Dernière modification par un modérateur:
Re : Calculatrice à bande - contenu limité à 255 caractères-

Bonsoir Le Forum,
Bonsoir Bruno, DeGap

Un petit Glups toutefois, Bruno : ça coince sur Mid du Code de l'UserForm.
Peux-tu vérifier si ça fonctionne chez toi ? Merci.

VB:
Sub AjouterSurText(t As String)
    If Len(TextBox1.Text) = TextBox1.SelStart Then 'Ajoute
        TextBox1 = TextBox1 & t
    Else  'Insertion / remplacement
        TextBox1 = Left(TextBox1, TextBox1.SelStart) & t _
        & Mid(TextBox1, TextBox1.SelStart + 1 + TextBox1.SelLength)
    End If
    TextBox1.SetFocus
End Sub

Dans ThisWorkBook j'ai jugé aussi utile de mettre ceci qui fonctionne (c'est intéressant pour mon application) :

VB:
Option Explicit

Private Sub Workbook_Open()
UFCalculatrice.Show
End Sub

Webperegrino
 
- 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
Retour