Bonsoir à toutes et à tous.
J'ai trouvé ici , Comment trouver le nombre de cellules non vides d'une feuille.
Hors lorsque le compilateur arrive à cette ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
rMaPlage:=MaFeuille.Columns.ColumnDifferences(MaFeuille.Cells.SpecialCells(xlCellTypeLastCell,EmptyParam).Offset[1,1]);
il me donne une erreur:
EvariantError avec le message 'Conversion de type variant incorrect'
Voici mon source:
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
var
   vMSExcel,
   vXLClasseurs,
   vXLClasseur,
   vFeuille,
   LastCelIEP,
   LastCelGDT,
   EtendueIEP,
   EtendueGDT     : variant;
   CptIEP, CptGDT : Word;
begin
  vMSExcel := CreateOleObject('Excel.Application');
  vMSExcel.Visible := true;
  try
    vXLClasseurs := vMSExcel.Workbooks;
    vXLClasseur  := vXLClasseurs.Open(FBaseD,unassigned,False); // IEP
    vFeuille     := vXLClasseur.WorkSheets[1];
    vMSExcel.DisplayAlerts := False;                        // pas de message d'alerte
    // trier
    vFeuille.Cells.Select;
    EtendueIEP:=vFeuille;
    EtendueIEP.Range['A2','O15000'].Sort(vFeuille.Range['A1','A1'], xlDescending,
        EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
        xlGuess, 1, False, xlTopToBottom, EmptyParam);

    LastCelIEP := vFeuille.Cells.SpecialCells(xlCellTypeLastCell,EmptyParam).Offset[1,1];   // LastCelIEP est un variant obligatoirement
    CptIEP:= vFeuille.Columns.ColumnDifferences(LastCelIEP);
  finally
    vXLClasseur.Close;   //   vXLWorkbook.Close(vSaveChanges, aFileName);
    vMSExcel.DisplayAlerts := True ;                        // message d'alerte en route
    vMSExcel.Quit;                                          // Ferme Excel
  end;
   ....
J'ai éclaté la ligne sur 2 variables (LastCelIEP et CptIEP)pour voir ou se produisait l'erreur.
Merci pour l'aide que vous pourrez me fournir.