Tri d'un tableau Excel [Résolu]

vegastar69 36 Messages postés dimanche 15 avril 2012Date d'inscription 11 mai 2012 Dernière intervention - 15 avril 2012 à 17:07 - Dernière réponse : vegastar69 36 Messages postés dimanche 15 avril 2012Date d'inscription 11 mai 2012 Dernière intervention
- 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 ;)
Afficher la suite 

Votre réponse

27 réponses

ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 20 avril 2012 à 16:51
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ucfoutu
NHenry 14178 Messages postés vendredi 14 mars 2003Date d'inscription 21 mai 2018 Dernière intervention - 15 avril 2012 à 17:39
0
Utile
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
Commenter la réponse de NHenry
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 15 avril 2012 à 17:59
0
Utile
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
Commenter la réponse de ucfoutu
vegastar69 36 Messages postés dimanche 15 avril 2012Date d'inscription 11 mai 2012 Dernière intervention - 16 avril 2012 à 15:15
0
Utile
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.
Commenter la réponse de vegastar69
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 16 avril 2012 à 18:35
0
Utile
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
Commenter la réponse de ucfoutu
vegastar69 36 Messages postés dimanche 15 avril 2012Date d'inscription 11 mai 2012 Dernière intervention - 16 avril 2012 à 23:29
0
Utile
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é.
Commenter la réponse de vegastar69
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 17 avril 2012 à 07:48
0
Utile
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
Commenter la réponse de ucfoutu
vegastar69 36 Messages postés dimanche 15 avril 2012Date d'inscription 11 mai 2012 Dernière intervention - 17 avril 2012 à 13:59
0
Utile
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 ?
Commenter la réponse de vegastar69
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 17 avril 2012 à 14:33
0
Utile
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
Commenter la réponse de ucfoutu
vegastar69 36 Messages postés dimanche 15 avril 2012Date d'inscription 11 mai 2012 Dernière intervention - 17 avril 2012 à 17:27
0
Utile
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 ?
Commenter la réponse de vegastar69
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 17 avril 2012 à 17:37
0
Utile
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
Commenter la réponse de ucfoutu
vegastar69 36 Messages postés dimanche 15 avril 2012Date d'inscription 11 mai 2012 Dernière intervention - 17 avril 2012 à 17:42
0
Utile
Je peux donc utilisé mon application vb.net tout en codant en VBA ? je ne comprends pas vraiment.
Commenter la réponse de vegastar69
NHenry 14178 Messages postés vendredi 14 mars 2003Date d'inscription 21 mai 2018 Dernière intervention - 17 avril 2012 à 19:19
0
Utile
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
Commenter la réponse de NHenry
vegastar69 36 Messages postés dimanche 15 avril 2012Date d'inscription 11 mai 2012 Dernière intervention - 18 avril 2012 à 18:25
0
Utile
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.
Commenter la réponse de vegastar69
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 18 avril 2012 à 18:35
0
Utile
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
Commenter la réponse de ucfoutu
vegastar69 36 Messages postés dimanche 15 avril 2012Date d'inscription 11 mai 2012 Dernière intervention - 18 avril 2012 à 18:39
0
Utile
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 ?
Commenter la réponse de vegastar69
NHenry 14178 Messages postés vendredi 14 mars 2003Date d'inscription 21 mai 2018 Dernière intervention - 18 avril 2012 à 19:04
0
Utile
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
Commenter la réponse de NHenry
vegastar69 36 Messages postés dimanche 15 avril 2012Date d'inscription 11 mai 2012 Dernière intervention - 18 avril 2012 à 19:09
0
Utile
Très bien merci je vais m'y mettre ! Vous auriez de bons sites pour que je me forcm sur le VBA avec excel ?
Commenter la réponse de vegastar69
NHenry 14178 Messages postés vendredi 14 mars 2003Date d'inscription 21 mai 2018 Dernière intervention - 18 avril 2012 à 19:29
0
Utile
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
Commenter la réponse de NHenry
vegastar69 36 Messages postés dimanche 15 avril 2012Date d'inscription 11 mai 2012 Dernière intervention - 19 avril 2012 à 17:57
0
Utile
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 :
Commenter la réponse de vegastar69

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Tri d'un tableau Excel - page 2