Bonjour,
je cherche à utiliser la fonction "offset" d'excel en OLE Automation.
J'arrive à ouvrir excel, à ouvrir un workbook, à selectionner la feuille que je veux, à lire une cellule mais j'ai eu beau chercher (par moi-même et sur le net) je ne trouve rien pour ces deux fonctions :(
Voila ce que je fais :
//************************************************************
bool MyExcel::SelectRange(char *pPos)
{
if(pPos == NULL) return false;
WCHAR str[100];
MultiByteToWideChar(CP_ACP, 0, pPos, -1, str, 100);
VARIANT parm;
parm.vt = VT_BSTR;
parm.bstrVal = SysAllocString(str);
AutoWrap(DISPATCH_PROPERTYGET, &cellRange, xlSheet.pdispVal, L"Range", 1, parm);
SysFreeString(parm.bstrVal);
VariantClear(&parm);
return true;
}
bool MyExcel::OffsetRange(const int col,const int line)
{
VARIANT parmX;
parmX.vt = VT_I4;
parmX.lVal = line;
VARIANT parmY;
parmY.vt = VT_I4;
parmY.lVal = col;
AutoWrap(DISPATCH_PROPERTYPUT, &cellRange, cellRange.pdispVal, L"Offset", 1, parmX, parmY);
//cellValue.dblVal;
VariantClear(&parmX);
VariantClear(&parmY);
return true;
}
//************************************************************
Ce code compile mais ne fonctionne pas. je récupére cette erreur :
Unhandled exception at 0x001501e9 in "LectureExcel.exe": 0xC0000005: Access violation writing location 0x1501e800.
Je ne comprends pas pourquoi il y a un access violation Writing alors que je ne fais que décaler mon RANGE !
Quelqu'un a t'il une explication ?
Merci beaucoup de votre aide à venir,
Aymeric