IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[MFC/Excel] Cr�er un nouveau tableau et le remplir


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair� Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Par d�faut [MFC/Excel] Cr�er un nouveau tableau et le remplir
    Bonjour � tous,
    Je voudrais comment ouvrir et remplir un tableau Excel.
    J'arrive � ouvrir l'application Excel :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    CApplication spAppli;
    spAppli.CreateDispatch(_T("Excel.Application"));
    Mais je n'arrive pas � trouver de fonction du genre Add... ou New... ou Create..

    Je recup�re une collection de Worksheet et une collection de Workbook. Est-ce utile ?

    Merci de votre aide.

  2. #2
    Membre �clair� Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Par d�faut
    ReBonjour,
    Apparement gr�ce � l'application, on r�cup�re une collection de Workbooks, dans cette collection, on r�cup�re le Workbook courant, puis � partir du Workbook, on r�cup�re une collection de Worksheet, puis on r�cup�re le Worksheet courant et enfin on peut cr�er et remplir un tableau.
    Seulement mon code ne compile pas...
    Voici mon code :
    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
    CApplication spAppli; //Smart Pointer vers l'application Excel
    	CWorkbooks spWorkbooks;
    	CWorkbook spWorkbook;
    	CWorksheets spWorksheets;
    	CWorksheet spWorksheet;
     
    	VARIANT vIndex;
    	vIndex.vt = VT_INT;
    	vIndex.intVal = 1;
     
    	//Ouverture de l'application Excel
    	spAppli.CreateDispatch(_T("Excel.Application"));
    	AfxMessageBox(_T("Application Excel ouverte"));
     
    	//On récupère le Workbook courant dans la collection de Workbook de l'application
    	spWorkbooks = spAppli.get_Workbooks();
    	spWorkbook = spWorkbooks.get_Item(vIndex);
    	AfxMessageBox(_T("On a le Workbook"));
     
     
    	//On récupère le worksheet courant dans la collection de worksheets du workbook
    	spWorksheets = spWorkbook.get_Worksheets();
    	spWorksheet = spWorksheets.get_Item(vIndex);
    	AfxMessageBox(_T("On a le Worksheet"));

  3. #3
    Membre �clair� Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Par d�faut
    Alors j'ai trouv� ceci :
    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
    CApplication spAppli; //Smart Pointer vers l'application Excel
    	CWorkbook ActiveWorkbook;
    	CWorksheet ActiveWorksheet;
     
    	VARIANT vIndex;
    	vIndex.vt = VT_INT;
    	vIndex.intVal = 1;
     
    	//Ouverture de l'application Excel
    	spAppli.CreateDispatch(_T("Excel.Application"));
    	AfxMessageBox(_T("Application Excel ouverte"));
     
    	//On récupère le Workbook courant dans la collection de Workbook de l'application
    	ActiveWorkbook = spAppli.get_ActiveWorkbook();
    	AfxMessageBox(_T("On a le Workbook"));
     
     
    	//On récupère le worksheet courant dans la collection de worksheets du workbook
    	ActiveWorksheet = spAppli.get_ActiveSheet();
    	AfxMessageBox(_T("On a le Worksheet"));
    Apparement cela fonctionne..
    Du coup est-il n�cessaire de r�cup�rer le Workbook courant ? (Si on ne rajoute pas de feuille suppl�mentatire ?)

  4. #4
    Membre �clair� Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Par d�faut
    J'ai quelque peu avanc� voici ou j'en suit :
    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
    CApplication spAppli;        
    	CWorkbooks spWorkbooks;		 
    	CWorksheet ActiveWorksheet;  
    	CRange spRange;              
     
    	VARIANT vAdd, vRange;
    	vAdd.vt = VT_INT;
    	vAdd.intVal = 1;
    	vRange.vt = VT_BSTR; 
     
    	//Ouverture de l'application Excel
    	spAppli.CreateDispatch(_T("Excel.Application"));
    	spAppli.put_Visible(TRUE);
    	AfxMessageBox(_T("Application Excel ouverte"));
     
    	//On récupère la collection de classeur de l'appli en cours et on en ajoute un nouveau
    	spWorkbooks = spAppli.get_Workbooks();
    	spWorkbooks.Add(vAdd);
     
    	//On récupère la feuille de calcul active
    	ActiveWorksheet = spAppli.get_ActiveSheet();
     
    	//On récupère les cellules que l'on veut modifier
    	ActiveWorksheet.get_Range(vRange);
     
     
    	spAppli.Quit();
    Mon probl�me est que je ne peux convertir un const char * en BSTR donc je ne peux pas passer d'argument � la fonction get_Range..
    Merci.

  5. #5
    Membre �clair� Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Par d�faut
    Voila la solution que j'ai trouv�e :
    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
    CApplication spAppli;        //Smart Pointer vers l'application Excel
    	CWorkbooks spWorkbooks;		 //Collection de classeur
    	CWorksheet ActiveWorksheet;  //Feuille de calcul Active
    	CRange spRange;              //Bloc de cellule
    	CString sCell;
     
    	COleVariant vMissing(DISP_E_PARAMNOTFOUND, VT_ERROR); //Evite les paramètres optionnels des fonctions
     
    	VARIANT vAdd, vCell1, vCell2;
    	vAdd.vt = VT_INT;
    	vAdd.intVal = 1;
    	vCell1.vt = VT_BSTR;
    	sCell = CString("A1");
    	vCell1.bstrVal = sCell.AllocSysString();
     
     
     
    	//Ouverture de l'application Excel
    	spAppli.CreateDispatch(_T("Excel.Application"));
    	spAppli.put_Visible(TRUE);
    	AfxMessageBox(_T("Application Excel ouverte"));
     
    	//On récupère la collection de classeur de l'appli en cours et on en ajoute un nouveau
    	spWorkbooks = spAppli.get_Workbooks();
    	spWorkbooks.Add(vAdd);
     
    	//On récupère la feuille de calcul active
    	ActiveWorksheet = spAppli.get_ActiveSheet();
     
    	//On récupère les cellules que l'on veut modifier
    	spRange = ActiveWorksheet.get_Range(vCell1, vMissing);
    	spRange.put_Value(vMissing, vAdd);
    Premier Topic que je r�soud tout seul o_O

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. vba - coller range excel dans un nouveau tableau ppt
    Par tiber33 dans le forum Macros et VBA Excel
    R�ponses: 0
    Dernier message: 05/02/2014, 17h36
  2. [XL-2007] [D�butant] Cr�er un nouveau classeur � partir d'une ligne d'un tableau
    Par DerJul dans le forum Macros et VBA Excel
    R�ponses: 31
    Dernier message: 04/07/2011, 14h53
  3. [XL-2003] Cr�er un nouveaux tableau excel..
    Par visto94 dans le forum Macros et VBA Excel
    R�ponses: 3
    Dernier message: 26/07/2010, 13h12
  4. R�ponses: 23
    Dernier message: 17/05/2006, 16h35
  5. [Excel] Cr�er un tableau � partir d'un autre
    Par Ouguiya dans le forum Excel
    R�ponses: 3
    Dernier message: 30/03/2006, 10h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo