Additionner la valeur de plusieurs TextBox ?

Bonjour Cappe Pierre, bonjour sabV, bonjour le forum,

Merci pour la considération

Je n'ai pas tout compris de tes savants calculs, mais j'ai quand même ajouté de la couleur dans le TBSoldeàPayer. Ça fait beau et c'est plus visuel : jaune, il reste un solde; vert, le compte est bon.

J'ai aussi pris le temps d'aligner certains textbox.

Joseph

Bonjour

attention Val aime pas la virgule

j'ais fait un nouveau projet avec une listview

a oui évite de tous renommer

A toi de voir ?

A+

Maurice

Bonsoir, Maurice,je n'ai pas très bien compris le fonctionnement de ton programme

il n'y a pas de colonne total à payer

merci quand même de l'intérêt que tu me portes, je vais prendre ce qu'il y à de bon et je me débrouillerai avec

Bonne soirée et encore merci


Bonsoir Albert,

c'est très bien la présentation, mais j'ai toujours le même problème avec le solde restant à payer

le TBTotal devrait déduire le montant déjà versé, or en faisant le total des frais des TB et en déduisant le montant versé cela ne correspond pas à la vérité dans le TBTotal

merci de me régler ce problème

amitiés

Pierrot

Bonjour Cappe Pierre, bonjour le fil, bonjour le forum,

En s'adressant à Albert, je ne sais pas si tu t'adressais à moi.

Dans l'affirmative, tel que je l'ai mentionné, je ne comprends pas tes savants calculs, même s'ils semblent évidents pour toi.

J'apprécierais que tu me les expliques.

Pour les commentaires de archer (Maurice), je vais examiner cela.

A+

Joseph

Joseph et non Albert, excuses-moi pour cette erreur

Dans tous les TextBox en rouge dans le fichier sont des taxes à payer lors de l'achat d'un ou de plusieurs lots, à construire

en additionnant toutes les sommes on a un total(colonne H a la colonne O,) duquel il faut retrancher le montant versé colonne N,pour

connaître le solde à payer TBTotal en vert dans le fichier

j'espère avoir été assez clair, sinon, tu peux passer ce samedi main, je suis libre

rue du Blanc Bois, 14,1360 Perwez, Belgique( entre Namur et Bruxelles)

amitiés

Pierrot

Bonjour Cappe Pierre, bonjour le fil, bonjour le forum,

Merci pour l'invitation, mais comme je n'ai pas les moyens de me payer un billet d'avion ou de bateau et que je nage très mal, la traversée de l'Atlantique pose problème. Je vais quand même essayer de comprendre en allant me cogner la tête sur les coins du mur ... peut-être que l'information va finir par entrer.

Je regarde cela et tente de tricoter quelque chose de satisfaisant.

J'ai tenu compte du commentaire de archer et j'ai remplacé les Val par des CDBL.

Je suis à ajouter des formats à deux décimales.

Merci de ta patience et de tes indulgences.

Joseph

Bonjour à tous,

Pierrot, il faudrait remplacer la macro Addition_Frais par celle-ci,

Sub Addition_Frais()
Dim tb, i As Integer, n As Double
UserForm_Clients.Controls("TBTotal") = 0
tb = Array("TBMontantaPayer", "TBFraisOuvertureDossier", "TBAttestVillageoise", "TBDOssierTechnique", "TBFraisACD", "TBNotaireHuissier", "TBSoldeàPayer")

For i = LBound(tb) To UBound(tb)
 If UserForm_Clients.Controls(tb(i)).Value <> "" Then
   n = n + CDbl(UserForm_Clients.Controls(tb(i)).Value)
 End If
Next
If UserForm_Clients.Controls("TBMontantPayé") <> "" Then n = n - CDbl(UserForm_Clients.Controls("TBMontantPayé"))
UserForm_Clients.Controls("TBTotal") = n
End Sub

edit: correction: ajout si TBMontantPayé <> ""

bonjour ou bonsoir

penser a mettre les KeyPress pour les Textbox a chiffre

A+

Maurice

Bonsoir, Maurice, c'est quoi les KeyPress pour les Textbox a chiffre ?

Pour le reste j ai du changer une ligne de code car Joseph à supprimer le TextBoxTotal

cela marche du tonnerre, sauf pendant les modifications, le total ne change que si je change de Nom et je reviens au nom précédant

et les chiffres ont changés

Je vais mettre un tri à l'insertion d'un nouveau membre

Merci pour tout et bonne soirée

je joins le dernier fichier en cours

Amitiés de Belgique

Pierrot


