Tri d'un tableau Excel

Résolu
vegastar69 Messages postés 36 Date d'inscription dimanche 15 avril 2012 Statut Membre Dernière intervention 11 mai 2012 - 15 avril 2012 à 17:07
vegastar69 Messages postés 36 Date d'inscription dimanche 15 avril 2012 Statut Membre Dernière intervention 11 mai 2012 - 21 avril 2012 à 17:41
Bonjours à tous !

Je travail sous Visual Studio 2010 en VB.NET.

J'aurais besoin de votre aide, j'ai un tableau de données Excel avec plusieurs colonnes et je souhaiterais trier une colonne qui a deux paramètres et récupérer les lignes où la colonne est valide.

Merci d'avance, j'espère que vous aurez compris mon objectif sinon redemander moi ;)

27 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 avril 2012 à 16:51
Soient donc :
si tu as appelé les choses ainsi en création/pilotage
Appxl l'objet appliaction.Ecel créé
Wkb l'objet workbook créé
ws l'objet worksheet créé

et si ta syntaxe vba est la bonne, voilà ce qu'elle donnerait depios VB.Net

ws.Range("K2").AutoFilter
ws.Range("$A$2:$R$963").AutoFilter Field:=11, Criteria1:="=*F*", _
        Operator:=xlAnd


sans préjudice de la justesse de ta syntase VBA (juste sa transposition).
________________________
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
3
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
15 avril 2012 à 17:39
Bonjour,

As-tu regardé pour l'automatisation d'Excel à partir de VB.NET ?
Sinon, je ne comprend pas l'histoire de colonne valide.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
15 avril 2012 à 17:59
Bonjour,
Je ne comprends pas non plus l'expression utilisée. Ni "trier", ni "valide".
Voudrais-tu dire :
filtrer les lignes dont la cellule d'une colonne correspond à un critère ?


________________________
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
16 avril 2012 à 15:15
Oui pardon le terme filtrer est peut être plus approprié.
En fait j'aimerai récupérer les lignes qui ont pour critère à la colonne V un "F".
/URL

Puis les intégrer dans un nouveau fiché Excel.
0

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

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 avril 2012 à 18:35
Bon.
Et à quel niveau es-tu bloqué, exactement ?
1) A celui de la création des objets Excel nécessaires pour travailler en automation ?
ou
2) à celui des instructions Excel à passer ensuite à ces objets ?

Pour étape 1 :
Si non encore passée : utilise le moteur de recherche de ce forum (mots clefs piloter Excel (sujet récurrent et codes déposés).
si étape 1 passée : quels objets as-tu créés ? (et quelles instructions VBA as-tu tentées sur ces objets ) ?
________________________
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
16 avril 2012 à 23:29
Merci ucfoutu pour ton aide.

Alors je suis bloqué à l'étape 1, celui de la création des objets Excel pour travailler en automatisation.
Je suis débutant donc je ne vois pas vraiment comment faire mais je vais allé faire une recherche comme tu me l'as précisé.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 avril 2012 à 07:48
je suis bloqué à l'étape 1, celui de la création des objets Excel pour travailler en automatisation.

Ce n'est pas "automatisation", mais "automation"
Ouvre ton aide (MSDN) sur le mot CreateObject. Tu y trouveras des explications et même un exemple, précisément concernant Excel en automation depuis VB.Net
Voici, en fait, ce que tu y trouveras :
Tapez le texte de l'url ici.

________________________
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
17 avril 2012 à 13:59
Ce n'est pas "automatisation", mais "automation"

Autant pour moi :)

Merci pour le lien c'est vraiment utile sa m'aide à comprendre un peu plus ! Et donc une fois la création des objets ils faut savoir comment les utiliser avec les instructions.

Donc dans mon cas sa serait un tri au niveau d'un objet d'une colonne ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 avril 2012 à 14:33
Et donc une fois la création des objets ils faut savoir comment les utiliser avec les instructions.

Donc dans mon cas sa serait un tri au niveau d'un objet d'une colonne ?

Et donc (puisque à la mode)
si étape 1 passée : quels objets as-tu créés ? (et quelles instructions VBA as-tu tentées sur ces objets ) ?

