par Stephane Maillard » 19 Août 2003 à 12:55
Bonjour,Je viens réécrire les deux graphiques avec un bonus pour placer les graphiques ou vous voulez dans la feuille en cours. Je viens de tester sur mon poste.Dim vExcel As Variant ' variant contenant un objet de type ApplicationDim vNouveauClasseur As Variant 'contient une variable de type WorkbookDim vFeuilleActive As Variant 'variant contenant la feuille Excel WorksheetDim vXLLigne As Integer ' pointeur des lignes sous ExcelDim vXLCol As Integer ' pointeur des colonnes sous ExcelDim NomFeuille As String '<== Ne pas oublier de l'ajouter dans vos déclarationsSub Initialize'Cet agent crée un nouveau fichier Excel à chaque fois qu'il est lancé et génère l'exportation Call CreeFichierExcel( )' Call InitialiseTableauExcel()' Call remplittableau() Call CreerGraphique1() Call CreerGraphique2() 'on sauve et on ferme Call vExcel.quit ( ) End SubSub CreeFichierExcel ( )'Cette procédure créé le fichier Excel 'On lance Excel et on le rend visible à l'écran (pour le mode debbug) Set vExcel = createObject ("Excel.Application") vExcel.visible = True 'on crée un nouveau fichier excel Set vNouveauClasseur = vExcel.Workbooks.Add( ) 'on récupère la feuille active : Feuil1 Set vFeuilleActive = vExcel.ActiveSheet NomFeuille = vFeuilleActive.Name '<== Ne pas oublier de l'ajouter'on sauvegarde sur disque le fichier excel (sous c:) Call vNouveauClasseur.SaveAs("c:\Faux.xls") End SubPublic Sub CreerGraphique1() Dim XLGraphique1 As Variant vExcel.Range("C3:C14").Select Set XLGraphique1 = vExcel .Charts.Add XLGraphique1.ApplyCustomType 21, "Courbe avec lissage" XLGraphique1.Location 2, NomFeuille PlaceGraphique NomFeuille, 1, "A", 15End SubPublic Sub CreerGraphique2() Dim XLGraphique2 As Variant vExcel.Range("D3:D14").Select Set XLGraphique2 = vExcel .Charts.Add XLGraphique2.ApplyCustomType 21, "Courbe avec lissage" XLGraphique2.Location 2, NomFeuille PlaceGraphique NomFeuille, 2, "F", 15End SubPublic Sub PlaceGraphique(s_Feuille As String, l_NumeroGraphique As Long, s_Colonne As String, i_Ligne As Integer) With vExcel.Application.Worksheets(NomFeuille) .ChartObjects(l_NumeroGraphique).Top = .Rows(i_Ligne).Top .Range("A1").Select .ChartObjects(l_NumeroGraphique).Left = .Columns(s_Colonne).Left End WithEnd Sub'--Fin codeRoutine PlaceGraphique :s_Feuille (String) : Nom de la feuile ou doit être placer le graphiquel_NumeroGraphique (Long) : Numéro du graphique, par défaut le premier est 1 et qaund vous ajouté un graphique il incrémenté de 1.S_Colonne (String) : La colonne ou vas ce situer le bord gauche du graphiquei_Ligne (Integer) : Numéro de la ligne ou va ce situer le haut du graphique[%sig%]
Cordialement
Stéphane Maillard