Traduire programme VBA en equivalent C# ( Interop Excel )
Bonjour :)
Je suis nouveau sur ce forum, j'ai réaliser dernièrement une macro en VBA qui a l'aide d'un Userform fusionne plusieurs classeurs excel en un seul en copiant les différentes feuilles des classeurs pour les coller dans le nouveau classeur [ exemple : cela permet d'avoir un classeur de 30 feuilles au lieu de 30 classeur de 1 feuille :) )
voici donc mon programme en VBA ( qui fonctionne ) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Private Sub CommandButton1_Click()
Dim ret1 As Integer
ret1 = MsgBox("Vous aller Fusionner les fichiers Excel présent dans la liste ci-dessus, Continuer? ", vbYesNo)
If ret1 = vbNo Then
Exit Sub
Else
Dim Cible As Workbook, chemin$, Filename$, o As Worksheet
Workbooks.Add
Set Cible = ActiveWorkbook
chemin = "Z:\Fichiers Exemples\"
Filename = Dir(chemin & "*.xlsx")
Do While Filename <> ""
Workbooks.Open Filename:=chemin & Filename, ReadOnly:=True
For Each o In ActiveWorkbook.Sheets
o.Copy After:=Cible.Sheets(1)
Next o
Workbooks(Filename).Close
Filename = Dir()
Loop
ListBox1.Clear
MsgBox "Importation Réussie avec succès !"
Unload UserForm1
End If
End Sub |
Ainsi je souhaite faire l'équivalent en C# avec Visual Studio :)
J'ai ainsi commencé par faire ce début de code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Office.Interop.Excel;
using Excel = Microsoft.Office.Interop.Excel;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button3_Click(object sender, EventArgs e)
{
//Fusion Boucle
object misValue = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Excel.Application Application = new Microsoft.Office.Interop.Excel.Application();
Application.DisplayAlerts = false;
Application.Visible = true;
string chemin, Filename, Filename2;
chemin = @"C:\DEV\VINCENT\New\";
Filename = chemin + "test1.xlsx";
Application.Workbooks.Open(Filename);
Filename2 = chemin + "test2.xlsx";
Application.Workbooks.Open(Filename2);
}
}
} |
pour le moment Ce programme m'ouvre simplement 2 classeurs excel existant :)
Comme je suis débutant en C# j'espère que vous pourrez m'éclairer sur le sujet :)
merci d'avance !
Cordialement