création d'histogramme en vb

création d'histogramme en vb - VB/VBA/VBS - Programmation

Marsh Posté le 24-06-2002 à 14:01:43    

bonjour
 
pouvez vous me donner les quelques lignes de code pour créer un histogramme en vb à partir de valeurs insérées auparavant dans des cellules du tableur
merci d'avance

Reply

Marsh Posté le 24-06-2002 à 14:01:43   

Reply

Marsh Posté le 24-06-2002 à 14:26:04    

je sais qu'il existe un contrôle ocx, il te suffit d'aller dans les options de vb, et ajour de composant ! tu trouveras le contrôle qui te permet d'avoir les histogrammes...
 
 
essaye d'aller sur www.vbfrance.com, il y a des choses interressantes...


---------------
;) Bienvenue sur le site...:)             http://perso.wanadoo.fr/rapport
Reply

Marsh Posté le 24-06-2002 à 14:33:25    

je comprends pas  
j'ai jamais fait de vb de ma vie et je dois faire ca pour demain

Reply

Marsh Posté le 24-06-2002 à 14:34:51    

en fait je voudrais que dès qu'il y a ne insertion de valeur le graphique soit automatiquement fait

Reply

Marsh Posté le 24-06-2002 à 15:17:53    

tu connais pas d'autre langage que vb ? car je ne sais pas, mais ca va être un peu court de construire quelques chose en quelques heures, surtout que je n'ai jamais fait ce que tu veux..
 
sinon, tu fait projet --> composant tu arrive une liste avec tous les composant, parmi eux normalement si tous va bien, tu as le composant qui te permet de faire des histoigrammes. Dés que tu clique sur chacun d'entre eux ,tu vois l'objet apparaître sur la barre des taches...à gauche !  
 
 
aprés pour le code, je ne le connais pas, mais un conseil, cherche sur internet, sur www.vbfrance.com, www.vbsource.com, www.google.fr, ect. Tu y trouveras surrement la solution, car je ne veux pas paraître pessimiste mais quelques heures c'est trop court !


---------------
;) Bienvenue sur le site...:)             http://perso.wanadoo.fr/rapport
Reply

Marsh Posté le 24-06-2002 à 15:21:13    

merci bcp

Reply

Marsh Posté le 24-06-2002 à 15:45:26    

VERSION 5.00
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.1#0"; "COMDLG32.OCX"
Begin VB.Form Frequency  
   Caption         =   "Frequency Distribution"
   ClientHeight    =   5175
   ClientLeft      =   6120
   ClientTop       =   5625
   ClientWidth     =   5610
   LinkTopic       =   "Form1"
   ScaleHeight     =   5175
   ScaleWidth      =   5610
   Begin MSComDlg.CommonDialog CommonDialog1  
      Left            =   2640
      Top             =   240
      _ExtentX        =   847
      _ExtentY        =   847
      _Version        =   327681
   End
   Begin VB.CommandButton File  
      Caption         =   "Select Database File"
      Height          =   375
      Left            =   120
      TabIndex        =   4
      Top             =   360
      Width           =   2415
   End
   Begin VB.CommandButton Back  
      Caption         =   "Back "
      Height          =   375
      Left            =   3240
      TabIndex        =   3
      Top             =   4320
      Width           =   1815
   End
   Begin VB.CommandButton Show  
      Caption         =   "Show it!"
      Height          =   375
      Left            =   360
      TabIndex        =   2
      Top             =   4320
      Width           =   1695
   End
   Begin VB.ListBox field_list  
      Height          =   2985
      Left            =   2880
      TabIndex        =   1
      Top             =   960
      Width           =   2535
   End
   Begin VB.ListBox table_list  
      Height          =   2985
      Left            =   120
      TabIndex        =   0
      Top             =   960
      Width           =   2415
   End
End
Attribute VB_Name = "Frequency"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Public dbMydb As Database
Public recMyRec As Recordset
Public sMyField As String
 
Private Sub Back_Click()
MsgBox "TO BE IMPLEMENTED LATER, WHEN THERE ARE MANY FUNCTIONS."
End Sub
 
Private Sub field_list_Click()
    sMyField = field_list.Text
End Sub
 
