Bonjour,
tout d'abord je tiens à préciser que j'ai trouvé des codes en C# et que j'ai réussi à en traduite la quasi totalité...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
52
53
54
55
56
57
 
//
// Code Behind
//
 
using System.Data.OleDb;
using System.IO;
 
public partial class Forms_WebImportExport : System.Web.UI.Page
{
    public void fillGrid()
    {
        DataSet ds = new DataSet();
        ds.ReadXml(Server.MapPath("../xmlTest.xml"));
        GridView1.DataSource = ds;
        GridView1.DataBind();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {    
            fillGrid();
        }
    }
    protected void btImport_Click(object sender, EventArgs e)
    {
        string conn = ("Provider=Microsoft.Jet.OLEDB.4.0;" + ("Data Source=C:\\path\\test.xls;" + 
                      "Extended Properties=\"Excel 8.0;\"")); // or use instead of Excel 8.0 - Excel 5.0
        string SSQL = "SELECT name , dept, salary from [sheet1$]";
        OleDbDataAdapter oleDA = new OleDbDataAdapter(SSQL, conn); // here use oleDataReader
        DataSet ds = new DataSet();
        //oleDA.TableMappings.Add("Table","ExcelTest"); // Require
        oleDA.Fill(ds);
        GridView1.DataSource = ds.Tables[0].DefaultView; // or [ ds ]
        GridView1.DataBind();
    }
    protected void btExport_Click(object sender, EventArgs e)
    {
        ExportGridToExcel(GridView1, "myExcel");
    }
    public void ExportGridToExcel(GridView grdGridView, string fileName)
    {
        Response.Clear();
        Response.AddHeader("content-disposition",string.Format("attachment;filename={0}.xls",fileName));
        Response.Charset = "";
        Response.ContentType = "application/vnd.xls";
        StringWriter stringWrite = new StringWriter();
        HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
        GridView1.RenderControl(htmlWrite);
        Response.Write(stringWrite.ToString());
        Response.End();
    }
    public override void VerifyRenderingInServerForm(Control control)
    {
        /* method must be implemented when using RenderControl */
    }
}
Après avoir tout transformé en vb.net
j'obtiens le code ci-après
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
Imports System.IO.StringWriter
Imports System.Web.UI.HtmlTextWriter
Partial Class bonDeCommande
    Inherits System.Web.UI.Page
 
 
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Response.Clear()
        Response.AddHeader("content-disposition", "attachment;filename=FileName.xls")
        Response.Charset = ""
 
 
        Response.ContentType = "application/vnd.xls"
        Dim stringwrite As New System.IO.StringWriter()
        Dim htmlWrite As New HtmlTextWriter(stringwrite)
        GridView1.RenderControl(htmlWrite)
        Response.Write(stringwrite.ToString())
        Response.End()
 
 
    End Sub
    Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
 
 
    End Sub
End Class
Le message d'erreur est le suivant : RegisterForEventValidation ne peut être appelé que pendant Render();

Il semble irrésolvable...
Merci pour vos réponses.
Cordialement,
Tid.