Microsoft 365 Afficher récap mois en cours dans un Label

AIXELS

XLDnaute Occasionnel
Supporter XLD
Bonjour à tous les Amis du Forum. :)
Mon problème est le suivant : voir Fichier joint

Dans un onglet "RECAPITULATIF" mois en colonne A "A3:A14"
Mois de "JANVIER à DÉCEMBRE".
Colonne I "I3:I14" Total pour chaque mois de "A3:A14"
Adapter le code ci-dessous en VBA Excel pour un affichage dans un "Label4"
dans le UserFform "Pour_Info" pour afficher le "Total du mois correspondant
au mois en cours"
J'ai rentré manuellement la référence de JUIN.
En juillet, les mêmes valeurs seront affichées, aussi possibilité d'automatiser
les valeurs.


VB:
Private Sub UserForm_Activate()
    Dim moisEnCours As String
    Dim totalMois As Double

    moisEnCours = Format(Date, "mmmm") ' Récupère le nom du mois en cours
    totalMois = Sheets("RECAPITULATIF").Range("I3:I14").Find(moisEnCours).Offset(0, 1).Value ' Trouve le total correspondant au mois en cours

    Pour_Info.Label4.Caption = "Total du mois de " & moisEnCours & " : " & totalMois
          
    Pour_Info.Label3.Caption = "Heures effectuées à ce jour" & _
        Chr(10) & "en " & UCase(Sheets("RECAPITULATIF").Range("AO1").Text) ' & "  :  " & _

   ' Fonctionne mais en dur, entrée manuellement affiche les valeurs de JUIN
   ' Pour_Info.Label4.Caption = Sheets("RECAPITULATIF").Range("AP1").Text
                
End Sub
Par avance, Merci pour votre aide.
Bien cordialement.
 

Pièces jointes

  • Afficher récap mois en cours dans Label.xlsm
    32.3 KB · Affichages: 3

ChTi160

XLDnaute Barbatruc
bonjour Aixels
je pense qu'il y a un problème sur la Colonne ou tu recherches le Mois exemple "Juin"
tu as :
VB:
totalMois = Sheets("RECAPITULATIF").Range("I3:I14").Find(moisEnCours).Offset(0, 1).Value
'tu recherches "moisEnCours" dans la Colonne "I" (Range("I3:I14"))
peut être que "Range("A3:A14")" serait plus approprié
jean marie
 

AIXELS

XLDnaute Occasionnel
Supporter XLD
Bonjour @ChTi160
Si je mets
"Range("A3:A14")"
Il m'affiche TOTAL à la place de la valeur.
Mon code ci-dessous fonctionne
' Fonctionne mais en dur, entrée manuellement affiche les valeurs de JUIN
' Pour_Info.Label4.Caption = Sheets("RECAPITULATIF").Range("AP1").Text
Mais l'automatiser pour reprendre la valeur du mois en cours.
Mais comme tu le constater il y'a un message d'erreur au l'affichage
du Userform. J'aurais souhaité que la ligne de commande reprenne
la valeur du mois en cours, pour ne pas avoir à le rentre en Juillet.
Par avance merci pour ton aide
Bien cordialement.
 

AIXELS

XLDnaute Occasionnel
Supporter XLD
Bonjour à tous les Amis du Forum. :)
@ChTi160 a résolu le problème de l'affichage du mois en cours
dans l'Userform. Je l'en remercie.

Reste un souci du format d'affichage des heures supérieures à 24 heures.
Voir fichiers joints.
Pourriez-vous s'il vous plaît m'aider à finaliser mon projet.
Par avance, Merci pour votre aide.
Bien cordialement.
 

Pièces jointes

  • Afficher récap mois en cours dans Label Chti160.xlsm
    32.4 KB · Affichages: 3

AIXELS

XLDnaute Occasionnel
Supporter XLD
Bonjour à tous.
Après des recherches, j'ai réussi à résoudre le problème.
Ce n'est pas académique, mais l'affichage est conforme
aux heures du mois en cours.
Code:
Pour_Info.Label4.Caption = Application.WorksheetFunction.Text(Sheets("RECAPITULATIF").Range("A3:A14").Find(moisEnCours).Offset(0, 8).Value, "[h]:mm") & " h"

Merci pour tous ceux ont donné de leur temps pour résoudre mon problème.
Bien cordialement.
 

Pièces jointes

  • Affichage des heures.jpg
    Affichage des heures.jpg
    11.7 KB · Affichages: 3

AIXELS

XLDnaute Occasionnel
Supporter XLD
Bonsoir @ChTi160
Merci le temps passé et pour ton initiative "Cerise sur le gâteau"
Une version avec le choix du mois !
Cordialement.


1719437854998.png
 

AIXELS

XLDnaute Occasionnel
Supporter XLD
Bonjour à tous les Amis du Forum. :)
Bonjour @ChTi160 Ce matin, j'ai essayé d'adapter la version avec le ComBox
mais j'ai un message d'erreur et arrêt sur cette ligne :
VB:
Private Sub UserForm_Activate()

'Arrêt sur la ligne ci-dessous    
With Range("t_BDD").ListObject

     TabMois = .DataBodyRange.Value
    End With
    With Me
      With .CBx_mois
         For Mois = 1 To 12
             .AddItem UCase(Format(DateSerial(Year(Date), Mois, 1), "mmmm"))
         If Mois = Month(Date) Then Indx = .ListCount - 1
         Next Mois
             .ListIndex = Indx
      End With
    End With
End Sub

1719473998018.png


Merci pour ton aide.
Bien cordialement.
 

ChTi160

XLDnaute Barbatruc
Bonjour AIXELS
Cela vient du fait que dans mon fichier ,j'ai créé un tableau structuré nommé "t_BDD"
Dans lequel je récupère les données dans un tableau temporaire
VB:
With Range("t_BDD").ListObject
  TabMois = .DataBodyRange.Value
    End With
Pour créer un tableau structuré ,tu sélectionnes une cellule de ton tableau ou se trouvent tes données,et tu fais CTRL+ L
Ensuite tu renommES le tableau ainsi créé "t_BDD"
Cordialement
Jean marie
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 089
Messages
2 116 096
Membres
112 660
dernier inscrit
ceucri