Private Sub File_Click()
    Dim sFile As String
    With CommonDialog1
        'To Do
        'set the flags and attributes of the
        'common dialog control
        .Filter = "Access Files (*.mdb)|*.mdb"
        .ShowOpen
        If Len(.filename) = 0 Then
            Exit Sub
        End If
        sFile = .filename
    End With
     
    Dim nCount As Integer
    Dim sTemp As String
     
    Set dbMydb = OpenDatabase(sFile)
    nCount = 0
    table_list.Clear
    While nCount < dbMydb.TableDefs.Count
        sTemp = dbMydb.TableDefs(nCount).Name
        If Not sTemp Like "MSys*" Then
            table_list.AddItem dbMydb.TableDefs(nCount).Name
        End If
            nCount = nCount + 1
    Wend
    For nCount = 0 To dbMydb.TableDefs.Count - 1
        Debug.Print table_list.List(nCount)
    Next
     
End Sub
 
Private Sub Form_Load()
    Set recMyRec = Nothing
End Sub
 
Private Sub Show_Click()
    If sMyField Like "" Then
        MsgBox "You must select a field."
        Exit Sub
    End If
    If recMyRec.Fields.Count = 0 Then
        MsgBox "the Table is empty!"
        Exit Sub
    End If
     
     
    If recMyRec.Fields(sMyField).Type = dbBigInt Or _
        recMyRec.Fields(sMyField).Type = dbDecimal Or _
        recMyRec.Fields(sMyField).Type = dbDouble Or _
        recMyRec.Fields(sMyField).Type = dbDouble Or _
        recMyRec.Fields(sMyField).Type = dbInteger Or _
        recMyRec.Fields(sMyField).Type = dbLong Or _
        recMyRec.Fields(sMyField).Type = dbNumeric Then
         
    Else
        MsgBox "This field does not have a valid data type to be plotted."
        Exit Sub
    End If
    Dim plot As New FrmPlot
    Set plot.recMy = dbMydb.OpenRecordset(table_list.Text)
    plot.Show
     
End Sub
 
Private Sub table_list_Click()
    Dim nCount As Integer
    nCount = 0
    Set recMyRec = dbMydb.OpenRecordset(table_list.Text)
    field_list.Clear
    While nCount < recMyRec.Fields.Count
        field_list.AddItem recMyRec.Fields(nCount).Name
        nCount = nCount + 1
    Wend
End Sub
 
j'ai trouvé ca mais je ne sais pas comment le mettre en forme  
peux tu me dire s'il marche et m'envoyer le fichier excel après je te serais entièrement reconnaissant

Reply

Marsh Posté le 24-06-2002 à 17:34:14    

je n'ai jamais fait du VBA, seulement des programmes compilés en Vb...Si tu veux le déboguer tu le mets sur une feuille vierge et tu suis les instructions de débogage, il va te le dire...tu as déjà des choses qui me paraissent curieuse :
 
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.1#0"; "COMDLG32.OCX"  
Begin VB.Form Frequency  
  Caption         =   "Frequency Distribution"  
  ClientHeight    =   5175  
  ClientLeft      =   6120  
  ClientTop       =   5625  
  ClientWidth     =   5610  
  LinkTopic       =   "Form1"  
  ScaleHeight     =   5175  
  ScaleWidth      =   5610  
  Begin MSComDlg.CommonDialog CommonDialog1  
     Left            =   2640  
     Top             =   240  
     _ExtentX        =   847  
     _ExtentY        =   847  
     _Version        =   327681  
  End  
  Begin VB.CommandButton File  
     Caption         =   "Select Database File"  
     Height          =   375  
     Left            =   120  
     TabIndex        =   4  
     Top             =   360  
     Width           =   2415  
  End  
  Begin VB.CommandButton Back  
     Caption         =   "Back "  
     Height          =   375  
     Left            =   3240  
     TabIndex        =   3  
     Top             =   4320  
     Width           =   1815  
  End  
  Begin VB.CommandButton Show  
     Caption         =   "Show it!"  
     Height          =   375  
     Left            =   360  
     TabIndex        =   2  
     Top             =   4320  
     Width           =   1695  
  End  
  Begin VB.ListBox field_list  
     Height          =   2985  
     Left            =   2880  
     TabIndex        =   1  
     Top             =   960  
     Width           =   2535  
  End  
  Begin VB.ListBox table_list  
     Height          =   2985  
     Left            =   120  
     TabIndex        =   0  
     Top             =   960  
     Width           =   2415  
  End  
