XL 2016 Calculer un sous total dans une TextBox

Eric4709

XLDnaute Nouveau
Bonjour à tous,

Je me tourne une nouvelle fois vers la communauté pour résoudre un problème que je rencontre.

J'ai un tableau comprenant plus de 6000 ligne et 70 colones. Ce tableau contient des dates en colonne BN et des montants en AE.

Ce que je voudrai faire ici c'est afficher dans une TextBox1 (renommée CA_Réalisé) que j'ai créé, le sous total des montants livrés (Colonne AE) dans le mois en cours (en fonction des dates de la colonne BN).

J'ai tenté ce code mais visiblement il ne fonctionne pas :

Private Sub CA_Réalisé_Change()
Dim NoCol As Integer
NoCol = Application.Match("Date TP système", Range("1:1"), 0) ' recherche de la bonne colonne
ActiveSheet.ListObjects("Suivi_M53").Range.AutoFilter Field:=NoCol, Criteria1 _
:=xlFilterThisMonth, Operator:=xlFilterDynamic
CA_Réalisé.FormulaLocal = "=sous.total(9;AE1:AEl0000)"
End Sub

Je ne peux malheureusement pas mettre le fichier en ligne car il contient des données confidentielles.

J'espère que ma demande n'est pas trop brouillonne.

Merci d'avance pour vos retour.

Bien cordialement à tous.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Eric, ChTi,
J'ai pas bien compris comment vous articuliez votre code.
En PJ un essai.
J'initialise la textbox directement dans ROFO.
VB:
Sub ROFO() 'Afficher les données de l'atterrissage ROFODim NoCol As Integer
' recherche de la bonne colonne
NoCol = Application.Match("Date TP système", Range("1:1"), 0)
' filtrage sur le mois courant
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=66, Criteria1:= _
xlFilterThisMonth, Operator:=xlFilterDynamic
' sous total de Montant Livré HT
Atterrissage_ROFO.CA_Réalisé.Value = Application.Subtotal(9, Range("AE:AE"))
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=66
' suppression du filtre
Atterrissage_ROFO.Show
End Sub
 

Pièces jointes

  • Test (22).xlsm
    62.3 KB · Affichages: 13

ChTi160

XLDnaute Barbatruc
Re

ce que j'ai mis pour tester le Soustotal du mois en Cours
j'ai pris Février pour l'exemple.
VB:
Private Sub UserForm_Initialize()
Dim Soustotal As Currency
Soustotal = 0
With Feuil1
tbl = .ListObjects("Tableau1").DataBodyRange
End With
Mois = Month(DateSerial(2020, 2, 1)) 'Ici le mois en cours pour test
For l = 1 To UBound(tbl, 1)
  If tbl(l, 66) <> Empty Then
   If Month(CDate(tbl(l, 12))) = Mois Then
   Soustotal = Soustotal + CCur(tbl(l, 31)) 
   End If
  End If
Next l
  Me.CA_Réalisé.Text = Format(Soustotal, "### ##0.00")
End Sub
jean marie
 

Eric4709

XLDnaute Nouveau
Merci Jean Marie pour ce Code qui fonctionne parfaitement.
Pour le choix du mois en cours, faudra-t-il changer la date tous les mois dans la macro ? Si non comment faut-il modifier le code pour qu'il choisisse automatiquement le mois en cours ?

Merci d'avance pour ton retour.
 

Discussions similaires

Statistiques des forums

Discussions
312 075
Messages
2 085 080
Membres
102 772
dernier inscrit
bluetesteur