Débutante en rade ... [Résolu]

Signaler
Messages postés
15
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
21 janvier 2005
-
Messages postés
13
Date d'inscription
mercredi 20 octobre 2004
Statut
Membre
Dernière intervention
1 janvier 2005
-
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

Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
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.
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
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.
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
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.
Messages postés
15
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
21 janvier 2005

Vi, pour ouvrir Excel c'est bon, c'est après que çà se complique méchamment :)
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
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.
Messages postés
15
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
21 janvier 2005

Oui, c'est toujours le même !
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
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.
Messages postés
15
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
21 janvier 2005

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 :)
Messages postés
15
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
21 janvier 2005

ok, ben je vais essayer comme çà.

Je te remercie beaucoup, beaucoup :))
Messages postés
13
Date d'inscription
mercredi 20 octobre 2004
Statut
Membre
Dernière intervention
1 janvier 2005
1
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.
Messages postés
13
Date d'inscription
mercredi 20 octobre 2004
Statut
Membre
Dernière intervention
1 janvier 2005
1
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!!!