Visual Basic Studio 2008 et EXCEL 2003

kima9 Messages postés 12 Date d'inscription samedi 24 janvier 2009 Statut Membre Dernière intervention 10 août 2009 - 31 juil. 2008 à 23:09
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 - 2 août 2008 à 22:55
       Salut,
 

   Tout d'abord je sais pas si le thème est le plus aproprié .
   Voilà je vais essayer d'expliquer mon problème.

   Pour mon stage, je dois réaliser une application sous visual basic studio 2008 .Cette application joue le rôle d' un rapport qui permet de savoir si l'entreprise est conforme aux normes de l'environement ou pas.Dans la page d'acceuil   on trouve les mois et les gazs.Dés qu'on choisit une période (soit un mois ,2 ,3 ou plus) et un gaz un graphe sous excel doit apparaître (en fait ce sont trois graphes figurant sur une même feuille et qui doivent répondre a certains critéres).
Jusqu'au là tout est claire (ben je l'espere )
   
   Au début, j'ai pensé a preparer les graphes et a les appelé selon les cas mais j'ai constaté qu'il faut dessinner 7960 graphes  ( c'est beaucoup n'est ce pas ???!!!!!!!) donc j'ai changé d'avis .Aprés j'ai pensé aux bases de donneés mais je sais pas faire le lien entre VB2005,ACCESS et EXCEL .

   Voilà en gros a quoi ressemble mon probléme .
   Je vous prie si vous voyez comment je peut résoudre mon probléme ,de m'envoyer la solution et aussi la manière de la traiter.

   Merci d'avance et désolé pour la longeur de mon message.
   Cordialement,

12 réponses

gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
1 août 2008 à 09:06
quand tu choisis une période , tu as les données pour faire le graph ,donc
tu n'as plus qu'a passer ces données en paramètres à excel qui te fait le graph

avec office 2003 tu peux même te passer d'excel tu as les
Microsoft Office Web Components( chart, spreadsheet)

bonjour chez vous!
< body>
0
kima9 Messages postés 12 Date d'inscription samedi 24 janvier 2009 Statut Membre Dernière intervention 10 août 2009
1 août 2008 à 20:41
salut,

Merci beaucoup pour vos réponses mais j'ai pas bien saisi ceci
J'ai oublé de mentionner que je suis débutante en vb et excel



comment puis-je passer les valeurs en parametres sous excel a partir de vb ?et Comment le faire sous excel 2003?

désolé pour toutes ces questions et bonne journée
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
1 août 2008 à 21:29
avec office 2003 tu peux même te passer d'excel tu as les
Microsoft Office Web Components( chart, spreadsheet)

bonjour chez vous!
< body>
0
kima9 Messages postés 12 Date d'inscription samedi 24 janvier 2009 Statut Membre Dernière intervention 10 août 2009
1 août 2008 à 22:52
salut,
merci pour votre réponse mais j'ai pas les composants dont vous parlez.n'avez-vous pas une autre solution.
bonne nuit
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
2 août 2008 à 09:22
ils sont ici  http://www.microsoft.com/downloads/details.aspx?familyid=7287252C-402E-4F72-97A5-E0FD290D4B76&displaylang=fr

tu sais exporter tes données vers excel ?
tu prépares un fichier excel ou le graphique est pret tu colles tes données dedans et tu affiche le graph ,
sinon tu peux utiliser Microsoft chart Control (Mschart.ocx)


que l'on trouve un peu partout














