XL 2016 Somme en VBA (résolu)

Lemidi34

XLDnaute Occasionnel
Bonjour,
je crée un échéancier excel en VBA et je souhaite qu'une de mes texbox fasse la somme automatiquement de mes 12 mois et ce sur chaque ligne que je rajoute.
Je joins un fichier qui sera plus explicite.
Merci de votre aide
 

Pièces jointes

  • Classeur1.xlsm
    21.9 KB · Affichages: 13

TooFatBoy

XLDnaute Barbatruc
Bonjour,

je souhaite qu'une de mes texbox fasse la somme automatiquement de mes 12 mois
Il faudrait commencer dire laquelle de tes TextBox, vu qu'il y en a 14 dans ton UserForm...
Et ensuite expliquer quelle ligne doit être utilisée.

Ceci dit, les TextBox semblent correspondre à un mois, donc je ne vois pas bien l'intérêt d'y inscrire la somme d'une ligne vu qu'une ligne semble plutôt être une année...
 

Lemidi34

XLDnaute Occasionnel
Bonjour,


Il faudrait commencer dire laquelle de tes TextBox, vu qu'il y en a 14 dans ton UserForm...
Et ensuite expliquer quelle ligne doit être utilisée.

Ceci dit, les TextBox semblent correspondre à un mois, donc je ne vois pas bien l'intérêt d'y inscrire la somme d'une ligne vu qu'une ligne semble plutôt être une année...
Oui la ligne correspond à une année
Bonjour,


Il faudrait commencer dire laquelle de tes TextBox, vu qu'il y en a 14 dans ton UserForm...
Et ensuite expliquer quelle ligne doit être utilisée.

Ceci dit, les TextBox semblent correspondre à un mois, donc je ne vois pas bien l'intérêt d'y inscrire la somme d'une ligne vu qu'une ligne semble plutôt être une année...
Oui je souhaite juste que le montant annuel se mette à jour tout seul
Merci
 

TooFatBoy

XLDnaute Barbatruc
Ok, mais on ne sait toujours pas quelle TextBox doit contenir la somme de quelle ligne. 😉

Et vu d'ici, il semble toujours aussi absurde de faire la somme d'une ligne (qui représente une année) dans une TextBox qui représente un mois... 😁

Sans parler de l'intérêt d'utiliser une TextBox pour inscrire le résultat d'un calcul. 🤔
 

Lemidi34

XLDnaute Occasionnel
Ok, mais on ne sait toujours pas quelle TextBox doit contenir la somme de quelle ligne. 😉

Et vu d'ici, il semble toujours aussi absurde de faire la somme d'une ligne (qui représente une année) dans une TextBox qui représente un mois... 😁

Sans parler de l'intérêt d'utiliser une TextBox pour inscrire le résultat d'un calcul. 🤔
Et bien ce soir c'est ma fête.....
Mon niveau me fait demander peut être des absurdités ;) mais c'est pour ca que je cherche des personnes plus qualifiés que moi. Je souhaite juste pourvoir avec mon userform ajouter des dépenses sur les mois de l'année et calculer le montant annuel dans le textbox 14 qui remplira la cellule de mon tableau
Merci de ton temps passé pour mes questions
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir à tous,

J'ai transformé le tableau en "tableau structuré" (au moins disponible depuis Excel 2010). Cela déjà dispense du codage du formatage des bordures (c'est déjà ça de gagné!:)).
Le code doit faire tout ce que vous désirez. On accepte comme séparateur décimal le point et la virgule.
Le contrôle TextBox14 a été verrouillé (propriété Locked à True). En effet, c'est un résultat de calcul et l'utilisateur n'a pas à y toucher. C'est le VBA qui s'en charge.

Voir le code dans le module de Userform1:
VB:
Option Explicit

Private Sub CommandButton2_Click()
Dim lig&, i&, x As ListObject, aux, y As ListRow
   Application.ScreenUpdating = True
   If Trim(TextBox13) = "" Then MsgBox "Type de dépense absent => Échec!", vbCritical: Exit Sub
   For i = 1 To 12: aux = aux & Trim(Controls("textbox" & i)): Next
   If aux = "" Then MsgBox "Aucune valeur mensuelle => Échec!", vbCritical: Exit Sub
   With Range("a1").ListObject
      .ListRows.Add
      Set y = .ListRows(.ListRows.Count)
      With y
         .Range(1, 1) = TextBox13
         .Range(1, 2) = Val(Replace(TextBox14, ",", "."))
         For i = 1 To 12: .Range(1, i + 2) = Val(Replace(Controls("textbox" & i), ",", ".")): Next
      End With
   End With
   For i = 1 To 14: Controls("textbox" & i) = "": Next
End Sub

Sub Somme()
Dim i&, x
   For i = 1 To 12: x = x + Val(Replace(Controls("textbox" & i), ",", ".")): Next
   TextBox14 = x
End Sub

