Débutante en rade ...

Résolu
bakik Messages postés 15 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 21 janvier 2005 - 15 déc. 2004 à 16:12
cs_valval Messages postés 13 Date d'inscription mercredi 20 octobre 2004 Statut Membre Dernière intervention 1 janvier 2005 - 17 déc. 2004 à 14:20
Bonjour à tous,

La gpetite débutante que je suis s'ets lancée dans un projet et je suis en rade complète.

Voila le topo :

J'ai d'un côté un fichier excel avec différentes colones A B et C et un paquet de lignes.

Dans ma Form j'ai 4 ComboBox et ce que je souhaite faire c'est que mon prog garde en mémoire les choix des ComboBox (enfin çà je sais le faire), ouvre excel et lance une recherche avec les critères choisis dans les combobox pour me retourner le contenu d'une cellule (et çà je sais pas faire).

Chais pas si c'est très clair, mais ce que je ne parviens pas à faire c'est : lui demander d'ouvrir excel, de lancer la recherche des choix des combobox et de me retourner le contenu de la cellule correspondante...

J'ai trouvé + ou - des explications mais je ne m'en sors pas du tout donc un peu d'aide serait la bienvenue :)

Merci

11 réponses

jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
16 déc. 2004 à 09:46
Si biensure c'est possible. Perso je connais pas les commandes Ole pour faire un filtre dans excel.
Alors pour avoir les commandes ole tu dois avoir le code visual basic excel de ce que tu veux faire puis l'adapter en ole sous Delphi.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
3
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
15 déc. 2004 à 17:17
Alors allons y par étape sais tu deja ouvrir excel par ole depuis delphi?

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
15 déc. 2004 à 17:32
Si tu ne sais pas faire une connecion ole regarde deja ces liens :
http://www.phidels.com/php/index.php3?page=../php/pagetelechargementzip.php3&id=438
http://www.phidels.com/php/index.php3?page=../php/pagetelechargementzip.php3&id=444

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
bakik Messages postés 15 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 21 janvier 2005
15 déc. 2004 à 19:08
Vi, pour ouvrir Excel c'est bon, c'est après que çà se complique méchamment :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
16 déc. 2004 à 08:46
Est ce que le fichier excel que tu ouvres est toujours le meme? Ou sinon y en a t'il plusieurs?

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
bakik Messages postés 15 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 21 janvier 2005
16 déc. 2004 à 09:27
Oui, c'est toujours le même !
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
16 déc. 2004 à 09:33
Dans ce cas la le plus simple c'est de faire une macro en visual basic dans ton fichier excel puis ensuite quand tu fais ta connection ole avec le fichier excel tu lances ta macro et hop le tour est joué.
Pour info pour lancer une macro la commande est la suivante :
OleApplication.Run('Start'); {Avec "Start" le nom de ta macro}

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
bakik Messages postés 15 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 21 janvier 2005
16 déc. 2004 à 09:42
et en delphi c'est pas possible ?

C'est pas que je ne trouve pas ta réponse bien (au contraire) mais quitte à faire du dév en delphi autant tout faire si c'est possible :)
0
bakik Messages postés 15 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 21 janvier 2005
16 déc. 2004 à 10:20
ok, ben je vais essayer comme çà.

Je te remercie beaucoup, beaucoup :))
0
cs_valval Messages postés 13 Date d'inscription mercredi 20 octobre 2004 Statut Membre Dernière intervention 1 janvier 2005 1
17 déc. 2004 à 14:00
Salut à toi!

Pour récupérer le contenu d'une cellule, tu peux utiliser les méthodes getvalue et getcellbyposition.

getvalue: récupère la valeur d'une cellule
getbyposition: permet d'accéder à une cellule

var feuilleclass, classeur, valeur:variant;
colonne,ligne:word;
begin
// on lance Excel tout en ouvrant le classeur "c:\fichier.xls"
classeur:=excelapplication1.workbooks.open('c:\fichier.xls',
false, false, emptyparam, emptyparam, emptyparam,
emptyparam, emptyparam, emptyparam,
emptyparam, emptyparam, emptyparam,
emptyparam, 0);
// ensuite on accède à une cellule depuis ce classeur
classeur:=document.getsheets;
feuilleclass:=classeur.getbyname('nom_de_la_feuille');
valeur:=feuilleclass:=getcellbyposition(colonne,ligne).getvalue;
end;

Tu peux utiliser la procédure SetValue si tu désire plutôt modifier le contenu d'une cellule.

Je ne te promets pas que ça marchera(car je l'ai écrit à la volée) mais sache tout de même que c'est la démarche à suivre. Tu peux aussi utiliser l'éditeur Visual Basic livré avec la suite Office.
Previens moi si ça t'a aidé.

S'il y a des erreurs éventuelles dans du code, je suis ouvert aux critiques du forum.
0
cs_valval Messages postés 13 Date d'inscription mercredi 20 octobre 2004 Statut Membre Dernière intervention 1 janvier 2005 1
17 déc. 2004 à 14:20
Au fait j'ai oublié une chose très importante.
lorsque tu accède à une cellule directement depuis un classeur comme c'est le cas dans le code ci-dessus, tu peux faire cette déclaration:

var classeur: _workbook; //plutôt que var classeur: variant;

Les critiques sont à vous!!!
0
Rejoignez-nous