programme Visual basic pour excel
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

programme Visual basic pour excel



  1. #1
    seb6051

    programme Visual basic pour excel


    ------

    bonjour ,
    j'aimerais savoir a quoi correspondent chaque fonction svp merci


    Private newPage As Variant
    Private collData As New Collection
    Private ac As Variant

    '''''''''''''''''''''''''''''' '''''''
    ' Exécution du traitement
    Public Sub Traitement()

    Call Flush
    Call CreatePage("Rapport")
    Call GetData(0)
    Call PutData
    Call CreateChart

    Call CreateMoyenne
    Call CreateChartMoy

    End Sub

    '''''''''''''''''''''''''''''' '''''''''
    ' Suppression des feuilles supplémentaires
    Private Sub Flush()
    Application.DisplayAlerts = False
    Do While ActiveWorkbook.Sheets.Count > 1
    Sheets(2).Delete
    Loop
    Application.DisplayAlerts = True
    Set newPage = Nothing
    Set collData = New Collection
    End Sub

    '''''''''''''''''''''''''''''' ''''
    ' Création d'une page Excel
    ' Nom : Nom de la page
    ' Renvoi : void
    Private Sub CreatePage(Nom As String)
    ActiveWorkbook.Sheets.Add After:=Worksheets(1)
    Set newPage = ActiveSheet
    newPage.Move After:=Sheets(1)
    newPage.Name = Nom
    End Sub

    '''''''''''''''''''''''''''''' ''''''
    ' Récupération des données de la page .CSV
    ' ref : Filtre de récupération
    ' Renvoi : void
    Private Sub GetData(ref As Integer)

    Dim i As Integer
    Dim dv As clsDateValeur

    ' On commence à la 4ème ligne
    i = 4
    ' Récupération des données jusqu'à ce qu'il n'y en ait plus
    Do While Sheets(1).Cells(i, 1) <> ""
    If Sheets(1).Cells(i, 2) = ref Then
    Set dv = New clsDateValeur
    Call dv.Init(Sheets(1).Cells(i, 1), Sheets(1).Cells(i, 3) * 1000)
    collData.Add dv
    End If
    i = i + 1
    Loop

    End Sub

    '''''''''''''''''''''''''''''' ''''''''''
    ' Ecriture des données par rapport à une collection de type clsDateValeur
    ' collData :La collection de données
    ' Renvoi : <void>
    Private Sub PutData()

    Dim i As Integer
    i = 1

    For Each dv In collData
    newPage.Cells(i, 1) = dv.dt
    newPage.Cells(i, 1).NumberFormat = "h:mm;@"
    newPage.Cells(i, 2) = dv.valeur
    i = i + 1
    Next

    End Sub

    '''''''''''''''''''''''''''''' ''''''''''''''
    ' Création du graphique
    ' maxi : Nbre de valeurs
    Private Sub CreateChart()

    newPage.Range("E2").Select
    newPage.Shapes.AddChart.Select
    Set ac = ActiveChart
    ac.ChartType = xlXYScatterSmooth
    ac.SeriesCollection.NewSeries
    ac.SeriesCollection(1).XValues = "=Rapport!$A$1:$A$" & collData.Count
    ac.SeriesCollection(1).Values = "=Rapport!$B$1:$B$" & collData.Count

    End Sub


    Private Sub CreateMoyenne()
    Dim moy As Double

    If collData.Count < 2 Then Exit Sub

    For Each pt In collData
    moy = moy + pt.valeur
    Next
    moy = moy / collData.Count
    newPage.Cells(collData.Count + 2, 1) = collData(1).dt
    newPage.Cells(collData.Count + 2, 1).NumberFormat = "h:mm;@"
    newPage.Cells(collData.Count + 2, 2) = moy
    newPage.Cells(collData.Count + 3, 1) = collData(collData.Count).dt
    newPage.Cells(collData.Count + 3, 1).NumberFormat = "h:mm;@"
    newPage.Cells(collData.Count + 3, 2) = moy

    End Sub

    Private Sub CreateChartMoy()

    ac.SeriesCollection.NewSeries
    ac.SeriesCollection(2).XValues = "=Rapport!$A$" & collData.Count + 2 & ":$A$" & collData.Count + 3
    ac.SeriesCollection(2).Values = "=Rapport!$B$" & collData.Count + 2 & ":$B$" & collData.Count + 3

    End Sub



    -----

  2. #2
    seb6051

    Re : programme Visual basic pour excel

    Public dt As Date
    Public valeur As Double

    Event test()


    '''''''''''''''''''''''''''''' '''''''''''''''
    ' Initialise les valeurs
    ' dt : la date
    ' valeur : la valeur
    Public Sub Init(dt As Date, valeur As Double)

    Me.valeur = valeur
    Me.dt = dt

    End Sub
    cette partie est dans clsDatevaleur

    et cette partie dans le module :
    Public Sub Traitement()

    Dim tr As New clsTraitement
    tr.Traitement

    End Sub
    Nom : photo prog vb.JPG
