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

API, COM et SDKs Delphi Discussion :

Delphi, Excel : manipulation de plages de cellules


Sujet :

API, COM et SDKs Delphi

Vue hybride

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

    Homme Profil pro
    Directeur comptable
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Directeur comptable
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut Delphi, Excel : manipulation de plages de cellules
    Bonsoir,

    J'ai écrit cette ligne en VBA :

    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    .Cells(cptLigne, NumColCREE).Value = "=SUM(" & Range(Cells(cptLigne, NumColCREEprem), Cells(cptLigne, NumColCREE - 1)).Address(False, False) & ")"
    Je souhaiterais la convertir sous DELPHI :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuille.cells[cptLigne, NumColCREE].value := '=SUM(' + Range[Cells[cptLigne, NumColCREEprem], Cells[cptLigne, NumColCREE - 1]].Address(False, False)+')';
    Mais je bute sur Range, DELPHI me renvoie :

    [Erreur] Unit1.pas(2605): E2003 Identificateur non déclaré : 'Range'
    Merci d'avance de votre réponse,

    Bonne soirée,

    Benoît RIVIERE

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 924
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 924
    Par défaut
    Excel, c'est du VB, pas du Pascal. C'est de plus une ligne interprétée et non compilée. Il n'y a aucune raison de la traduire.

    Bref, brut de fonderie :

    Feuille.cells[cptLigne, NumColCREE].value := '"=SUM(" & Range(Cells(' +IntToStr(cptLigne) +', NumColCREEprem), Cells('+ IntToStr(cptLigne) +',' +IntToStr(NumColCREE - 1) +')).Address(False, False) & ")"';

  3. #3
    Membre averti

    Homme Profil pro
    Directeur comptable
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Directeur comptable
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut
    Merci pour la réponse mais cela ne fonctionne pas : les fonctions Range et Cells ne sont pas interprétées par Excel... Je galère vraiment pour trouver une solution à mon problème, Google ne m'est d'aucun secours !

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 924
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 924
    Par défaut
    En partant du principe que cptLigne est un caractère:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuille.cells[cptLigne, NumColCREE].value := '=SOMME(' +cptLigne +IntToStr(NumColCREEprem) +':' +cptLigne +IntToStr(NumColCREE -1) +')';
    C'est du côté Excel qu'il faut voir ce qu'acceptent les cellules et comment sont renseignées les fonctions !

  5. #5
    Membre averti

    Homme Profil pro
    Directeur comptable
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Directeur comptable
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut
    cptLigne et numColCREE sont des variables integer de deux boucles For... to.

    J'aurais donc voulu éviter de transformer ma variable de colonne en caractères... Au pire en l'absence de réponse, je créerai une fonction pour convertir. J'aurais préféré passer par un Range(Cells(),Cells()) comme en VBA...

  6. #6
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 924
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 924
    Par défaut
    Ce qu'il faut comprendre est que VBA est du Visual Basic modifié pour répondre aux besoins spécifiques d'une application, en l’occurrence ici : Excel. Tu n'auras pas les mêmes possibilités avec Delphi !

Discussions similaires

  1. Trier une plage de cellules
    Par Squelet dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 03/12/2019, 13h04
  2. [XL-2010] Comment manipuler une plage de cellules cachées par un Autofiltre ?
    Par stargates01 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 08/03/2014, 20h03
  3. [Toutes versions] VBA Excel Récuperer la plage des cellules d'un TCD
    Par Alaedjens dans le forum Excel
    Réponses: 1
    Dernier message: 20/01/2014, 15h36
  4. Excel, agrandir une plage de cellules sur la droite.
    Par Ldoppea dans le forum C++Builder
    Réponses: 9
    Dernier message: 12/11/2008, 17h52
  5. [VBA-E] [Excel] Protection d'une plage de cellules
    Par fikou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/11/2002, 11h28

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