Private Sub TextBox1_Change(): Somme: End Sub
Private Sub TextBox2_Change(): Somme: End Sub
Private Sub TextBox3_Change(): Somme: End Sub
Private Sub TextBox4_Change(): Somme: End Sub
Private Sub TextBox5_Change(): Somme: End Sub
Private Sub TextBox6_Change(): Somme: End Sub
Private Sub TextBox7_Change(): Somme: End Sub
Private Sub TextBox8_Change(): Somme: End Sub
Private Sub TextBox9_Change(): Somme: End Sub
Private Sub TextBox10_Change(): Somme: End Sub
Private Sub TextBox11_Change(): Somme: End Sub
Private Sub TextBox12_Change(): Somme: End Sub
 

Pièces jointes

  • Lemidi34- somme userform- v1.xlsm
    26 KB · Affichages: 6
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

Pourquoi le multi-postage est très mal vu :
  • Le sujet se retrouve sur plusieurs forum sans que l'utilisateur de chaque forum ne soit prévenu.
  • Cela oblige le demandeur à suivre plusieurs discussions sur chacun des forums. Peu de demandeur ont la capacité de suivre en direct les évolutions de la discussion sur chaque forum.
  • Bien souvent, un des forums est privilégié et les autres délaissés ou avec des réponses très tardives.
  • Le demandeur, en réponse à des demandes de précisions sur un forum, omet la plupart du temps d'informer les répondeurs des autres forums de ces précisions primordiales.
  • Rien n'est plus irritant pour les répondeurs que d'apprendre (souvent par hasard) que la question a été résolue "ailleurs" et qu'ils ont travaillé pour des prunes.
  • Le plus souvent, le demandeur ne prend même pas la peine d'informer les répondeurs des autres sites que la réponse a été trouvée et ne donne pas le lien vers la solution.
  • Et enfin le dernier point: même en fournissant le lien vers la solution, les demandeurs ou les membres qui suivent la discussion sur leur site ne sont pas forcément abonnés au site de la solution (et ne le souhaitent peut-être pas). Ils n'auront donc jamais connaissance de la solution idoine à la question posée sur leur forum.
Il vaut mieux poster sa demande sur un seul site et, si la solution n'apparait pas, clore la discussion et l’ouvrir sur un autre forum.
Sachant qu'un certain nombre de répondeurs fréquentent plusieurs forum, on a peu de chance d'avancer "à couvert" quand on pratique le multi-postage ;).

Article de la charte du forum XLD:
2.10 - Évitez de poser votre question sur plusieurs forums sur Internet, cette pratique s'appelle « cross posting" et elle peut être mal perçue par les membres répondant aux questions. Si vous avez déjà posté votre question ailleurs, que nous n'avez pas de réponse satisfaisante et que vous voulez la reposter sur XLD, il est possible de supprimer votre discussion sur l'autre forum.
Cela fonctionne aussi dans l'autre sens si vous souhaitez poser votre question ailleurs.


Article de la charte du forum Excel-Pratique:
Ne postez pas la même question sur un autre forum pour éviter de faire perdre bêtement du temps aux membres sur un problème qui peut être déjà résolu sur l'autre forum. L'inverse est également valable, si vous avez déjà posé votre question sur un autre forum, ne créez pas un doublon sur ce forum (à moins d'avoir clôturé le sujet sur l'autre forum).

:)
 
Dernière édition:

Phil69970

XLDnaute Barbatruc
Bonjour à tous

Perso pour toutes les raisons développées par @mapomme des que je vois le mot multi postage je ferme la demande instantanément et j'essaye d'aider les autres demandeurs.

Vu du demandeur c'est plus facile de poster tout azimut en attendant une "solution toute zone" MAIS vu de ceux qui cherchent des réponses c'est clairement se moquer d'eux.

Dans 9 fois sur 10 le demandeur ne viendra pas dire arrêter de chercher j'ai trouvé sur tel site cette réponse.

Je préfère clairement la solution "mono forum" pour sa question car il ne fait pas perdre du "temps de cerveau disponible" :oops: aux personnes qui prennent le temps de chercher et répondre à la question du demandeur.🤔

Ne pas oublier que le temps du demandeur est aussi précieux que le temps des personnes qui aident.

Bonne lecture

@Phil69970
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

@PETIT complément d'info à l'attention du novice en XeLleDie
Avant même de penser poser une question ici ou ailleurs ou ici, ailleurs, là-bas et carrément au loin ;)
Le premier réflexe devrait être celui-ci :
La Charte¸ un jour sans pluie à dit:
2.1 – Un outil de recherche sur le forum permet de voir si la question a déjà été posée.
Ne pas hésiter à l’utiliser.

En effet le forum est peuplé de questions mille fois posées et mille fois résolues.
Pour paraphraser Émile Gravier (*)
On peut poser mille fois mille questions, non, on peut poser une fois mille questions, mais on ne peut pas poser mille fois mille questions.
Non, on peut poser une fois mille questions mais on peut pas poser mille fois une question.
;)
(*) indice pour les plus jeunes d'entre nous : 9 mars 1994
 

Discussions similaires

Réponses
12
Affichages
342
Réponses
16
Affichages
438

Statistiques des forums

Discussions
312 252
Messages
2 086 631
Membres
103 281
dernier inscrit
TOUFIK82