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

  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.

  7. #7
    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, je commence à comprendre ; donc si je veux ecrire dans des cellules, il me faut utiliser "l'automation" comme vous le citez plus haut, n'est ce pas ?
    En fait ce serai bien si je pouvais trouver un petit exemple concret, mais je n'ai réussi à mettrer aucuns exemples.
    Merci

  8. #8
    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 toujours en train de chercher au mauvais endroit.

    L'Automation, c'est piloter les applications Office pour faire comme si quelqu'un travaillait avec.

    Vous pouvez vous servir des composants comme offertes par les applications Office pour faire cela.

    Mais vous pouvez aussi utiliser les composants COM / contrôles ActiveX offertes par ces applications pour faire votre propre IHM.

    Et la mécanique est identique. La différence, c'est que vous n'êtes pas obligé d'ouvrir et de sauvegarder des fichiers.

    Utilisez Excel, juste pour afficher une grille, c'est un peu "over kill".

  9. #9
    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, je comprend ; je voulais pouvoir y inscrire des valeurs et ensuite sauvegarder dans un fichier. Mais, c'est vrai, il y a peu être plus simple effectivement. L'activeX lui était d'une présentation excellente et pratique car en cliquant sur un simple bouton il nous crée un copier coller dans une feuille sous excel...

  10. #10
    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
    sauvegarder dans un fichier
    Si le fichier de sortie est au format Excel riche (pas un simple csv), l'utilisation de l'Automation est possible, si le traitement doit être fait sur une machine client. Mais dans ce cas, j'ai du mal à comprendre pourquoi ne pas faire une macro VBA ou un .xll ou un Add_Ins .NET à Excel plutôt que de l'intégré dans une application MFC.

    Pour faire votre manipulation avec l'ActiveX Excel, il faut une Excel installé sur chaque poste, c'est assez onéreux et peu pratique.

    Il y a un grand nombres d'acteurs sur le marché des composants grilles qui permettent d'avoir un niveau de fonctionnalité égales ou supérieurs à celles d'Excel pour des entrés sous forme de grille.
    Vous disposez même de version gratuite ou bridées.

  11. #11
    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
    c'est exact, l'utilisation d'un simple grid dans l'interface est aussi simple dans mon cas puisque c'est ce que j'ai fait avec export vers Excel mais je voulais par ce biais essayer les possibilités qu'offre cet ActiveX en vue de l'exploiter éventuellement plus tard.

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