Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Des soucis avec Excel sous Delphi [ Archives / J'AI BESOIN D'AIDE !!!! :O ] (Tykko)

mercredi 18 mai 2005 à 14:42:34 | Des soucis avec Excel sous Delphi

Tykko

Bonjour à tous :)

Je dois réaliser une application en Delphi pour une entreprise et pour cela j'ai besoin de charger une feuille Excel servant en quelque sorte de "base de données".
J'ai lu avec attention (enfin essayé ) les divers messages déjà postés ici, mais je n'ai pas trouvé la solution à mon problème actuel

Je souhaite connaitre à l'avance le nombre de lignes de la première colonne de la feuille Excel pour adapter la taille d'un StringGrid au lancement de l'application.

Pour ça je cherche donc à sélectionner la premier colonne avec FeuilleTest.Range['A1',EmptyParam].EntireRow;
Ensuite ... bin c'est là tout le problème, je n'arrive pas à déterminer le nombre de cellules de cette colonne qui sont occupées par du texte sans avoir à faire un parcours entier avec une boucle et incrémentation d'une variable. Je trouve ça assez étonnant et il doit sans aucun doute me manquer LA propriété qui va bien

Merci d'avance

Tykko






jeudi 19 mai 2005 à 00:16:55 | Re : Des soucis avec Excel sous Delphi

WhiteHippo

Membre Club
Peut être en recherchant la première cellule vide avec une méthode Find.

En VBA cela doit ressembler à quelquechose comme ça :

  Dim ZoneRecherche, PremiereCelluleVide

   Set ZoneRecherche = Sheets("FeuilleTest").Range("A1:A1")
   Set PremiereCelluleVide = ZoneRecherche .Find("", ZoneRecherche.Cells(1, 1), xlValues, xlPart)

( y'a plu qu'à l'adapter à Delphi )

Cordialement.

jeudi 19 mai 2005 à 08:43:07 | Re : Des soucis avec Excel sous Delphi

Tykko

Warfeuh ... merci de la réponse, mais je veux justement éviter (si possible) de faire un parcours complet de la colonne jusqu'à trouver le premier élément vide.

Pis traduire du VBA en Delphi euh ...



jeudi 19 mai 2005 à 10:54:12 | Re : Des soucis avec Excel sous Delphi

moldov

Salut Tykko,

Je pense que c'est une bonne solution de rechercher la dernière cellule vide.
Si tu veux pas utiliser cette solution car tu pense que c'est une contrainte de temps (cela dépend de la longueur de ta colonne mais moi sinon je te donne le code delphi pour faire cela.

  OleApplication := CreateOleObject('Excel.Application'); // création du lien OLE
  OleWorkBook:=OleApplication.Workbooks.open(NomDeTonfichierExcel); // pour créer un  nouveau document
  Sheet := OleWorkBook.Sheets[NomDeTaFeuille];

  while string(Sheet.Cells[iCol,iRow].value) <> '' do
  begin
    Inc(iRow);
  end;
  // iRow Contient de nombre de cellule pleine
  OleApplication.Quit;
  OleApplication:=Unassigned;

Voila, regarde et teste

Bonne Prog


jeudi 19 mai 2005 à 11:56:09 | Re : Des soucis avec Excel sous Delphi

moldov

Réponse acceptée !
Salut,

J'ai oublier de te filer les déclarations des variables

OleApplication,  OleWorkBook, sheet : Variant;
iCol, iRow : Integer;

Bonne Prog


jeudi 19 mai 2005 à 12:29:28 | Re : Des soucis avec Excel sous Delphi

Tykko

Merci à toi moldov

En fait, en attendant vos réponses, je me suis penché sur un code d'un de mes collègues qui avait fait piloté Word depuis Delphi, et ... je suis arrivé au même code que ce que tu viens de donner
(à la différence près que j'utilise VarToStr() au lieu de string() )

Encore merci


jeudi 19 mai 2005 à 13:01:32 | Re : Des soucis avec Excel sous Delphi

WhiteHippo

Membre Club
Réponse acceptée !
Avec la méthode find cité plus haut, c'est Excel qui gèrait la boucle en interne. Moi je voyais le code comme suit :

  OleApplication := CreateOleObject('Excel.Application'); // création du lien OLE
  OleWorkBook:=OleApplication.Workbooks.open(NomDeTonfichierExcel);
  Sheet := OleWorkBook.Sheets[NomDeTaFeuille];

  MaSelection := Sheet.
range("A:A").Find("", range("A:A").Cells(1, 1), xlValues, xlPart)
  iRow := MaSelection.Cells(1,1).row

  OleApplication.Quit;
  OleApplication:=Unassigned;

N.B.  N'ayant pas d'excel sous la main, impossible de savoir si cela fonctionne.

Cordialement.

jeudi 19 mai 2005 à 13:57:12 | Re : Des soucis avec Excel sous Delphi

Tykko

ok, merci à toi aussi, je vais regarder ta méthode et je vous dirais quelle est la plus rapide

Une petite remarque sans grand rapport avec ma question : quelle que soit la taille de la feuille (1 ligne ou 5000 lignes), le temps de chargement en mémoire sous delphi est identique ... marrant




Cette discussion est classé dans : application, excel, colonne, delphi, soucis


Répondre à ce message

Sujets en rapport avec ce message

utiliser excel depuis delphi [ par manudel ] Depuis delphi, j'appelles Excel, et je veux pouvoir fermer la feuille excel, sans une demande de confirmation d'enregistrement. Access / SQL / Delphi [ par minipod ] Salut et merci !En fait, j'ai 2 RichEdit sur ma forme. Dans ma table 'dico' (base access) j'ai 2 colonnes. Je voudrai rentrer un mot dans le RichEdit1 comment lire un fichier dbf ? [ par jarv ] Bonjour !Je suis encore débutant en delphi et j'ai réalisé une petite application qui gére un fichier de donnée mais pas sous la forme d'une base de d comment lire un fichier dbf ? [ par jarv ] Bonjour !Je suis encore débutant en delphi et j'ai réalisé une petite application qui gére un fichier de donnée mais pas sous la forme d'une base de d diffusion Delphi Access [ par MDR ] J'ai réalisé une application sous Delphi V qui utilise une base de données ACCESS.L'application fonctionne correctement.Lorsque je la diffuse certains Traducteur Delphi please ! [ par minipod ] Un sympatique delphinaute m'a dit de faire ceci pour résoudre mon problème. Le problème c'est que je sais pas faire çà en Delphi. Est-ce que quelqu'un Devellopement d'application en Delphi [ par djemai ] Je me demande si Delphi offre la possibilité d'optimiserla taille de l'éxecutable d'une application en creant des DLLdynamique qui permettent de fract Curseur [ par MAsterC ] Bonjour!Delphiprog avait déja répondu a cette question au niveau des changements de curseurs pour Delphi!Regarder :Tu sauvegardes le curseur dans un f Overlay des unité dans Delphi [ par nc2ufr ] Bonjour à tous.Je me trouve confronter au problème suivant et je cherche désespérément une solution simple.Je travaille sur une application assez volu Supprimer ligne Excel depuis Delphi 7 [ par matthyeux ] Salut !Comment supprimer une ligne complète dans Excel (pas seulement la vider mais bien la supprimer pour tout décaler vers le haut dans Excel) depui


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,218 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.