Bonjour, svp j'ai besoin d'aide, je veux enregistrer un fichier excel sous format pdf et j'ai sous mon fichier excel des cellules fusionnées et d'autres non alors mon problème c'est quand je prend que la partie où il y a que des cellules normales qui ne sont pas fusionnées, j'arrive à l'enregistrer sous pdf , par contre si je prend meme la partie où il y a les cellules fusionnées et d'autres cellules non fusionnées, j'ai ce message d'erreur: Cette opération requiert que les cellules fusionnées soient de taille identique. c'est en c# si vous avez des pistes, je serais reconnaissante


mon code est le suivant: (je selectionne les lignes de 5 à 17, la ligne 17 qui contient deux cellules fusionnées)
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
58
59
60
61
62
 public void printmyexcelMultiples(bool lastsheet)
        {
            try
            {
                Excel.XlFixedFormatType type = Excel.XlFixedFormatType.xlTypePDF;
                Excel.Workbook xlWorkBookprint = xlApp.Workbooks.Add(Type.Missing);
                Excel.Worksheet xlWorkSheetprint = (Excel.Worksheet)xlWorkBookprint.Worksheets.get_Item(1);
                Excel.Range used = this.multiplesSheet.UsedRange;
 
                xlWorkSheetprint.PageSetup.LeftMargin = 30;
                xlWorkSheetprint.PageSetup.RightMargin = 30;
                xlWorkSheetprint.PageSetup.TopMargin = 75;
                xlWorkSheetprint.PageSetup.BottomMargin = 30;
 
                //set the page printting zoom.
                xlWorkSheetprint.PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape;
                // xlWorkSheetprint.PageSetup.Zoom = 100;
                int start = 5;
                int end = 17;// used.Rows.Count - 1;
 
                //*************************copy the rest files*******************************
 
                int pasteStartRow = xlWorkSheetprint.UsedRange.Rows.Count + 1;
                //lineEvaluation = pasteStartRow;
                Excel.Range rangepaste3x = xlWorkSheetprint.Cells[pasteStartRow, 1] as Excel.Range;
 
                Excel.Range rangecopy3 = used.get_Range(used.Cells[start, 1], used.Cells[end, 4]) as Excel.Range;
                rangecopy3.SpecialCells(Excel.XlCellType.xlCellTypeVisible).EntireRow.Copy();
 
                rangepaste3x.EntireRow.PasteSpecial(Excel.XlPasteType.xlPasteAll);
                rangepaste3x.EntireRow.PasteSpecial(Excel.XlPasteType.xlPasteColumnWidths);
                rangepaste3x.EntireRow.PasteSpecial(Excel.XlPasteType.xlPasteValues);
                int time5 = System.Environment.TickCount;
                int pasteEndRow = xlWorkSheetprint.UsedRange.Rows.Count;
 
                Excel.Range range1 = xlWorkSheetprint.UsedRange.get_Range("A1", getColIndexText(xlWorkSheetprint.UsedRange.Columns.Count) + xlWorkSheetprint.UsedRange.Rows.Count) as Excel.Range;
                Excel.Range hiddeE = range1.get_Range("E1", getColIndexText(xlWorkSheetprint.UsedRange.Columns.Count) + 1) as Excel.Range;
                hiddeE.EntireColumn.Hidden = true;
 
                if (File.Exists(serverroot + "\\Spreadsheets\\RapportPDF\\" + this.Text + "print1.xlsx"))
                    File.Delete(serverroot + "\\Spreadsheets\\RapportPDF\\" + this.Text + "print1.xlsx");
                xlWorkSheetprint.SaveAs(serverroot + "\\Spreadsheets\\RapportPDF\\" + this.Text + "print1.xlsx");
                xlWorkSheetprint.PageSetup.PrintTitleRows = "$1:$5";
                xlWorkSheetprint.PageSetup.BlackAndWhite = false;
                xlWorkSheetprint.PageSetup.CenterHorizontally = true;
                 xlWorkSheetprint.ExportAsFixedFormat(type, serverroot + "\\Spreadsheets\\RapportPDF\\" + this.Text + "printMultiples.pdf", 0, true, true,1, Type.Missing, false, Type.Missing);
                //xlWorkSheetprint.SaveAs(serverroot + "\\Spreadsheets\\RapportPDF\\" + this.Text + "printMultiples.pdf", type, "pme", "pme", true, false, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
 
                if (lastsheet)
                    addPDFParam(serverroot + "\\Spreadsheets\\RapportPDF\\" + this.Text + "printMultiples.pdf", "", 0, 0, null);
                else
                {
                    addPDFParam(serverroot + "\\Spreadsheets\\RapportPDF\\" + this.Text + "printMultiples.pdf", "merge", 1, 0, null);
                }
                xlWorkSheetprint = null;
                xlWorkBookprint.Close();
            }
            catch (Exception ex)
            {
                log.Error(ex.ToString());
            }
        }