Remplir un tableau Excel

vegastar69 Messages postés 36 Date d'inscription dimanche 15 avril 2012 Statut Membre Dernière intervention 11 mai 2012 - 26 avril 2012 à 18:00
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 29 avril 2012 à 17:54
Bonsoir,

Je vous explique mon problème:

J'ai un tableau Excel où sont référencées certaines informations et notamment deux critères nommé "MA" et "SA".

Je veux créer un autre tableau Excel et récupérer ces deux critères en les classant par ordre décroissant.

Voilà un exemple de ce que j'aimerai obtenir (le tableau devra être sur un autre fichier à part):


Je réussi à le faire directement sur Excel avec la fonction: NB.SI(plage;critère) pour récupérer chaque critère MA.
NB.SI.ENS(plage_critères1; critère1; [plage_critères2; critères2]…) pour récupérer chaque critère SA en fonction du critère MA.

Mais je souhaiterai tout automatisé en le faisant en code VB.NET sur mon application.

D'un côté je veux compter chaque MA un à un, et de l'autre je veux compter chaque SA associé à chaque MA.

Une idée de la méthode à entreprendre en vb.net ?

Cordialement.

13 réponses

Utilisateur anonyme
26 avril 2012 à 20:25
Bonjour,

As-tu essayé un filtre élaboré avec extraction dans une autre plage ?

Ton autre plage peut être une autre feuille.

Ensuite, au pire, tu peux trier ta nouvelle feuille.
0
vegastar69 Messages postés 36 Date d'inscription dimanche 15 avril 2012 Statut Membre Dernière intervention 11 mai 2012
27 avril 2012 à 08:26
Bonjour,

Qu'entends tu par filtre élaboré avec extraction ?
0
Utilisateur anonyme
27 avril 2012 à 17:04
Bonjour,

Excel a une fonction qui s'appelle le filtre élaboré qui permet de filtrer les données selon des critères choisis par l'utilisateur. L'utilisateur a aussi le choix d'afficher les résultats à partir de l'endroit d'origine ou de les afficher à un endroit différent.
0
vegastar69 Messages postés 36 Date d'inscription dimanche 15 avril 2012 Statut Membre Dernière intervention 11 mai 2012
28 avril 2012 à 17:20
Bonjour,

Je ne souhaite pas le faire par Excel mais par un programme en VB.NET.
0

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

Posez votre question
Utilisateur anonyme
28 avril 2012 à 17:56
Bonjour,

Tu peux piloter Excel par automation avec VB.net. Si tu ne veux pas utiliser la voie du pilotage, tu vas passer une éternité a tout reprogrammer et a déboguer. Cela va coûter une fortune en temps à ton employeur, juste pour réinventer la roue.

Ceci dit, si tu veux absolument faire de l'Excel sans Excel:

1) On peut obtenir des données d'un classeur Excel d'une manière semblable à l'acquisition de données d'une base de de données. (Une chaîne de connexion et des requêtes SQL pour remplir des datatables. Un BindingSource ou un Dataview pour trier et faire les calculs, puis un DataGridView pour voir les résultats.)

2) Ceci dit, pour créer un nouveau classeur Excel sans avoir Excel (Excel 2007 et 2010) on peut utiliser Open XML. Il y a un SDK sur le site de microsoft.

Et un exemple tout neuf ici.
0
vegastar69 Messages postés 36 Date d'inscription dimanche 15 avril 2012 Statut Membre Dernière intervention 11 mai 2012
28 avril 2012 à 18:04
Merci cmarcotte pour tes explications, il est vrai que se serais plus facile et rapide de piloter Excel, qu'est ce que l'automation ?
0
Utilisateur anonyme
28 avril 2012 à 18:17
Bonjour,

À la base Automation c'est l'abréviation de OLE Automation. OLE étant la technologie qui permet l'insertion d'objets, le glisser-déposer, la liaison d'objets etc.

Dans le cas qui nous occupe c'est d'utilser Excel et VBA à partir d'une autre application qui peut être VB.net, Caiguisé (C#), VbScript, VB6 et bien d'autres.
0
vegastar69 Messages postés 36 Date d'inscription dimanche 15 avril 2012 Statut Membre Dernière intervention 11 mai 2012
28 avril 2012 à 18:58
D'accord je vois, je pense me dirigé vers cet option qui me parait plus logique pour travailler sur des tableaux Excel.

Donc dans mon cas je souhaite avoir un bouton dans mon interface vb.net qui exécute mon tableau excel.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 avril 2012 à 21:17
Bonjour,
D'accord je vois, je pense me dirigé vers cet option qui me parait plus logique pour travailler sur des tableaux Excel.

Donc dans mon cas je souhaite avoir un bouton dans mon interface vb.net qui exécute mon tableau excel.

je crois que tu n'as pas compris le rôle de l'automation :
Il n'est pas d' "exécuter", mais de "piloter".
Il implique :
1) la création des objets à "piloter" (Excel, Classeur, feuille excel)
2) une connaissance suffisante de VBA/Excel (le "pilotage" ne t'en dispense nullement. Il te permet seulement d'appliquer aux objets créés les mêmes méthodes, instructions, fonctions, etc ... que celles que tu appliquerait en VBA directement).

En conséquence :
- ou tu sais déjà écrire le code VBA faisant ce que tu veux et montre-le ===>> on te dira comment l'inclure dans ton "pilotage"
- ou tu ne le sais pas et c'est alors, avant même de parler de "pilotage" depuis telle ou telle autre application, un problème VBA/Excel (autre section de ce forum) à résoudre d'abord.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
vegastar69 Messages postés 36 Date d'inscription dimanche 15 avril 2012 Statut Membre Dernière intervention 11 mai 2012
29 avril 2012 à 17:45
Bonjour,

alors non je ne sait pas encore écrire le code VBA, je sais juste le faire directement sur les cellules Excel une par une avec la méthode.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 avril 2012 à 17:49
Je te conseille alors de traiter ce problème VBA d'abord !
Il ne serait pas idiot, pour y parvenir, d'ouvrir dans la section : Langages dérivés > VBA une discussion à part entière, sans même faire allusion à VB.Net et à un pilotage. Juste VBA et rien d'autre.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
vegastar69 Messages postés 36 Date d'inscription dimanche 15 avril 2012 Statut Membre Dernière intervention 11 mai 2012
29 avril 2012 à 17:52
Très bien, merci pour ton conseil j'y fais tout de suite alors. :)
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 avril 2012 à 17:54
Voilà !
Et une fois ce code VBA connu et maîtrisé, il te sera loisible de revenir dans la présente discussion si tu rencontres une difficulté pour t'en servir en "pilotage" depuis VB.Net.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Rejoignez-nous