Code VBA pour exportation Données et tracer de graphique

Code VBA pour exportation Données et tracer de graphique - VB/VBA/VBS - Programmation

Marsh Posté le 30-05-2014 à 22:22:23    

Bsr à tous.je suis un débutant en VBA actuellement je travaille sur un projet où je dois établir une carte de suivie du taux moyen. Pour cela,je dois aller chercher les données enregistrées quotidiennement dans la base de donnée . Des valeurs enregistrées, je dois exporter leurs moyenne par semaine puis par mois dans un tableau à créer sur une nouvelle feuille du même classeur. Par la suite faire un graphique dynamique qui montrera suivant l’évolution des mois respectifs,l'état du taux moyen ; devra également apparaitre sur le graphique pour comparaison une barre de l'état de l’année N-1(5%) et l'objectif poursuivie(3%) par l'année en cours(N+1). cela pour chaque ligne.(fichier joint). es ce que quelqu'un pourrait m'aider
Merci

Reply

Marsh Posté le 30-05-2014 à 22:22:23   

Reply

Marsh Posté le 31-05-2014 à 12:16:55    

 
           Bonjour,
 
           merci de poster le travail déjà entrepris, notamment le code, conformément aux règles de ce forum …
 

Reply

Marsh Posté le 31-05-2014 à 17:47:13    


           Bonjour,
 
           merci de poster le travail déjà entrepris, notamment le code, conformément aux règles de ce forum …
 
ok voilà le début de macro.(j'ai pas retrouver l'onglet fichier joint). je n'arrive pas à faire qu'il sépare chacun des lignes(9,10,14) en récupérant les valeurs selon les mois puis de tracer leur graphe .
Merci
 
Option Explicit
 
Dim Ln, Mois, M, N°Mois, N°Sem, NbJM, NbJS, TauxS, TauxM, TmS, TmM
Dim Année
 
Sub MiseAjour()
     
    N°Mois = Cells(3, "B" ).Value
    N°Sem = Cells(3, "D" ).Value
    NbJS = 0
    NbJM = 0
    TauxM = 0
    TauxS = 0
     
    'Initialisation du tableau de résultats
    Range(Cells(7, 6), Cells(8, Application.Max(6, Cells(7, Columns.Count).End(xlToLeft).Column))).ClearContents
    'Range(Cells(8, 6), Cells(8, Application.Max(6, Cells(8, Columns.Count).End(xlToLeft).Column))).clearcontent
     
    With Sheets("Base de Données Brutes" )
        Année = Year(.Cells(3, "A" ).Value)
        For Ln = 3 To .Cells(Rows.Count, "A" ).End(xlUp).Row
            If Year(.Cells(Ln, "A" ).Value) = Année Then
                Mois = Array("Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre" ,"Janvier","Février", "Mars", "Avril" )
                        TauxM = TauxM + .Cells(Ln, "F" ).Value
                        NbJM = NbJM + 1
                        TmM = TauxM / NbJM
                        TauxS = TauxS + .Cells(Ln, "F" ).Value
                        NbJS = NbJS + 1
                        TmS = TauxS / NbJS
                    If .Cells(Ln, "B" ).Value <> .Cells(Ln + 1, "B" ).Value Then
                        M = Month(.Cells(Ln, "A" ).Value)
                        Cells(8, Range("5:5" ).Find(Mois(Month(.Cells(Ln, "A" ).Value) - 1)).Column).Value = TmM
                        M = Mois(M - 1)
                        TauxM = 0
                        NbJM = 0
                    End If
                     
                    If .Cells(Ln, "D" ).Value <> .Cells(Ln + 1, "D" ).Value Then
                        'x = "S" & .Cells(Ln, "E" ).Value
                        Cells(7, Range("6:6" ).Find("S" & .Cells(Ln, "D" ).Value).Column).Value = TmM
                        TauxS = 0
                        NbJS = 0
                     
                    End If
            End If
        Next Ln
    End With
End Sub


Message édité par elie r le 01-06-2014 à 16:24:18
Reply

Marsh Posté le 02-06-2014 à 11:57:15    

 
           En fait si la ligne n° … Ah zut le code n'a pas été balisé conformément aux règles du forum ‼
 
           Si par hasard il y a des cellules fusionnées, elles peuvent être source d'une erreur
           qu'il convient au demandeur de mentionner ainsi que la ligne de code la déclenchant !
           Plus la présentation est claire et exhaustive plus il y a de chance d'obtenir satisfaction …
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed