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

Visual C++ Discussion :

Automation Excel/VC++ comment supprimer 1 colonne?


Sujet :

Visual C++

  1. #1
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 9
    Par défaut Automation Excel/VC++ comment supprimer 1 colonne?
    Bonjour,

    Je sais ouvri une feuille excel et ecrire dans les cellules, mais je ne sais pas comment supprimer une colonne ? dans les classes Wrappers de EXcel il n'ya pas les classe "Row" "Columns" "Cells" "Cell" mais elles sont dans celle de Word, alors je me demandais si on pouvait les utiliser dans excel?

    /******************Mes question sur Excel*******************/

    1) Supprimer une colonne?
    2) Supprimer plusieurs Colonnes (selection multiple) ?
    3)inserer une ligne
    4)Utiliser la methode insertfile() de l'objet range : par exemple ouvrir un autre fichier excel, selectionner une plage et la mettre dans une autre feuille excel

    Même si vous avez q'une seul réponse sur les 4 je suis preneurs !

    Voici un exemple de code, Merci d'avance à ceux qui prennent le temps de me répondre!
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    /********************************************************/
     
    CWorsheet MaFeuille;
    CRange MaPlageExcel;
    CColumn MaColonne;  // pris dans l objet Word ???
    /*
     
    //Pour faire ça j'ai envie de me placer dans  la cellule B3, 
    //de selectionner sa colonne puis utiliser une fonction delete avec en parametre 1 pour lui dire qu'il s'agit d'un décalage vers la gauche
     
      lpDisp=MaFeuille.get_Range(COleVariant("B3"),COleVariant("B3")); 
      ASSERT(lpDisp);    
      MaPlageExcel.AttachDispatch(lpDisp); // a partir d'ici j ai mon objet range sur la cellule B3
      
      lpDisp=MaPlageExcel.get_EntireColumn();
      ASSERT(lpDisp);    
     MaColonne.AttachDispatch(lpDisp);
     
     MaColonne.Delete(); // ERREUR MEMBRE INTROUVABLE EN fait je me demande bien si 
     //je peux utiliser l'objet colonne d'un classe wrapper WORD, si c'est non, comment 
     //ça se fait qu'on ne l a pas dans excel ???
    */
     
     
     
     
     
     //2) (selection multiple et suppression)Comment je peux supprimer la colonne B3 et D3  DECALGE DES COLONNES VERS LA GAUCHE
     
     
     
    /*
     
    // Ma selction n est pas bonne car je prende de A3 a C3 alors que je veux A3 ET C3 ??
     lpDisp=MaFeuille.get_Range(COleVariant("A3:C3"),COleVariant("C3")); 
      ASSERT(lpDisp);    
      MaPlageExcel.AttachDispatch(lpDisp); // a partir d'ici j ai mon objet range sur la cellule B3
     
     
     MaPlageExcel.Select();
     
     MaPlageExcel.Delete(COleVariant((short)1)); //1 pour decalage a droite
     
    //ça supprime mes mes pas tout la colonne
    Sur ce je vous souhaite une bonne journée et vive l'automation d'excel avec vc++!!!

    Merci beaucoup!
    pense à mettre la balise code, Merci Farscape
    Fichiers attachés Fichiers attachés

  2. #2
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 9
    Par défaut solution pour supprimer 1 colonne
    Bonjour

    J'ai trouvé comment supprimer une colonne, en fait d'aprés le code de la macro enregistré pour faire cela, on utilise un objet selection, or l'abjet selection ne fait pas parti des classes wrappers de excel ainsi que ROWS,COLUMNS....

    Donc j'ai essayé un truc simple qui fonction

    //CRange MaPlageExcel;
    //CWorkSheet MaFeuille;

    ................

    //je me place sur une cellule de la colonne concerné soit la cellule B3
    lpDisp=MaFeuille.get_Range(COleVariant("B3"),COleVariant("B3"));
    ASSERT(lpDisp);
    MaPlageExcel.AttachDispatch(lpDisp); // a partir d'ici j ai mon objet range sur la cellule B3


    // je met maintenant dans ma plage la colonne entiere
    lpDisp=MaPlageExcel.get_EntireColumn();
    ASSERT(lpDisp);
    MaPlageExcel.AttachDispatch(lpDisp);

    //je supprime ma colonne
    MaPlageExcel.Delete(COleVariant(short(1)));


    Tout simplement!

    Si ça peut intéréssé quelqu'un !

  3. #3
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    Salut et merci d'avoir proposé une solution

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. EXCEL 2013 : Comment supprimer des sauts de page
    Par titwawa dans le forum VB.NET
    Réponses: 0
    Dernier message: 24/07/2014, 11h16
  2. REP env - comment supprimer une colonne sur ASE primaire?
    Par vinceroi dans le forum Réplications
    Réponses: 3
    Dernier message: 18/01/2012, 19h47
  3. Réponses: 9
    Dernier message: 17/02/2009, 18h48
  4. [excel]comment supprimer une colonne vide...
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/10/2005, 13h10
  5. automation excel : comment indiquer la feuille de travail ?
    Par mat_lefebvre dans le forum Access
    Réponses: 2
    Dernier message: 04/12/2003, 15h14

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