bonjour chez vous!
< body>
0
kima9 Messages postés 12 Date d'inscription samedi 24 janvier 2009 Statut Membre Dernière intervention 10 août 2009
2 août 2008 à 14:50
Salut,
merci pour votre réponse.
voilà ce que je fais des que je fais mais choix une feuille excel apparait mais ce que je n'arrive pas a faire c'est d'afficher des graphes en fonction des choix.J'ai pensé à preparer les graphes en avance et a appelé chacun selon son cas mais ça me donne 7960 cas(c'est vraiment bête de préparer tous ces graphes).
S.V.P pouviez vous détailler ce que je dois faire .désolé si je vous dérange trop
bonne journée
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
2 août 2008 à 15:00
tu as combien de données pour un graph?


1 colonne?? 2 colonnes???






 














bonjour chez vous!
< body>
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
2 août 2008 à 15:13
tu veux quoi le code pour exporter tes données dans excel??


ou le code excel pour faire le graph??


parce que ça c'est pas compliqué tu colles tes données dans un fichier excel tu lances l'enregistreur de macros et tu fais ton graph


ensuite tu arrêtes l'enregistreur de macros et tu cliques modifier le macros et hop tu as un truc du genre


Sub Macro1()
'
' Macro1 Macro
'


'
    Columns("E:E").Select
    Range("E5").Activate
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=Range("Feuil1!$E:$E")
    ActiveChart.ChartType = xlPieExploded
    ActiveChart.ChartStyle = 10
    ActiveChart.ClearToMatchStyle
    ActiveChart.ChartStyle = 2
    ActiveChart.ClearToMatchStyle
    Range("D9").Select
End Sub


si tes données sont toujours formatées de la même façon ( nombre de colonnes nombre de cellules) c'est utilisable
sinon c'est plus compliqué














bonjour chez vous!
< body>
0
kima9 Messages postés 12 Date d'inscription samedi 24 janvier 2009 Statut Membre Dernière intervention 10 août 2009
2 août 2008 à 19:19
Salut,

Mais je veux un code qui marche sous vb 2008 car ce code que vous m'avez donné ne l'ai pas.je veux generer les graphes a partir des choix fait sous vb 2008 .Si je clique par exemple sur ce bouton j'aurais un code écrit sous vb 2008 qui me génere le graphe correspondant a ce cas .

N.B: l'interface est faite sous vb 2008 donc sous excel je genere seulement les graphes et rien d'autre

J'espere que vous m'avez compris et désolé si je vous dérange trop
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
2 août 2008 à 19:34
ben le code 

Sub Macro1()
'
' Macro1 Macro
'

'
    Columns("E:E").Select
    Range("E5").Activate
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=Range("Feuil1!$E:$E")
    ActiveChart.ChartType = xlPieExploded
    ActiveChart.ChartStyle = 10
    ActiveChart.ClearToMatchStyle
    ActiveChart.ChartStyle = 2
    ActiveChart.ClearToMatchStyle
    Range("D9").Select
End Sub

 c'est du vba.excel

maintenant si tu cherches du tout cuit ben désolé j'en ai pas , je trouve que avec ce que je t'ai donné tu as des pistes à explorer, à toi de faire un effort

allez en prime je te refile une classe pour exporter des données vers excel

ça c'est du vb 2005 mais ça devrait coller avec ton vb2008

' * Le code permet d'exporter le contenu d'une datagrdiview vers un fichier excel

'**

Imports

Microsoft.VisualBasic
Imports

System
Imports

System.Collections.Generic
Imports

System.ComponentModel
Imports

System.Data
Imports

System.Text
Imports

System.Windows.Forms
Imports

System.Reflection
Public

Class now

Private oXL
As Microsoft.Office.Interop.Excel.Application

Private oWB
As Microsoft.Office.Interop.Excel._Workbook

Private oSheet
As Microsoft.Office.Interop.Excel._Worksheet

Private oRng
As Microsoft.Office.Interop.Excel.Range

Private M
As
Object = System.Reflection.Missing.Value#

Region
"Enregistrer le fichier Excel sous"

Public
Sub SaveAs(
ByVal sNameFichier
As
String)

TryoWB.SaveAs(sNameFichier, M, M, M, M, M, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared, M, M, M, M, M)

Catch e
As ExceptionMessageBox.Show(e.Message)

End
Try

End
Sub#

End
Region

Public
Function Export(
ByRef dtgv
As DataGridView)

Dim z
As Int32 = 1

Dim f
As
New Formf.Width = 200

f.Height = 50

f.FormBorderStyle = FormBorderStyle.None

Dim pgb
As
New ProgressBarpgb.Parent = f

pgb.Dock = DockStyle.Fill

pgb.Style = ProgressBarStyle.Marquee

f.Show()

pgb.Value = pgb.Value + z

Dim savefd1
As
New SaveFileDialog
With savefd1.AddExtension True.DefaultExt
".xlsx".CheckPathExists True.DereferenceLinks
True.Filter "Excell 2007(*.xlsx)|*.xlsx".OverwritePrompt
True.ShowHelp True.SupportMultiDottedExtensions
True.Title "Save as Excell 2007 file".ValidateNames

True

End
With

Try
'Start Excel and get Application object.oXL New Microsoft.Office.Interop.Excel.Application()oXL.Visible

Falsepgb.Value = pgb.Value + z
'Get a new workbook.oWB CType(oXL.Workbooks.Add(System.Reflection.Missing.Value), Microsoft.Office.Interop.Excel._Workbook)oSheet

CType(oWB.ActiveSheet, Microsoft.Office.Interop.Excel._Worksheet)pgb.Value = pgb.Value + z

' Copier les noms des colonnes

Dim i
As
Integer = 0

For
Each ch
As DataGridViewColumn
In dtgv.ColumnsoRng = oSheet.Range(Convert.ToChar(65 + i).ToString() &

"1", Missing.Value)oSheet.Cells(1, i + 1) = ch.Name.Trim()

oRng.Interior.ColorIndex = Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic

oRng.Font.Bold =

TrueoRng.BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, Missing.Value)

