Traduction d'une macro VB en C#

Résolu
brainburnt Messages postés 11 Date d'inscription jeudi 1 juin 2006 Statut Membre Dernière intervention 12 mai 2009 - 18 avril 2006 à 15:35
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 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.

Je ne sais pas comment le traduire en C#...

Merci d'avance de vos conseils

8 réponses

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
20 avril 2006 à 10:23
Pas de with il faut recopier la propriété a chaque fois.

Pour les feuilles tu les récupères comme çà
Excel.Sheets sheets = theWorkbook.Worksheets;

Pour tes celulles :
Excel.Range range = worksheet.get_Range()

Les autres objets s'appelle pareils.

::|The S@ib|:: MVP C#.NET
3
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
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.
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
19 avril 2006 à 09:54
Peut être vaudrait-il mieux t'orienter vers une application VSTO (Visual Studio Tools for Office).

::|The S@ib|:: MVP C#.NET
0
brainburnt Messages postés 11 Date d'inscription jeudi 1 juin 2006 Statut Membre Dernière intervention 12 mai 2009
19 avril 2006 à 13:04
ok merci les gars mais voila, mon maitre de stage veut absolument que ce soit fait avec Microsoft Visual C# 2005 ...

Lutinore j'ai ajouté le composant COM approprié mais reste toujours le meme problème...
0

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

Posez votre question
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
19 avril 2006 à 17:23
As tu rajouté le bon namespace !? ( using MachinChose; ) Utilise l'explorateur d'objets pour voir le namespace.
0
brainburnt Messages postés 11 Date d'inscription jeudi 1 juin 2006 Statut Membre Dernière intervention 12 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....
0
brainburnt Messages postés 11 Date d'inscription jeudi 1 juin 2006 Statut Membre Dernière intervention 12 mai 2009
20 avril 2006 à 15:50
merci beaucoup
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
20 avril 2006 à 16:18
Deriens.

::|The S@ib|:: MVP C#.NET
0
Rejoignez-nous