Bonsoir Joseph, je viens de mettre à jour mon fichier avec les codes de Archer (Maurice), le tout fonctionne très bien a part quelques petits détails, j'attends ton fichier modifié avec intérêt.

Bonne soirée à vous deux et un gros merci pour votre talent et votre gentillesse

Bisous de Belgique

Pierrot

Bonjour Cappe Pierre, bonjour le fil, bonjour le forum,

Je n'ai pas utilisé ton dernier fichier. Étant sur une lancée effrénée avec un filet de sang me coulant le long du nez (coin de mur), j'ai ajouté des visuels de couleur sur TBMontantaPayer et TBSoldeàPayer. Ces deux dernières ont aussi des infobulles.

Un montant versé en trop est même géré. ... Voir Maurice Deschamps.

Les calculs ont été vérifiés et vérifiés de nouveau.

J'ai aussi complété le code du bouton Vider pour nouvelle entrée.

J'ai effectué un survol rapide des autres traitements.

Le tout reste quand même à valider si tout cela atteint un taux de satisfaction suffisant pour un Belge coincé entre Namur et Bruxelles. (mes sympathies)

J'ai aussi désactivé quelques TabStop au cas où tu serais un fervent utilisateur de la touche TAB du clavier lors des saisis.

Avec une fracture du crâne l'information est enfin entrée.

Je vais de ce pas me panser et me restaurer ... si je trouve quelque chose qui n'est pas périmé.

A+

Joseph

P.S. Je viens de remarquer que si un quidam est sélectionné et qu'on clique plus d'une fois sur Valider nouvelle entrée, on peut ajouter plusieurs fois les mêmes informations. Par contre, on peut supprimer aisément. Est-ce problème?

Bonjour Joseph,tu peux arrêter de te cogner la tête au mur, j'ai trouvé la solution, en mélangeant tes formules et celles de Maurice

un grand merci pour tout ce que tu as fais

une erreur dans ton dernier fichier, regarde le total dans le TextBox solde à payer, cela ne correspond pas à la réalité

addition des TextBox frais moins l'acompte versé, le total solde à payer n'est pas valable.

regarde la photo jointe,il me reste à régler l'impression des fiches.c'est sur le point d'être réglé

le solde à payer devrait être : 286 €au lieu de 121€ comme sur la fiche

dans mon fichier, tout est en ordre

amitiés

Pierrot

achat terrain

Bonjour

voila une autre version avec plein d'astuce

A+

Maurice

Salut Maurice,

je fais comment pour entrer la valeurs dans les TextBox de ton nouveau document ?

je remarque qu'en me servant de l'UserForm_Clients, les données sont transférées directement dans ton document

mais le calcul du solde restant à payer ne s'effectue pas, dans la dernière version que j'ai, tout fonctionne

tu peux donc arrêter de te creuser les méninges.Un grand merci pour tout ce que tu as réalisé

je vais voir comment transférer les données de mon UF vers ton tableau;

je te tiens au courant

Amitiés

Pierrot

Bonjour Cappe Pierre, bonjour le fil, bonjour le forum,

On m'avait annoncé d'éventuels problèmes avec certaines fonctions cognitives ... ça s'avère.

Par obstination (c'est toujours dur les défaites), voici une version gadgettisée.

- Info_Label quand on passe le curseur de la souris sur un des 3 TextBox (TBInscrits, TbSomme, TBSoldeàPayer)...

>- Ces mêmes 3 TextBox sont "locked".

  • Couleur variable dans TBMontantPayé et TBSoldeàPayer selon des conditions (trop perçu ou solde à 0).
  • Alignement et uniformisation des Label et Textbox.
  • Feuille Clients, entête figé au haut.
  • Feuille Clients, colonne P, couleur variable selon des conditions...
>- (blanc=solde à payer) (vert=soldé) et (rouge=trop payé).
  • La feuille Clients est déverrouillée à l'ouverture du Userform (le double clicks sur la ligne 1 fonctionne)
  • La feuille Clients est verrouillée à la fermeture du Userform.

Désolée pour le trouble occasionné

Joseph

Salut, Joseph

comment va la tête ? et le coin du mur, pas trop de dégâts

j'ai ajouter une ligne de tri dans le code "transfert de lignes"

tu as fait de l'excellent travail, c'est bien les couleurs en fonction des montants

j'ai poster un msg sur le forum pour imprimer l'UserForm, mais je n'ai que des réponses négatives.

tu peux considérer que le fichier est terminé, grâce à toi et à Maurice

un grand merci à vous deux, que j'embrasse affectueusement

amitiés

Pierrot

Bonjour le fil, bonjour le forum,

Dans ce genre de cas l'idéal est de passer par un module de classe. En Pièce jointe ton fichier modifié.

Les modifications sont :

• Création d'un module de classe (menu Insertion/Module de classe de l'éditeur VBE) que j'ai renommé ClassTB (la classe des TextBoxes)

