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 :

Excel : comment ecrire sur axtiveX spreadsheet 11


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2002
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 216
    Par défaut Excel : comment ecrire sur axtiveX spreadsheet 11
    bonjour,
    (VC++ MFC 2010)
    après insertion d'un activeX microsoft office spreadsheet 11, creation de sa classe avec le Wizard etc, j'ai une belle feuille Excel intégré à ma SDIView, je peux ecrire manuellement dans les cellules mais comment accède t'on aux cellules par code, au formatage etc...
    je ne trouve aucun exemples qui traite de ce sujet...
    Avez vous quelques infos ?
    Merci à tous

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    Qu'est-ce qui manque dans le projet de base ?
    http://support.microsoft.com/kb/178781

  3. #3
    Membre confirmé

    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2002
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 216
    Par défaut
    OK, mais ça c'est pour de l'ecriture dans un fichier Excel directement (automation) mais moi je veux écrire dans le tableau Excel (ActiveX) qui est sur ma FormView, ecrire dans des cellules precises...

    Merci

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    WTF ?

    C'est quoi ça alors ? ->

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // Fill range A1 with "1/25/98", the settlement date.
          lpDisp = sheet.GetRange(COleVariant("A1"), COleVariant("A1"));
          ASSERT(lpDisp);
          range.AttachDispatch(lpDisp);
          range.SetValue(COleVariant("1/25/98")); // Excel 97 & Excel 2000
     
    range.SetValue2(COleVariant("1/25/98")); // Excel 2002 and Excel 2003
    Je ne comprend toujours pas votre problème.

  5. #5
    Membre confirmé

    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2002
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 216
    Par défaut
    Oui, j'ai compris qu'il fallait utiliser l' "automation" en parrallèle, l'activeX ne se suffit pas à lui seul, il fournit une classe Cspreadsheet qui permet un tas de manip mais qui ne permet pas d'ecrire dans les cellules directement (d'après ce que j'ai compris !)

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    Vous êtes à l'ouest.

    Vous mélangez tous.

    Excel est un Server COM/ActiveX, c'est à dire qu'l fournit des composants COM/ActiveX via le protocole binaire COM à n'importe quel programme le solicitant.

    Les composants ActiveX d'Excel sont dans Excel, même si vous pouvez les intégrer graphiquement dans votre IHM (via la fourniture par votre application d'objet COM site par exemple).

    L'Automation COM (et non DDE) n'est que l'utilisation de ces composants fournis par Excel pour faire des manipulations dans Excel.

    Si vous utilisez Excel, la grille qui s'affiche dans votre IHM est dans la mémoire d'Excel, pas dans celle de votre programme.

    Donc l'extrait de code donné modifie la grille en demandant à Excel de la modifiée, vu que c'est lui qui en est le seul propriétaire de la grille.

    Un composant COM/ActiveX n'est pas un contrôle système.

Discussions similaires

  1. Comment ecrire sur la meme ligne avec la commane ECHO
    Par juflata dans le forum Windows
    Réponses: 3
    Dernier message: 24/11/2015, 09h06
  2. Comment écrire sur une nouvelle ligne ?
    Par cobra85 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 20/08/2007, 11h23
  3. Comment écrire sur une ComcomboBox?
    Par vantoff dans le forum C++Builder
    Réponses: 5
    Dernier message: 11/07/2006, 06h24
  4. Réponses: 2
    Dernier message: 21/06/2006, 10h52
  5. Réponses: 10
    Dernier message: 28/10/2005, 16h41

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