End

 
toutes ces partis ne sont pas mis dans des fonctions ou procédure, ce n'ets pas normal...ensuite : qu'est ce que vient faire cette clé :  
 
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.1#0"; "COMDLG32.OCX"
 
elle appartient à la base de registre, c'est l'enregistrement, dans les BDR...
 
 
ensuite, tu as ceci qui me parait aussi curieux, ca ressemble à des fichiers dépendance :
 
Attribute VB_Name = "Frequency"  
Attribute VB_GlobalNameSpace = False  
Attribute VB_Creatable = False  
Attribute VB_PredeclaredId = True  
Attribute VB_Exposed = False

 
ceci sont des variables, que tu devra mettre dans des modules :
 
Public dbMydb As Database  
Public recMyRec As Recordset  
Public sMyField As String

 
le reste ce sont des prcédures normal, asscociès à des objets divers :
 
Private Sub Back_Click()  
MsgBox "TO BE IMPLEMENTED LATER, WHEN THERE ARE MANY FUNCTIONS."  
End Sub  
 
Private Sub field_list_Click()  
   sMyField = field_list.Text  
End Sub

 
Private Sub File_Click()  
   Dim sFile As String  
   With CommonDialog1  
       'To Do  
       'set the flags and attributes of the  
       'common dialog control  
       .Filter = "Access Files (*.mdb)|*.mdb"  
       .ShowOpen  
       If Len(.filename) = 0 Then  
           Exit Sub  
       End If  
       sFile = .filename  
   End With  
     
   Dim nCount As Integer  
   Dim sTemp As String  
     
   Set dbMydb = OpenDatabase(sFile)  
   nCount = 0  
   table_list.Clear  
   While nCount < dbMydb.TableDefs.Count  
       sTemp = dbMydb.TableDefs(nCount).Name  
       If Not sTemp Like "MSys*" Then  
           table_list.AddItem dbMydb.TableDefs(nCount).Name  
       End If  
           nCount = nCount + 1  
   Wend  
   For nCount = 0 To dbMydb.TableDefs.Count - 1  
       Debug.Print table_list.List(nCount)  
   Next  
     
End Sub

Private Sub Form_Load()  
   Set recMyRec = Nothing  
End Sub  
 
Private Sub Show_Click()  
   If sMyField Like "" Then  
       MsgBox "You must select a field."  
       Exit Sub  
   End If  
   If recMyRec.Fields.Count = 0 Then  
       MsgBox "the Table is empty!"  
       Exit Sub  
   End If  
     
     
   If recMyRec.Fields(sMyField).Type = dbBigInt Or _  
       recMyRec.Fields(sMyField).Type = dbDecimal Or _  
       recMyRec.Fields(sMyField).Type = dbDouble Or _  
       recMyRec.Fields(sMyField).Type = dbDouble Or _  
       recMyRec.Fields(sMyField).Type = dbInteger Or _  
       recMyRec.Fields(sMyField).Type = dbLong Or _  
       recMyRec.Fields(sMyField).Type = dbNumeric Then  
         
   Else  
       MsgBox "This field does not have a valid data type to be plotted."  
       Exit Sub  
   End If  
   Dim plot As New FrmPlot  
   Set plot.recMy = dbMydb.OpenRecordset(table_list.Text)  
   plot.Show  
     
End Sub

 
Private Sub table_list_Click()  
   Dim nCount As Integer  
   nCount = 0  
   Set recMyRec = dbMydb.OpenRecordset(table_list.Text)  
   field_list.Clear  
   While nCount < recMyRec.Fields.Count  
       field_list.AddItem recMyRec.Fields(nCount).Name  
       nCount = nCount + 1  
   Wend  
End Sub


Message édité par macray le 24-06-2002 à 17:41:36

---------------
;) Bienvenue sur le site...:)             http://perso.wanadoo.fr/rapport
Reply

Sujets relatifs:

Leave a Replay

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