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

Langage Delphi Discussion :

Copier derniere colonne d'un grid sur excel


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de EssaiEncore
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Par défaut Copier derniere colonne d'un grid sur excel
    Bonjour

    Je dispose d'un ExDBGrid contenant 5 colonnes, je voudrais faire passer la derniere colonne dans une feuille excel a la colonne D.
    J'ai utilisé le composant JvDBGridExcelExport mais celui me retourne que mes 4 premieres colonne car la 5eme colonne est calculé par une autre requete.

    Donc arrivant a faire afficher mes 4 premiere colonne sur excel, je voudrais faire afficher ma 5eme colonne via un bout de code a coté des autre colonne sur Excel

    J'ai essayé : Je passe par la requete, mais si on peut passer par la 5eme colonne du grid ca me va aussi !!!
    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
     
    Var
      MonClasseur : Variant;
      MaFeuille : Variant;
      Nombre, i,indice  : integer;
      Resultat : variant;
    begin
    JvDBGridExcelExport_mob.ExportGrid;
     
      with  DataModule_Base.Query_Temp do
        begin
          Sql.Clear;
          Sql.add('SELECT * FROM DOSSIER');
          Sql.add('WHERE NUM_CC='+ DataModule_Base.Query_DemandeMob.FieldByName('NUMCC').AsString);
          Open;
        end;
        Text := DataModule_Base.Query_Temp.FieldByName('ADR_1').asString + ' ' + DataModule_Base.Query_Temp.FieldByName('ADR_5').asString;
      Nombre := DataModule_Base.Query_Temp.RecordCount;
     
    for i := 1 to Nombre do
    begin
     indice := i+1;
     Resultat := DataModule_Base.Query_Temp.fields[5].asstring;
    MaFeuille.Range['D2','D6'].value := Resultat;
    end;
     
    ShellExecute(handle,'OPEN','C:\APP_HMY\PlanningDev\mob.xls', Nil, Nil, SW_SHOW);
    L'erreur qui je recoit est "Opération de variant incorrect" sur la ligne avant le SHELLEXECUTE

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Par défaut
    Sans vouloir m'avancer, c'est pas mieux comme cela ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaFeuille.Range['D2','D6'].value := DataModule_Base.Query_Temp.fields[5].asstring;

  3. #3
    Membre confirmé Avatar de EssaiEncore
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Par défaut
    Non, je suis passer par une variable intermediaire pour voir ou etait mon erreur et cela se produit sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaFeuille.Range['D2','D6'].value := Resultat;
    merci a toi

  4. #4
    Membre confirmé Avatar de EssaiEncore
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Par défaut
    Personne a une idee pour copier une colonne d'un grid vers excel ??

    je viens d'essayer cela, mais toujours erreur de variant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    JvDBGridExcelExport_mob.ExportGrid;
     
    MaFeuille.Range['D2','D6'].value := DataModule_Base.Query_DemandeMob.FieldByName('CLIENT').Text;
    end;
     
    ShellExecute(handle,'OPEN','C:\APP_HMY\PlanningDev\mob.xls', Nil, Nil, SW_SHOW);
    Merci d'avance

  5. #5
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 704
    Par défaut
    La syntaxe, c'est pas avec ":" ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaFeuille.Range['D2:D6'].value :=
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  6. #6
    Membre confirmé Avatar de EssaiEncore
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Par défaut
    Merci pour ton aide...ca a du resoudre un de mes problemes ...
    malheureusement j'ai toujours une erreur me disant "Opération de variant incorrect"

  7. #7
    Membre confirmé Avatar de EssaiEncore
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Par défaut
    Apres verif dans la FAQ, la structure est bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaFeuille.Range['D2','D6'].value := DataModule_Base.Query_DemandeCaisse.FieldByName('CLIENT').Text;
    a+

  8. #8
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut

    on ne te conseillera jamais de prefere un while dans ton cas

    Col := 2;
    i := 1;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while not(Query_DemandeCaisse.eof) do
    begin
      MaFeuille.Range[Col,i].value := Query_DemandeCaisse.FieldByName('CLIENT').Text;
      inc(i); 
      Query_DemandeCaisse.next;
    end;
    cela t'evitera de depasser les bornes
    de plus les indice des cases de ecxel sont des valeurs numerique

    @+ Phil

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/02/2015, 16h05
  2. copier certaines colonnes d'une feuille Excel
    Par emeraudes dans le forum Access
    Réponses: 7
    Dernier message: 12/04/2006, 16h57
  3. [VBA-E]copier un lien hypertexte sur Excel
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/02/2006, 18h22
  4. [VBA-E]coordonnées de la derniere cellule marqué sur excel
    Par amelhog dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/02/2006, 19h39
  5. comparer deux colonnes sur Excel
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 21/12/2005, 10h50

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