brainburnt
Messages postés11Date d'inscriptionjeudi 1 juin 2006StatutMembreDernière intervention12 mai 2009
-
18 avril 2006 à 15:35
TheSaib
Messages postés2367Date d'inscriptionmardi 17 avril 2001StatutMembreDernière intervention26 décembre 2007
-
20 avril 2006 à 16:18
alors voila, je suis actuellement en stage pour mon DUT informatique et on me demande pour l'instant de traduire une macro VB sous forme d'application Microsoft Visual C#.
Il me faut piloter un fichier Excel. Mais je bloque sur une ou deux ligne de codes alors si quelqu'un pouvait m'aider, je serais ravi.
Code de la macro:
Public Sub MiseEnForme(s() As ServiceConducteur, nbservices As Integer)
Dim i_srv As Integer
Dim sh As Variant
For Each sh In ActiveWorkbook.Worksheets
If sh.Name = SHEET Then sh.Delete
Next
Set sh = ActiveWorkbook.Worksheets.Add(ActiveWorkbook.Worksheets(1))
sh.Name = SHEET
row = 1
derniere_ligne = 1
Mon problème réside dans la collection ActiveWorkbook.
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 18 avril 2006 à 16:20
Salut, pour faire de l'Automation ave Excel il faut ajouter le composant COM d'Excel à ton projet. Soit tu l'ajoutes dans la boite à outils via Visual Studio soit tu l'importes avec tlbimp.exe.
brainburnt
Messages postés11Date d'inscriptionjeudi 1 juin 2006StatutMembreDernière intervention12 mai 2009 20 avril 2006 à 08:15
alors le namespace a bien été rajouté. J'ai fais des test de pilotage d'excel de base (ouvrir un fichier, lire une ou deux cellules et les modifier. Enregistrer le fichier modifié). Tout se passe bien. Donc coté namespace pas de problème. Le vrai problème réside dans le fait que je ne sais pas comment activer les feuilles de calcul, et une fois le traitement effectué, passer à la suivante voire la précédente.
Pour ceux que ca intéresserait, j'utilise un
using Microsoft.Office.Interop.Excel;
De plus en VB la macro utilisait:
Range(Cells(derniere_ligne, 1), Cells(row - 1, derniere_colonne)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Je ne sais pas non plus comment faire le "With -> End With" en C#
Désolé de vous déranger pour ça mais j'avoue être totalement perdu....