• dans le module Module1 en première ligne le code :

Public TTB(1 To 8) As New ClassTB 'déclare le tableau TTB (Tableau des 8 TextBoxes)

qui va définir un tableau public des 8 textboxes qui vont appartenir à la classe ClassTB

• à l'initialisation de l'userform UserForm_Clients ce code rajouté pour alimenter le tableau TTB

Dim CTRL As Control 'déclare la variable CTRL (ConTRôLe)
Dim I As Byte 'déclare la variable I (Incrément)

I = 1 'initialise la variable I
For Each CTRL In Me.Controls 'boucle sur tous les contrôles de l'userform
    Select Case CTRL.Name 'agit en fonction du nom du contôle
        'ici on liste le nom de tous les contrôles que l'on veut additionner
        Case "TBMontantaPayer", "TBFraisOuvertureDossier", "TBAttestVillageoise", "TBDOssierTechnique", "TBFraisACD", "TBNotaireHuissier", "TBMontantPayé", "TBSoldeàPayer"
            Set TTB(I).TB = CTRL 'définit la variable indexée TTB(I)'ajoute le contrôle au tableau TTB
            I = I + 1 'incrément I
    End Select 'fin de l'action en fonction du nom du comntrôle
Next CTRL 'propchain contrôle de la boucle

• Et pour finir le code dans le module de classe :

Public WithEvents TB As MSForms.TextBox 'définit le nom qui sera utilisé pour les textboxes du tableau TTB

Private Sub TB_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'à l'appui d'une touche dans un TB
If KeyAscii = 46 Then KeyAscii = 44: Exit Sub 'remplace le point par une virgule et sort de la procédure
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 8 'efface tout autre caractère que {0, 1, 2, 3, 4, 5, 6, 7, 8 et 9}
End Sub

Private Sub TB_Change() 'au changement dans une textbox TB
Dim V(1 To 8) As Double 'déclare le tableau de 8 variables V
Dim T As Double 'déclare la varqible T (Total

For I = 1 To 8 'boucle suir les 8 textboxes du tableau TTB
    'si la valeur de la textbox (I) de TTB est vide définit V(I)=0 sinon V(I) est la valeur de ta textbox(I) convertie en double
    If TTB(I).TB.Value = "" Then V(I) = 0 Else V(I) = CDbl(TTB(I).TB.Value)
    T = T + V(I) 'définit le total T
Next I 'prochaine textbox de la boucle
UserForm_Clients.TBTotal = T 'renvoie le total dans la tectbox [TBTotal] de l'UserForm [UserForm_Clients]
End Sub
23pierre-v01.xlsm (52.34 Ko)

re bonjour

voila une astuce avec édition PDF sur un onglet ses plus pratique

A+

Maurice

Bonjour Cappe Pierre, bonjour le fil, bonjour le forum,

Cette version est la même que précédemment ... avec l'ajout de l'impression.

La méthode que j'ai trouvé sur le Net et que j'ai adapté, passe par l'ajout temporaire d'une feuille.

Tu pourras donc, via le code, jouer avec les marges ou le centrage.

C'est un code un peu délicat avec deux écrans.

Je te laisse expérimenter si ça convient.

A+

From the other side of Atlantic ocean

Joseph

P.S. Je passe par une imprimante PDF pour les tests ... sauvons du papier

Bonsoir à vous tous un grand merci pour votre aide,certaines solutions demandent une ou l'autre petite modification

a présent tout fonctionne , les totaux des TextBox, l'impression des fiches.

je suis heureux mais fatigué, les séances de chimio sont éreintantes.un grand bravo et encore merci pour votre travail à tous

bon Weekend

gros bisous à vous tous

Amitiés

Pierrot

Bonjour Cappe Pierre, bonjour le fil, bonjour le forum,

J'ai l'impression que l'impression pourrait être améliorée si cela pouvait être bienvenu.

Suggestion : au lieu d'imprimer le UserForm, que dirais-tu d'une feuille où figurerait ... soit une transaction ou toutes les transactions d'une même personne, advenant que ce dernier cas occasionnellement s'avère. Je parle aussi des options : 1- impression papier, 2- impression fichier au format pdf.

Intéressé zou pas ? (j'aime bien les pataquès )

Joseph

Rechercher des sujets similaires à "additionner valeur textbox"