|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2011 Messages : 11 ![]() |
Bonjour,
Je me suis fais une macro sous Excel en mode enregistrement automatique résolvant mon problème, mais le code est vraiment moche, affreux, dégeu! Donc voilà je me demandais si quelqu'un pourrait m'aider à construire une macro un peu plus propre. ![]() Débutant en macro VB Excel, je souhaiterai avoir vos conseil pour régler le problème suivant: -> Dans une worksheet, j'ai un tableau de la forme suivante titreA titreB titreC titreD titreE vache ble 10.2.1 ville valide cheval mais VIDE ferme valide vache ble 5.2.1 ferme valide vache mais VIDE ville valide vache ble 5.4.6 ville valide cheval seigle 100.0.7 ferme valide cheval mais 3.6.1 ville valide * L'espace doit etre interprété comme séparateur de cellule *La taille du tableau peut varier et l'emplacement des colonnes aussi. Ici on va travailler avec les colonnes nommées: "titreA" et "titreC", mais leur emplacement peut varier (seul leur nom est connu et fixe). Pour ça j'avais pensé à l'utilisation d'une fonction de calcul de la taille du tableau et une fonction de recherche de titre de colonne. * Pour ordre de grandeur les tableaux que j'utilise font en moyenne 30 colonnes sur 3000 lignes * Quand j'écris VIDE: cela signifie que le contenu de la cellule est réellement vide 1/ Je souhaite trouver la colonne "titreC" et utiliser un filtre automatique pour ne garder QUE les lignes NON vide (similaire à l'option "Non Blank" du filtre automatique sous Office 2003). Dans notre cas les lignes 3 et 5 ne doivent plus apparaitre. 2/ Je souhaite trier la colonne "titreC" préalablement filtré de façon croissante. Le probleme qu'on rencontre ici (existant d'ailleurs aussi avec le filtre automatique) c'est que par ex: 10.2.1 sera devant 5.2.1, ce que je voudrai éviter. 3/ Enfin, j'aimerai bien pouvoir filtrer de nouveau le résultat de l'étape précédente suivant la colonne "titreA" en ne gardant que les lignes avec le mot "vache". J'imagine qu'ici aussi la fonction de filtre automatique va être utile Le resultat obtenu des 3 étapes précédentes devrait avoir la forme suivante: titreA titreB titreC titreD titreE vache ble 5.2.6 ferme valide vache ble 5.22.3 ville valide vache ble 10.2.1 ville valide titreA titreC titreE vache 5.2.6 valide vache 5.22.3 valide vache 10.2.1 valide Donc dans l'exemple cela donnerait: titreA titreC titreE *** SECTION 5 ********* vache 5.2.6 valide vache 5.22.3 valide *** SECTION 10 ******* vache 10.2.1 valide |
|
|
01
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Bonsoir
Une code moche peut être embelli et refaçonné de manière à être bien formalisé. Ci joint proposition (avec certains commentaires) à adapter à ton fichier Code :
__________________
Cordialement. |
||
|
|
30
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2011 Messages : 11 ![]() |
Merci Mercatog pour ton aide tres precieuse, je suis entrain de revoir ton code, mais sérieusement cela fait plaisir d'avoir eu une réponse aussi rapide et avec du code bien fait: indenté, commenté,..., bref du vrai code.
Si je te dis ça c'est que vois tu la dernière fois où j'ai codé cela remonte à plus de 10 ans durant mes études où j'ai fais plusieurs années de C, de Java,... Et honnêtement j'adorais la prog. Mais voila, dans mon travail je ne suis plus du tout amené à programmer et donc j'ai perdu mes réflexes même si les principes de programmation, c'est comme le vélo on n'oublie pas. Donc étant complétement newbie en VBA, je me demandais si elle n'existe pas une aide genre "javadoc API", où toutes les fonctions et objets VBA seraient décrites. Certes il y l'aide dans VBA, mais tout du moins pour celle que j'utilise, je la trouve limité et pas du tout pratique. Car pour être honnête, mon plus gros probléme en VBA est que je souhaiterai éviter de réinventer la roue et donc avoir la connaissance des fonctions et objets disponibles. Donc merci d'avance à celui qui pourrait m'indiquer si ce genre de ressource VBA existe. |
|
|
10
|
|
|
#5 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Codes précédents adaptés et testés sur ton fichier
Code :
__________________
Cordialement. |
||
|
|
40
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2011 Messages : 11 ![]() |
Bonsoir,
Bref, je disais encore merci mercatog et j'étais un peu scotché de voir que tu codes plus vite que ton ombre Bonne soirée à tous, |
|
|
20
|
Copyright © 2000-2012 - www.developpez.com