oRng.EntireColumn.AutoFit()

pgb.Value = pgb.Value + z

i += 1

Next ch

' Copier toutes les cellules du datagridview

' j=2 on commence à la 2eme ligne dans le fichier excel

Dim j
As
Integer = 2

For
Each uneLigne
As DataGridViewRow
In dtgv.Rowspgb.Value = pgb.Value + z

i = 1

' si i=1 alors 65-1+1 donne 65<=>A et ainsi on aura la lettre de la colonne puis on juxtapose le numero de la ligne

For
Each uneColonne
As DataGridViewColumn
In dtgv.ColumnsoRng = oSheet.Range(Convert.ToChar(65 + i - 1).ToString() & j.ToString(), Missing.Value)

oSheet.Cells(j, i) = uneLigne.Cells(uneColonne.Name).Value.ToString().Trim()

oRng.BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, Missing.Value)

oRng.EntireColumn.AutoFit()

i += 1

Application.DoEvents()

Next uneColonneoSheet.Columns.AutoFit()

j += 1

Application.DoEvents()

Next uneLigne

Catch

End
Tryf.Dispose()

If savefd1.ShowDialog() = System.Windows.Forms.DialogResult.OK
Then

TrySaveAs(savefd1.FileName)

CatchMessageBox.Show(

"erreur")

End
Try

End
IfoXL.Quit()

Return
True

End
FunctionEnd

Class

bonjour chez vous!
< body>
0
kima9 Messages postés 12 Date d'inscription samedi 24 janvier 2009 Statut Membre Dernière intervention 10 août 2009
2 août 2008 à 19:42
désolé mais je cherchais pas du tout cuit je voulais juste de l'aide mais vous m'aviez pas bien compris .Moi je parlais du vb 2008 et vous du vba.

désolé pour le dérangement et soyez sur que que je n'ai consulté le forum qu'aprés avoir cherché pendant 20 jours (c-a-d il me restait plus que 10 jours pour rendre l'application et le rapport)

je m'excuse encre une fois  
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
2 août 2008 à 22:55
po grave mais tu as dit dans ton premier post que tu voulais faire les graph avec excel, le code vba c'est pour faire les graph avec excel
et la classe c'est du vb.net pour exporter tes données de vb 2008 vers excel

avec ce code tu as tout ce qu'il te faut

sauf que maintenant tu dois mettre ttout ça en forme de programme
0
Rejoignez-nous