Affichages : 66
Taille : 90,2 Ko

  3. #3
    invite473b01b1

    Re : programme Visual basic pour excel

    Salut,

    Alors selon moi,

    La fonction Flush supprime toutes les feuilles du classeur hormis la première.
    La fonction CreatePage crée une feuille nomée Rapport...
    La fonction GetData initialise des données lues sur la feuille 1
    La fonction PutData pousse les données sur la feuille 2 nommée Rapport
    La fonction CreateChart crée un graphique basé sur un ensemble de cellule de la feuille Rapport.
    La fonction CreateMoyenne calcule une moyenne à partir il me semble des données lues sur la feuille 1
    La fonction CreateChartMoy crée un graphique avec les moyennes précédemment calculées.

    Les autres méthodes ne sont là que pour la "mécanique", elles ne servent qu'à encapsuler et appeler les méthodes décrites plus haut.
    Ne connaissant pas la nature des données qui sont traitées, je ne peux pas vous en dire plus...

  4. #4
    seb6051

    Re : programme Visual basic pour excel

    Bonjour,

    Merci;

    en gros on a des dates avec des heures et des minutes on veux transformer ça en miniute dans une nouvelle feuille et on y viens convertir des m/s en mm/s ensuite on trace effectivement un graphique et on fait une moyenne sur ce graphique .
    Dernière modification par seb6051 ; 03/03/2016 à 07h07.

  5. A voir en vidéo sur Futura
  6. #5
    seb6051

    Re : programme Visual basic pour excel

    bonjour ,

    je reviens pour essayer de comprendre un peu mieux certaine syntaxes
    Création du graphique
    ' maxi : Nbre de valeurs
    Private Sub CreateChart()

    newPage.Range("E2").Select
    newPage.Shapes.AddChart.Select
    Set ac = ActiveChart
    ac.ChartType = xlXYScatterSmooth
    ac.SeriesCollection.NewSeries
    ac.SeriesCollection(1).XValues = "=Rapport!$A$1:$A$" & collData.Count
    ac.SeriesCollection(1).Values = "=Rapport!$B$1:$B$" & collData.Count

    End Sub


    Private Sub CreateMoyenne()
    Dim moy As Double

    If collData.Count < 2 Then Exit Sub

    For Each pt In collData
    moy = moy + pt.valeur
    Next
    moy = moy / collData.Count
    newPage.Cells(collData.Count + 2, 1) = collData(1).dt
    newPage.Cells(collData.Count + 2, 1).NumberFormat = "h:mm;@"
    newPage.Cells(collData.Count + 2, 2) = moy
    newPage.Cells(collData.Count + 3, 1) = collData(collData.Count).dt
    newPage.Cells(collData.Count + 3, 1).NumberFormat = "h:mm;@"
    newPage.Cells(collData.Count + 3, 2) = moy

    End Sub

    Private Sub CreateChartMoy()

    ac.SeriesCollection.NewSeries
    ac.SeriesCollection(2).XValues = "=Rapport!$A$" & collData.Count + 2 & ":$A$" & collData.Count + 3
    ac.SeriesCollection(2).Values = "=Rapport!$B$" & collData.Count + 2 & ":$B$" & collData.Count + 3

    End Sub
    j'aimerais que l'on me detail cette derniere svp merci

Discussions similaires

  1. Visual Basic et Excel
    Par invite11d6e00c dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 24/11/2011, 05h48
  2. visual basic + excel
    Par invite3811ba77 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 07/04/2011, 17h25
  3. Excel/Visual Basic
    Par invited6d43218 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 13/03/2009, 20h18
  4. Problème visual Basic excel
    Par invitec336fcef dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 14/02/2008, 13h12
  5. Visual basic excel - tutorial
    Par chris111 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 11/04/2007, 19h27