C'est là qu'interviennent des connaissances n'ayant rien à voir avec VB.Net et tout à voir avec VBA !
Saurais-tu le faire directement dans ton classeur, sous VBA ?
car :
- si oui : montre ce que tu y écrirais et tu vas voir comme c'est ensuite simple de le faire en utilisant les objets que tu as créés
- si non : c'est à le faire d'abord depuis VBA/Excel, qu'il va te falloir apprendre cela (et la discussion devient alors carrément autre, et dans un thème différent : VBA et non 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
vegastar69 Messages postés 36 Date d'inscription dimanche 15 avril 2012 Statut Membre Dernière intervention 11 mai 2012
17 avril 2012 à 17:27
Ah oui je vois, alors non je ne saurais pas le faire en VBA je n'y est jamais touché :s
Y'a t'il une grosse différence avec le vb.net ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 avril 2012 à 17:37
Ah oui je vois, alors non je ne saurais pas le faire en VBA je n'y est jamais touché :s
Y'a t'il une grosse différence avec le vb.net

Pas vraiment en ce qui concerne les bases du Basic.
En ce qui concerne par contre les instructions spécifiques à VBA/Excel, elles sont forcément inconnues d'autres applications (puisque spécifiques à un outil) ! Et elles sont donc à apprendre
Mais rien de compliqué. L'aide VBA est là pour être lue et utilisée.

Le "pilotage" à partir de VB.Net ne t'affranchit en aucune manière de la nécessité de connaître VBA/Excel. Il ne fait que te permettre des interventions VBA/Excel sans quitter ton appli 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
vegastar69 Messages postés 36 Date d'inscription dimanche 15 avril 2012 Statut Membre Dernière intervention 11 mai 2012
17 avril 2012 à 17:42
Je peux donc utilisé mon application vb.net tout en codant en VBA ? je ne comprends pas vraiment.
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
17 avril 2012 à 19:19
Bonjour,

Non, il faut que tu code en VB.NET en utilisant les fonctions et classes mis à disposition par Excel.
Donc, le code VB.NET sera calqué sur le code VBA, en adaptant bien sûr les appels à .NET.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
vegastar69 Messages postés 36 Date d'inscription dimanche 15 avril 2012 Statut Membre Dernière intervention 11 mai 2012
18 avril 2012 à 18:25
D'accord merci, je vais essayer de voir comment faire le tri par rapport à un objet alors, si jamais vous avez des exemples je suis preneur.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 avril 2012 à 18:35
Fais-le d'abord directement depuis Excel !
C'est là-bas, qu'il te faut t'entraîner.
Une fois la syntaxe VBA/Excel ainsi connue, reviens ici avec et on te diras comment l'utiliser depuis VB.Net
Pour résumer : ton problème actuel est avant tout VBA/Excel.


________________________
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
18 avril 2012 à 18:39
En faite une fois que je sais faire sur excel en vba, il ne restera plus qu'a le traduire pour mon application vb.net ?
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
18 avril 2012 à 19:04
Bonjour,

Voilà, quand tu automatise Excel, c'est avant tout en VBA qu'il faut se débrouiller.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
vegastar69 Messages postés 36 Date d'inscription dimanche 15 avril 2012 Statut Membre Dernière intervention 11 mai 2012
18 avril 2012 à 19:09
Très bien merci je vais m'y mettre ! Vous auriez de bons sites pour que je me forcm sur le VBA avec excel ?
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
18 avril 2012 à 19:29
Bonjour,

Pas spéialement, Google en connait pas mal.
Sinon, il y a une fonction utile dans Excel, Dans Outils -> Macros -> Enregistrer macro

Comme ça tu obtiendra le code de tes actions.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
vegastar69 Messages postés 36 Date d'inscription dimanche 15 avril 2012 Statut Membre Dernière intervention 11 mai 2012
19 avril 2012 à 17:57
Bonsoir,

J'ai réussi le filtrage que je souhaite obtenir sur Excel, voici le code VBA obtenu avec la maccro sur un exemple que j'ai fait:
Sub Filtrage()
'
' Filtrage Macro
' Filtrage colonne
'
' Touche de raccourci du clavier: Ctrl+e
'
    Selection.AutoFilter
    ActiveSheet.Range("$D$1:$D$4").AutoFilter Field:=1, Criteria1:="=*Lejeune*" _
        , Operator:=xlAnd
End Sub


Avant :


Après :
0
Rejoignez-nous