begin process at 2012 05 28 09:44:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

ActiveX / COM

 > 

Automation Excel avec c++ : "Offset"


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Automation Excel avec c++ : "Offset"

lundi 6 juin 2011 à 21:28:15 | Automation Excel avec c++ : "Offset"

aymericpont

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
mercredi 8 juin 2011 à 19:51:05 | Re : Automation Excel avec c++ : "Offset"

patatalo

Membre Club Administrateur CodeS-SourceS
salut,

AutoWrap(DISPATCH_PROPERTYPUT, &cellRange, cellRange.pdispVal, L"Offset", 2,parmX, parmY);


@++
mercredi 8 juin 2011 à 21:03:24 | Re : Automation Excel avec c++ : "Offset"

aymericpont

Réponse acceptée !
Effectivement dans le code que j'ai copié il y avait cette erreur que j'ai pu corriger.

Mais j'ai finalement j'ai compris pourquoi je n'arrivais pas à utiliser cette fonction. c'est parceque je ne SELECTIONNER pas mon RANGE avant. Je ne ne faisais que le définir.

Ma fonction qui fonctionne avec PROPERTYGET :

//*********************************************
bool cExcelApplication::Offset(const int& intOffsetX, const int& intOffsetY, char* pPosSrc)
{
ActivateCell(pPosSrc);

VARIANT offsetX;
offsetX.vt = VT_I4;
offsetX.lVal = intOffsetX;

VARIANT offsetY;
offsetY.vt = VT_I4;
offsetY.lVal = intOffsetY;

AutoWrap(DISPATCH_PROPERTYGET, &cellRange, cellRange.pdispVal, L"Offset", 2, offsetX, offsetY);

//Si une cellule est activée alors on récupére la valeur de la cellule
//Si on a seulement selectionner un champs alors on récupére un tableau qui commence
// à la cellule décaler et qui finit en bas à droite du tableau

VariantClear(&offsetX);
VariantClear(&offsetY);

return true;
}

Merci pour le coup de main,

Salut


Cette discussion est classée dans : excel, vt, parm, parmx, parmy


Répondre à ce message

Sujets en rapport avec ce message

automatisation d'excel [ par lilington ] salut voici mon problème: parm.bstrVal = ::SysAllocString(L"A2:A2"); je veux remplacer le "A2:A2" par char var[5]= "A2:A2" mais le problem c'est que classe DTS avec studio net [ par louis21 ] bonjours à tous,voila je suis stagiaire et confronter à une demande particuliereest il possible de lie un fichier excel avec une base de donnee sql ou automatisation excel avec visual c++ (liens hyperlinks) [ par mery08 ] Automation de Word avec les MFC [ par vieira_alice ] Bonjour, j'essaie de faire un petit programme permettant de compléter un fichier .doc via la technologie OLE Automation de Word. J'arrive à ouvrir l [Excel et ???] Lire les données d'un fichier .xls (excel) sur un programme indépendant [ par Kevin_fr75 ] Bonjour à tous, En fait je me demanderais comment faire pour que, sur un programme dédié (en plein écran, c'est pour un affichage sur rétroprojecteur MFC convertir un fichier Excel en TXT!!! [ par freepouy18 ] Bonjour a tous, j'utilise les MFC sous VC++ 6 et j'aimerai convertir un fichier Excel en fichier TXT. Cela fonctionne avec WORD ver TXT mais les metho DLL OLEAUT32 comment ça marche? [ par julienbad ] Bonjour à tous!Voila j'ai un problème avec l'utilisation d'un Variant .En fait je doit utiliser une dll activeX écrite en VB avec un programme écrit s doc Excel 97 [ par Tytoo25 ] bonjour à tous, voila je suis débutant sur Excel et je dois réaliser une communication DDE entre Excel 97 et MonsterDDE. Je sais que pour lire une va prgm enVc++:recueil de mesures ,par le port série, dans un tableau Excel et création d'un graphe relatif a ces données [ par cyrilinfohelp ] Bonjour,je fais appel a des craks car j'ai d'énormes difficultés a programmer en Vc++ dans le cadre de mon stage en électronique:     _ j'ai fais un Automation : dessiner un graphe dans excel à partir d'une application MFC en VC7 [ par enilda ] Bonjour,Je voudrais créer un graphique dans une feuille excel à partir d'une</S


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,054 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales