Excel et DDE

Fermé
has1 - 13 févr. 2009 à 23:46
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 15 févr. 2009 à 13:58
Bonjour,
j'ai programme une application en java qui communique avec l'Excel en DDE mais j'ai rencontré un problème lors de l'ouverture de deux Feuille Excel au même temps donc j'ai décidé de cherché sur ce forum une moyen pour interdire l'exécution d'une autre feuille excel sauf la mienne es que quelqu'un a une aidé je vous remercie.
A voir également:

3 réponses

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
14 févr. 2009 à 11:37
Bonjour,
Suppose que par "Feuille" tu veux dire classeur.
Probablement que dans la première commande tu ne donne pas la commande pour ouvrir Excel.Application mais directement un classeur.
Je ne connais pas le Java et ne pourrai te donner la syntaxe mais il faut
1°) ouvrir Excel.Application en tant qu'objet
2°) Ouvrir le classeur.
Pour une piste (ce n'est pas ton language) voir cet exemple

http://64.233.183.102/translate_c?hl=fr&sl=en&u=http://www.javaworld.com/javaworld/javaqa/2001-06/04-qa-0629-excel.html&prev=/search%3Fq%3Djava%2Bexcel%2Blibrary%26hl%3Dfr%26rlz%3D1T4GZEZ_frBE248BE248&usg=ALkJrhgtMkQwPdsEBy6TYTR75h-WxG-ZKA
0
Merci mon ami je crois que je me suis mal expliquer voila un petit code simple :
//************************************************************************
DDEClient client;
Conversation sheet1 = null;
client = DDEClient.getInstance();
try {
sheet1 = client.connect("Excel", "Sheet1");
System.out.println("Connected to Excel Sheet1");
String a1 = new String(sheet1.request("R1C1"));
System.out.println("A1 value: " + a1);
System.out.println("Changing cell A1 contents to \"Hello\"");
sheet1.poke("R1C1", "Hello".getBytes());
System.out.println("Sending \"New(1)\" command");
sheet1.execute("[New(1)]");
} catch(DDEException e) {
System.out.println(e);
} finally {
// disconnect in a finally clause
try {sheet1.close();} catch (Exception e) {}
}
client.close();
//**********************************************************
c la ligne en gras qui me pose probleme cette ligne etablit la liaison entre excel et java mais le probleme c que je specifie pas a quel classeur je veux m'adresser alors le resultatc que ts les classeurs ouverts peuvent echanger les données avec le serveur Java alors j'ai decidé de fermer ts les calsseurs ouverts sauf celui qui m'intersse mais j'ai trouvé l'asctuce pr le faire .
j'esper que mon probleme est claire amigo.
Merci a vous
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
15 févr. 2009 à 13:58
Je pense que c'est bien comme je dis dans mon poste précédant...
Tu déclare client = DDEClient.getInstance();
Mais tu ne l'instancie pas , tu veux directement la feuille, je verrais plutôt ça...

Conversation sheet1 = null;
Déclarer une variable !! (je ne connaît pas la syntaxe)
Book as Workbooks
Conversation sheet1 = null;


book= client.connect("Excel", "NomDuClasseur");
sheet1 = book.sheets("Sheet1")
Et pour ouvrir Excel tu doit avoir une référence à cet objet (une librairy, dll ?)

0