avec Visual Studio, j'utilise les classes générées à partir de la librairie
Excel9.olb.
en particulier la class CWorksheets, qui m'offre l'interface Add, pour
ajouter une feuille dans mon fichier Excel
Est ce que quelqu'un aurais le mode d'emploi de cette interface, je n'arrive
pas à passer correctement mes paramètres pour créer une feuille comme étant
la derniere feuille de mon fichier.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Dominique Vaufreydaz
Bonjour,
Olivier NOËL wrote:
avec Visual Studio, j'utilise les classes générées à partir de la librairie Excel9.olb. en particulier la class CWorksheets, qui m'offre l'interface Add, pour ajouter une feuille dans mon fichier Excel Est ce que quelqu'un aurais le mode d'emploi de cette interface, je n'arrive pas à passer correctement mes paramètres pour créer une feuille comme étant la derniere feuille de mon fichier.
J'ai pas regardé en détails, mais j'ai trouvé un pompage d'une KB microsoft ici http://www.kbalertz.com/kb_Q308407.aspx
Tu devrais pouvoir partir de ca.
Doms.
Bonjour,
Olivier NOËL wrote:
avec Visual Studio, j'utilise les classes générées à partir de la
librairie Excel9.olb.
en particulier la class CWorksheets, qui m'offre l'interface Add, pour
ajouter une feuille dans mon fichier Excel
Est ce que quelqu'un aurais le mode d'emploi de cette interface, je
n'arrive pas à passer correctement mes paramètres pour créer une
feuille comme étant la derniere feuille de mon fichier.
J'ai pas regardé en détails, mais j'ai trouvé un pompage d'une KB microsoft
ici http://www.kbalertz.com/kb_Q308407.aspx
avec Visual Studio, j'utilise les classes générées à partir de la librairie Excel9.olb. en particulier la class CWorksheets, qui m'offre l'interface Add, pour ajouter une feuille dans mon fichier Excel Est ce que quelqu'un aurais le mode d'emploi de cette interface, je n'arrive pas à passer correctement mes paramètres pour créer une feuille comme étant la derniere feuille de mon fichier.
J'ai pas regardé en détails, mais j'ai trouvé un pompage d'une KB microsoft ici http://www.kbalertz.com/kb_Q308407.aspx
Tu devrais pouvoir partir de ca.
Doms.
Olivier NOËL
Merci, Il s'agit effectivement d'une copie d'un KB microsoft que j'avais deja parcouru. malheureusement pour moi, il n'est pas expliqué comment faire pour ajouter un supprimer un sheet. j'ai le code suivant :
quelque soit les parametres que je passe à la méthode add pour BEFORE, AFTER, COUNT et TYPE, je recupere une exception. est ce que c'est le TYPE qui est bien particulier, et que je ne trouve pas, est ce que BEFORE, AFTER, COUNT ne sont pas des entiers passés en VARIANT ???
je ne trouve pas, je desespere (heu .. non, pas à ce point la, c'est pour le boulot quand meme ;-))
D'avance merci
"Dominique Vaufreydaz" a écrit dans le message de news:d6c2jq$5du$
Bonjour,
Olivier NOËL wrote: > avec Visual Studio, j'utilise les classes générées à partir de la > librairie Excel9.olb. > en particulier la class CWorksheets, qui m'offre l'interface Add, pour > ajouter une feuille dans mon fichier Excel > Est ce que quelqu'un aurais le mode d'emploi de cette interface, je > n'arrive pas à passer correctement mes paramètres pour créer une > feuille comme étant la derniere feuille de mon fichier.
J'ai pas regardé en détails, mais j'ai trouvé un pompage d'une KB
microsoft
ici http://www.kbalertz.com/kb_Q308407.aspx
Tu devrais pouvoir partir de ca.
Doms.
Merci,
Il s'agit effectivement d'une copie d'un KB microsoft que j'avais deja
parcouru.
malheureusement pour moi, il n'est pas expliqué comment faire pour ajouter
un supprimer un sheet.
j'ai le code suivant :
quelque soit les parametres que je passe à la méthode add pour BEFORE,
AFTER, COUNT et TYPE, je recupere une exception.
est ce que c'est le TYPE qui est bien particulier, et que je ne trouve pas,
est ce que BEFORE, AFTER, COUNT ne sont pas des entiers passés en VARIANT
???
je ne trouve pas, je desespere (heu .. non, pas à ce point la, c'est pour le
boulot quand meme ;-))
D'avance merci
"Dominique Vaufreydaz" <Dominique-Doms.Vaufreydaz@imag.fr> a écrit dans le
message de news:d6c2jq$5du$1@trompette.imag.fr...
Bonjour,
Olivier NOËL wrote:
> avec Visual Studio, j'utilise les classes générées à partir de la
> librairie Excel9.olb.
> en particulier la class CWorksheets, qui m'offre l'interface Add, pour
> ajouter une feuille dans mon fichier Excel
> Est ce que quelqu'un aurais le mode d'emploi de cette interface, je
> n'arrive pas à passer correctement mes paramètres pour créer une
> feuille comme étant la derniere feuille de mon fichier.
J'ai pas regardé en détails, mais j'ai trouvé un pompage d'une KB
Merci, Il s'agit effectivement d'une copie d'un KB microsoft que j'avais deja parcouru. malheureusement pour moi, il n'est pas expliqué comment faire pour ajouter un supprimer un sheet. j'ai le code suivant :
quelque soit les parametres que je passe à la méthode add pour BEFORE, AFTER, COUNT et TYPE, je recupere une exception. est ce que c'est le TYPE qui est bien particulier, et que je ne trouve pas, est ce que BEFORE, AFTER, COUNT ne sont pas des entiers passés en VARIANT ???
je ne trouve pas, je desespere (heu .. non, pas à ce point la, c'est pour le boulot quand meme ;-))
D'avance merci
"Dominique Vaufreydaz" a écrit dans le message de news:d6c2jq$5du$
Bonjour,
Olivier NOËL wrote: > avec Visual Studio, j'utilise les classes générées à partir de la > librairie Excel9.olb. > en particulier la class CWorksheets, qui m'offre l'interface Add, pour > ajouter une feuille dans mon fichier Excel > Est ce que quelqu'un aurais le mode d'emploi de cette interface, je > n'arrive pas à passer correctement mes paramètres pour créer une > feuille comme étant la derniere feuille de mon fichier.
J'ai pas regardé en détails, mais j'ai trouvé un pompage d'une KB
microsoft
ici http://www.kbalertz.com/kb_Q308407.aspx
Tu devrais pouvoir partir de ca.
Doms.
Dominique Vaufreydaz
Bonjour,
CWorksheets sheets; CWorksheet sheet; sheet.attachDispatch(sheets.add(BEFORE, AFTER, COUNT, TYPE)); quelque soit les parametres que je passe à la méthode add pour BEFORE, AFTER, COUNT et TYPE, je recupere une exception. est ce que c'est le TYPE qui est bien particulier, et que je ne trouve pas, est ce que BEFORE, AFTER, COUNT ne sont pas des entiers passés en VARIANT ???
je ne trouve pas, je desespere (heu .. non, pas à ce point la, c'est pour le boulot quand meme ;-))
J'ai pas le temps d'essayer la, mais sheet, c'est 1 feuille ! Y'a pas un containner de feuille sou tu pourrais ajouter des sheets ! Ca me paraitait plus proche de la terminologie Excellienne...
Doms.
Bonjour,
CWorksheets sheets;
CWorksheet sheet;
sheet.attachDispatch(sheets.add(BEFORE, AFTER, COUNT, TYPE));
quelque soit les parametres que je passe à la méthode add pour BEFORE,
AFTER, COUNT et TYPE, je recupere une exception.
est ce que c'est le TYPE qui est bien particulier, et que je ne
trouve pas, est ce que BEFORE, AFTER, COUNT ne sont pas des entiers
passés en VARIANT ???
je ne trouve pas, je desespere (heu .. non, pas à ce point la, c'est
pour le boulot quand meme ;-))
J'ai pas le temps d'essayer la, mais sheet, c'est 1 feuille ! Y'a pas un containner
de feuille sou tu pourrais ajouter des sheets ! Ca me paraitait plus proche de
la terminologie Excellienne...
CWorksheets sheets; CWorksheet sheet; sheet.attachDispatch(sheets.add(BEFORE, AFTER, COUNT, TYPE)); quelque soit les parametres que je passe à la méthode add pour BEFORE, AFTER, COUNT et TYPE, je recupere une exception. est ce que c'est le TYPE qui est bien particulier, et que je ne trouve pas, est ce que BEFORE, AFTER, COUNT ne sont pas des entiers passés en VARIANT ???
je ne trouve pas, je desespere (heu .. non, pas à ce point la, c'est pour le boulot quand meme ;-))
J'ai pas le temps d'essayer la, mais sheet, c'est 1 feuille ! Y'a pas un containner de feuille sou tu pourrais ajouter des sheets ! Ca me paraitait plus proche de la terminologie Excellienne...
Doms.
Olivier NOËL
ben si, CWorksheets (avec un S) qui est un container de feuille, qui possede une méthode Add pour ajouter une feuille, qui retourne un LPDISPATCH, auquel tu attache ta feuille, le problème étant que je ne trouve aucune documentation sur les parametres de la méthode Add et que quelque soit les parametres que j'ai pu fournir à cette méthode, une exception est soulevée...
"Dominique Vaufreydaz" a écrit dans le message de news:d6h6mc$cpk$
Bonjour,
> CWorksheets sheets; > CWorksheet sheet; > sheet.attachDispatch(sheets.add(BEFORE, AFTER, COUNT, TYPE)); > quelque soit les parametres que je passe à la méthode add pour BEFORE, > AFTER, COUNT et TYPE, je recupere une exception. > est ce que c'est le TYPE qui est bien particulier, et que je ne > trouve pas, est ce que BEFORE, AFTER, COUNT ne sont pas des entiers > passés en VARIANT ??? > > je ne trouve pas, je desespere (heu .. non, pas à ce point la, c'est > pour le boulot quand meme ;-))
J'ai pas le temps d'essayer la, mais sheet, c'est 1 feuille ! Y'a pas
un containner
de feuille sou tu pourrais ajouter des sheets ! Ca me paraitait plus
proche de
la terminologie Excellienne...
Doms.
ben si, CWorksheets (avec un S) qui est un container de feuille, qui possede
une méthode Add pour ajouter une feuille,
qui retourne un LPDISPATCH, auquel tu attache ta feuille,
le problème étant que je ne trouve aucune documentation sur les parametres
de la méthode Add
et que quelque soit les parametres que j'ai pu fournir à cette méthode, une
exception est soulevée...
"Dominique Vaufreydaz" <Dominique-Doms.Vaufreydaz@imag.fr> a écrit dans le
message de news:d6h6mc$cpk$1@trompette.imag.fr...
Bonjour,
> CWorksheets sheets;
> CWorksheet sheet;
> sheet.attachDispatch(sheets.add(BEFORE, AFTER, COUNT, TYPE));
> quelque soit les parametres que je passe à la méthode add pour BEFORE,
> AFTER, COUNT et TYPE, je recupere une exception.
> est ce que c'est le TYPE qui est bien particulier, et que je ne
> trouve pas, est ce que BEFORE, AFTER, COUNT ne sont pas des entiers
> passés en VARIANT ???
>
> je ne trouve pas, je desespere (heu .. non, pas à ce point la, c'est
> pour le boulot quand meme ;-))
J'ai pas le temps d'essayer la, mais sheet, c'est 1 feuille ! Y'a pas
un containner
de feuille sou tu pourrais ajouter des sheets ! Ca me paraitait plus
ben si, CWorksheets (avec un S) qui est un container de feuille, qui possede une méthode Add pour ajouter une feuille, qui retourne un LPDISPATCH, auquel tu attache ta feuille, le problème étant que je ne trouve aucune documentation sur les parametres de la méthode Add et que quelque soit les parametres que j'ai pu fournir à cette méthode, une exception est soulevée...
"Dominique Vaufreydaz" a écrit dans le message de news:d6h6mc$cpk$
Bonjour,
> CWorksheets sheets; > CWorksheet sheet; > sheet.attachDispatch(sheets.add(BEFORE, AFTER, COUNT, TYPE)); > quelque soit les parametres que je passe à la méthode add pour BEFORE, > AFTER, COUNT et TYPE, je recupere une exception. > est ce que c'est le TYPE qui est bien particulier, et que je ne > trouve pas, est ce que BEFORE, AFTER, COUNT ne sont pas des entiers > passés en VARIANT ??? > > je ne trouve pas, je desespere (heu .. non, pas à ce point la, c'est > pour le boulot quand meme ;-))
J'ai pas le temps d'essayer la, mais sheet, c'est 1 feuille ! Y'a pas
un containner
de feuille sou tu pourrais ajouter des sheets ! Ca me paraitait plus
proche de
la terminologie Excellienne...
Doms.
Christian
Bonjour
Tu trouveras toutes les informations voulues dans la doc pour Visual Basic. Certaines règles simples te permettront d'adapter la doc en C++ (LDISPATCH qui est le pendant interne de la "dot notation" du VB, la notion de VARIANT, etc.)
Choisis dans le menu de gauche ta version d'excel. Regarde "Microsoft Excel Objects", tu cliques sur les objets puis tu arrive sur "methodes", "properties", etc. Tu trouveras à "Add Method (Worksheets Collection)" le paramètre type doit être "XlSheetType constants: xlWorksheet, xlExcel4MacroSheet, or xlExcel4IntlMacroSheet. The default value is xlWorksheet"
Pour avoir la valeur de ces paramètres, tu peux regarder les info de types avec OLE COM Viewer sur "Type Library" / "Microsoft Excel 9 Object Library" :
typedef enum {
xlChart = -4109,
xlDialogSheet = -4116,
xlExcel4IntlMacroSheet = 4,
xlExcel4MacroSheet = 3,
xlWorksheet = -4167
} XlSheetType;
En VB tout cela est automatique.
Olivier NOËL wrote:
avec Visual Studio, j'utilise les classes générées à partir de la librairie Excel9.olb. en particulier la class CWorksheets, qui m'offre l'interface Add, pour ajouter une feuille dans mon fichier Excel Est ce que quelqu'un aurais le mode d'emploi de cette interface, je n'arrive pas à passer correctement mes paramètres pour créer une feuille comme étant la derniere feuille de mon fichier.
Bonjour
Tu trouveras toutes les informations voulues dans la doc pour Visual Basic.
Certaines règles simples te permettront d'adapter la doc en C++ (LDISPATCH
qui est le pendant interne de la "dot notation" du VB, la notion de VARIANT,
etc.)
Choisis dans le menu de gauche ta version d'excel. Regarde "Microsoft Excel
Objects", tu cliques sur les objets puis tu arrive sur "methodes",
"properties", etc. Tu trouveras à "Add Method (Worksheets Collection)" le
paramètre type doit être "XlSheetType constants: xlWorksheet,
xlExcel4MacroSheet, or xlExcel4IntlMacroSheet. The default value is
xlWorksheet"
Pour avoir la valeur de ces paramètres, tu peux regarder les info de types
avec OLE COM Viewer sur "Type Library" / "Microsoft Excel 9 Object Library"
:
typedef enum {
xlChart = -4109,
xlDialogSheet = -4116,
xlExcel4IntlMacroSheet = 4,
xlExcel4MacroSheet = 3,
xlWorksheet = -4167
} XlSheetType;
En VB tout cela est automatique.
Olivier NOËL wrote:
avec Visual Studio, j'utilise les classes générées à partir de la
librairie Excel9.olb.
en particulier la class CWorksheets, qui m'offre l'interface Add, pour
ajouter une feuille dans mon fichier Excel
Est ce que quelqu'un aurais le mode d'emploi de cette interface, je
n'arrive pas à passer correctement mes paramètres pour créer une
feuille comme étant la derniere feuille de mon fichier.
Tu trouveras toutes les informations voulues dans la doc pour Visual Basic. Certaines règles simples te permettront d'adapter la doc en C++ (LDISPATCH qui est le pendant interne de la "dot notation" du VB, la notion de VARIANT, etc.)
Choisis dans le menu de gauche ta version d'excel. Regarde "Microsoft Excel Objects", tu cliques sur les objets puis tu arrive sur "methodes", "properties", etc. Tu trouveras à "Add Method (Worksheets Collection)" le paramètre type doit être "XlSheetType constants: xlWorksheet, xlExcel4MacroSheet, or xlExcel4IntlMacroSheet. The default value is xlWorksheet"
Pour avoir la valeur de ces paramètres, tu peux regarder les info de types avec OLE COM Viewer sur "Type Library" / "Microsoft Excel 9 Object Library" :
typedef enum {
xlChart = -4109,
xlDialogSheet = -4116,
xlExcel4IntlMacroSheet = 4,
xlExcel4MacroSheet = 3,
xlWorksheet = -4167
} XlSheetType;
En VB tout cela est automatique.
Olivier NOËL wrote:
avec Visual Studio, j'utilise les classes générées à partir de la librairie Excel9.olb. en particulier la class CWorksheets, qui m'offre l'interface Add, pour ajouter une feuille dans mon fichier Excel Est ce que quelqu'un aurais le mode d'emploi de cette interface, je n'arrive pas à passer correctement mes paramètres pour créer une feuille comme étant la derniere feuille de mon fichier.
Olivier NOËL
Super, En fait, ce qu'il me manquait, c'est la valeur du 4ieme parametre, le type. Encore merci
PS : je renonce definitivement à l'idée d'avoir de la doc en C++ ????
"Christian" a écrit dans le message de news:428ecfb5$0$6787$
Bonjour
Tu trouveras toutes les informations voulues dans la doc pour Visual
Basic.
Certaines règles simples te permettront d'adapter la doc en C++ (LDISPATCH qui est le pendant interne de la "dot notation" du VB, la notion de
Choisis dans le menu de gauche ta version d'excel. Regarde "Microsoft
Excel
Objects", tu cliques sur les objets puis tu arrive sur "methodes", "properties", etc. Tu trouveras à "Add Method (Worksheets Collection)" le paramètre type doit être "XlSheetType constants: xlWorksheet, xlExcel4MacroSheet, or xlExcel4IntlMacroSheet. The default value is xlWorksheet"
Pour avoir la valeur de ces paramètres, tu peux regarder les info de types avec OLE COM Viewer sur "Type Library" / "Microsoft Excel 9 Object
Library"
:
typedef enum {
xlChart = -4109,
xlDialogSheet = -4116,
xlExcel4IntlMacroSheet = 4,
xlExcel4MacroSheet = 3,
xlWorksheet = -4167
} XlSheetType;
En VB tout cela est automatique.
Olivier NOËL wrote: > avec Visual Studio, j'utilise les classes générées à partir de la > librairie Excel9.olb. > en particulier la class CWorksheets, qui m'offre l'interface Add, pour > ajouter une feuille dans mon fichier Excel > Est ce que quelqu'un aurais le mode d'emploi de cette interface, je > n'arrive pas à passer correctement mes paramètres pour créer une > feuille comme étant la derniere feuille de mon fichier.
Super,
En fait, ce qu'il me manquait, c'est la valeur du 4ieme parametre, le type.
Encore merci
PS : je renonce definitivement à l'idée d'avoir de la doc en C++ ????
"Christian" <christnw-a-virer@free.fr> a écrit dans le message de
news:428ecfb5$0$6787$626a14ce@news.free.fr...
Bonjour
Tu trouveras toutes les informations voulues dans la doc pour Visual
Basic.
Certaines règles simples te permettront d'adapter la doc en C++ (LDISPATCH
qui est le pendant interne de la "dot notation" du VB, la notion de
Choisis dans le menu de gauche ta version d'excel. Regarde "Microsoft
Excel
Objects", tu cliques sur les objets puis tu arrive sur "methodes",
"properties", etc. Tu trouveras à "Add Method (Worksheets Collection)" le
paramètre type doit être "XlSheetType constants: xlWorksheet,
xlExcel4MacroSheet, or xlExcel4IntlMacroSheet. The default value is
xlWorksheet"
Pour avoir la valeur de ces paramètres, tu peux regarder les info de types
avec OLE COM Viewer sur "Type Library" / "Microsoft Excel 9 Object
Library"
:
typedef enum {
xlChart = -4109,
xlDialogSheet = -4116,
xlExcel4IntlMacroSheet = 4,
xlExcel4MacroSheet = 3,
xlWorksheet = -4167
} XlSheetType;
En VB tout cela est automatique.
Olivier NOËL wrote:
> avec Visual Studio, j'utilise les classes générées à partir de la
> librairie Excel9.olb.
> en particulier la class CWorksheets, qui m'offre l'interface Add, pour
> ajouter une feuille dans mon fichier Excel
> Est ce que quelqu'un aurais le mode d'emploi de cette interface, je
> n'arrive pas à passer correctement mes paramètres pour créer une
> feuille comme étant la derniere feuille de mon fichier.
Choisis dans le menu de gauche ta version d'excel. Regarde "Microsoft
Excel
Objects", tu cliques sur les objets puis tu arrive sur "methodes", "properties", etc. Tu trouveras à "Add Method (Worksheets Collection)" le paramètre type doit être "XlSheetType constants: xlWorksheet, xlExcel4MacroSheet, or xlExcel4IntlMacroSheet. The default value is xlWorksheet"
Pour avoir la valeur de ces paramètres, tu peux regarder les info de types avec OLE COM Viewer sur "Type Library" / "Microsoft Excel 9 Object
Library"
:
typedef enum {
xlChart = -4109,
xlDialogSheet = -4116,
xlExcel4IntlMacroSheet = 4,
xlExcel4MacroSheet = 3,
xlWorksheet = -4167
} XlSheetType;
En VB tout cela est automatique.
Olivier NOËL wrote: > avec Visual Studio, j'utilise les classes générées à partir de la > librairie Excel9.olb. > en particulier la class CWorksheets, qui m'offre l'interface Add, pour > ajouter une feuille dans mon fichier Excel > Est ce que quelqu'un aurais le mode d'emploi de cette interface, je > n'arrive pas à passer correctement mes paramètres pour créer une > feuille comme étant la derniere feuille de mon fichier.
Christian
> PS : je renonce definitivement à l'idée d'avoir de la doc en C++ ????
Bonjour Olivier
Mais pas du tout ... car il t'en faudra ! La doc du VB ne que donne les spécifications des API d'automation d'Excel (ou tout autre appli programmable en VB).
Maintenant il te faut chercher sur http://www.microsoft.com des articles et exemples expliquant les mécanismes de l'automation, tout se fera pour toi en C++ à ce niveau.
Lance "automation excel sample" dans "recherche" sur le site microsoft.
Sinon, tu peux programmer directement sur les API, ou utiliser MFC qui encapsule pas mal et simplifie, ou utiliser ATL. VC6 offre ces choix.
il y a aussi l'option du compilateur "#import" à regarder, autre possibilité de tenier compte des "bibliothèque de types".
Bref il y a du travail :-)
> PS : je renonce definitivement à l'idée d'avoir de la doc en C++ ????
Bonjour Olivier
Mais pas du tout ... car il t'en faudra ! La doc du VB ne que donne les
spécifications des API d'automation d'Excel (ou tout autre appli
programmable en VB).
Maintenant il te faut chercher sur http://www.microsoft.com des articles et
exemples expliquant les mécanismes de l'automation, tout se fera pour toi en
C++ à ce niveau.
Lance "automation excel sample" dans "recherche" sur le site microsoft.
Sinon, tu peux programmer directement sur les API, ou utiliser MFC qui
encapsule pas mal et simplifie, ou utiliser ATL. VC6 offre ces choix.
il y a aussi l'option du compilateur "#import" à regarder, autre
possibilité de tenier compte des "bibliothèque de types".
> PS : je renonce definitivement à l'idée d'avoir de la doc en C++ ????
Bonjour Olivier
Mais pas du tout ... car il t'en faudra ! La doc du VB ne que donne les spécifications des API d'automation d'Excel (ou tout autre appli programmable en VB).
Maintenant il te faut chercher sur http://www.microsoft.com des articles et exemples expliquant les mécanismes de l'automation, tout se fera pour toi en C++ à ce niveau.
Lance "automation excel sample" dans "recherche" sur le site microsoft.
Sinon, tu peux programmer directement sur les API, ou utiliser MFC qui encapsule pas mal et simplifie, ou utiliser ATL. VC6 offre ces choix.
il y a aussi l'option du compilateur "#import" à regarder, autre possibilité de tenier compte des "bibliothèque de types".