Kaname63
5Messages postés
13 septembre 2011Date d'inscription
20 octobre 2011Dernière intervention
20 oct. 2011 à 09:07
Une petite astuce ; Comme VBA, le langage des macros dans toutes les versions d'Excel est très similaire à VB.net (2005, 2008, 2010), les bases de codage pour piloter Excel sont à votre portée.
Lancer l'enregistrement d'une macro sur Excel et exécuter ce que vous voulez que l'application fasse plus tard (par exemple insérer une valeur dans une cellule)
Stoppez l'enregistrement de la macro puis allez voir le code créé. Vous trouverez des lignes de code très proches de votre langage VB.net. Sauf qu'Excel aura tout enregistrer... Les mouvements dans les fenêtres, les mouvements de la roulette pour se déplacer rapidement dans le classeur...
Après quelques modifications pour épurer le code, vous pouvez presque le copier coller directement sur votre application...
Il y aura quelques erreurs parce que thisworkbook, activesheet, activecell, activechart ne sont pas des classes de vb.net, mais des composants de la DLL Excel. Ainsi si vous avez a un endroit :
dim xlapp as Excel.application
dim xlbook as Excel.workbook
Selon les lignes vous devrez rajouter dans les lignes xlapp. ou xlbook. avant ou à la place de la liste :
thisworkbook => xlapp.activeworkbook
activesheet => xlapp.activesheet
activecell => xlbook.activecell ou xlapp.activecell
activechart => xlbook.activechart ou xlapp.activechart
etc...
Après à partir de ses petits trucs que je viens de vous donner, vous arriverez à aller lire des valeur, écrire des valeurs, changer le titres de graphiques, faire en sorte que la mise en page soit similaire sur plusieurs feuilles,...
Fin bref, beaucoup de choses.
Même à écrire directement des formules à rallonge si vous êtes à l'aise avec VB et Excel. (J'ai personnellement réussi à coder la création de 25 feuilles en liens avec d'autres excel, à calculer à l'aide de RECHERCHEV et de NB.SI imbriqués et de sommes, à copier les valeurs dans une autre feuille avant de supprimer les 25 feuilles et les calculs intermédiaires.)
Sachez aussi que si vos applications (codées en vb.net) devront agir avec des versions d'Office différentes, il vaut mieux faire en sorte que la DLL ajoutée au projet VB.net soit celle de la plus ancienne version d'Excel. (9.0 pour 2000, 11.0 pour 2003, 12.0 pour 2007) Une application avec la version 11.0 de la DLL Excel, ne pourra pas coder de protection compatible avec Excel 2000, donc à l'ouverture, L'application ne pourra même pas ouvrir le classeur.
Redahs : Ce que tu demande est réalisable (partie datagrid vers excel) mais le code derrière est conséquent ; j'ai du le faire et je peux t'affirmer que ce n'est pas en quelques lignes que c'est fait . Il faut ouvrir l'Excel de destination, insérer les titres et les valeurs, cellule par cellule... Pour faire simple Deux boucles Une boucle For pour le titre et deux imbriquées autre boucles For imbriquées pour le remplissage des valeurs. Plus tu as de valeurs à remplir, plus ce sera long...
Houssam-1 : Par codage, c'est réalisable... De plusieurs façon, en faisant le lien entre les deux via Excel, ou en ne copiant que les valeurs entre deux feuilles de deux classeurs... Après dans les deux cas, mon astuce si dessus va te permettre de récupérer la base qui te servira pour ton code. A toi de voir, comment ce que tu veux faire exactement et comment tu veux le faire...
Dans beaucoup de cas, vous aurez deux possibilités de lancer ce que vous voulez pour Excel ;
- en utilisant des macros (attentions aux sécurités) et en pilotant que de loin le déroulement de votre code.
- en pilotant vraiment tout depuis VB.NET
Le hic c'est que parfois le pilotage depuis VB.NET n'est pas possible...
Serait il possible de savoir kel librairie doit-on ouvrir pour creer un fichier excel ?
merci pour les info