|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Katy Faye Camara Inscription : avril 2010 Messages : 29 ![]() |
bonjour
je suis débutante en VBA et j'ai un petit problème de code. mon objectif est de créer à partir des informations de la "feuil1", 3 onglets qui contiennent chacun une partie des informations de la "feuil1" mais présenté autrement. je m'explique: dans la feuil1 j'ai un tableau qui comprends plusieurs champs mais je m'intéresse seulement à 5 champs qui sont: - name (on a plusieurs name différents) - seri - version - term - et percentB à partir de ce tableau je dois extraire 3 tables pour 3 "names" différents ( a, b et f par exemple). Pour chaque table je ne conserve pour chaque "seri" que les lignes avec la "version" la plus récente. De plus, j'aimerai que les lignes avec la même "seri" et la même "version" soit concatenées pour ne donner qu'une seule ligne contenant les valeurs des autres champs (les champs 3Y, 5Y, 7Y et 10Y). Mon code est ci-dessous. Le problème est que j'obtiens plusieurs lignes. à chaque qu'une cellule est renseigné mon pointeur se déplace a la ligne suivante. Du coup j'ai plus de lignes qu'il ne m'en faut. Code :
Name Series Version Term percentB b 7 1 3Y b 7 1 10Y 1.64% a 7 1 7Y 1.30% a 7 1 10Y 1.63% c 7 1 5Y 0.64% c 7 1 10Y 1.40% f 7 1 10Y 4.43% f 7 2 5Y 4.99% f 7 2 10Y 4.43% b 11 1 3Y 0.66% b 11 1 5Y 1.14% b 11 1 7Y 1.47% b 11 1 10Y 1.68% f 11 1 3Y 5.14% f 11 1 5Y 4.09% f 11 1 7Y 4.32% f 11 1 10Y 4.36% a 11 1 3Y 0.81% a 11 1 5Y 1.11% a 11 1 7Y 1.36% a 11 1 10Y 1.53% a 7 2 3Y a 7 2 5Y 0.96% a 7 2 7Y 1.30% a 7 2 10Y 1.63% c 7 2 5Y 0.64% c 7 2 10Y 1.40% b 7 2 3Y b 7 2 10Y 1.64% f 11 2 3Y 5.14% f 11 2 5Y 4.09% f 11 2 7Y 4.32% f 11 2 10Y 4.36% f 7 3 5Y 4.99% f 7 3 10Y 4.43% f 7 4 5Y 4.99% f 7 4 10Y 4.43% f 7 5 5Y 4.99% f 7 5 10Y 4.43% b 15 1 3Y 1.66% b 15 1 5Y 1.97% b 15 1 7Y 2.11% b 15 1 10Y 2.20% a 15 1 3Y 1.03% a 15 1 5Y 1.31% a 15 1 7Y 1.45% a 15 1 10Y 1.55% f 15 1 3Y 3.66% f 15 1 5Y 4.60% f 15 1 7Y 4.92% f 15 1 10Y 5.02% resultat souhaité onglet: res_a name seri Version 3Y 5Y 7Y 10Y a 15 1 103 31 145 155 a 11 1 81 111 136 153 a 7 2 96 130 163 resulta obtenue: name seri Version 3Y 5Y 7Y 10Y a 7 1 130 a 7 1 163 a 11 1 81 a 11 1 111.2375201 a 11 1 136.0920773 a 11 1 152.9323278 a 7 2 0 a 7 2 96.26005998 a 7 2 130.3477709 a 7 2 162.8249332 a 15 1 103.2113366 a 15 1 130.5606504 a 15 1 144.9299307 a 15 1 154.5115675 |
||
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 13 ![]() |
Bonjour,
Pourquoi ne pas utiliser le tableau croisé dynamique. Ellimac |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Katy Faye Camara Inscription : avril 2010 Messages : 29 ![]() |
Bonjour Ellimac,
j'ai pensé à un TCD mais le problème est que ma requete doit être automatique. je suis entrain de faire un outils et l'objectif est qu'il n'y ai pas d'intervention manuelle. Merci. |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() ![]() |
Salut
J'ai fait en sorte de conserver l’ossature de ton code, il traite le res_a, il te faudra modifier un peu le code pour faire une boucle res_a, res_b et res_c. Fais signe si tu as du mal. Code :
Qwaz
__________________
MagicQwaz := Harry Potter la baguette en moins ![]() Le monde dans lequel on vit HammerFest Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer |
||
|
|
30
|
|
|
#5 | ||
|
Invité de passage
![]() Katy Faye Camara Inscription : avril 2010 Messages : 29 ![]() |
Merci Qwazerty,
C'est exactement ce que je voulais. Juste une question. je comptais reproduire le même code plusieurs fois pour avoir le res_b et res_c. j'ai cru comprendre qu'il est possible de le faire en même temps. Je suis novice en vba, je ne vois pas trop comment faire la boucle pour avoir les autres les résultats sur les autres sheets. merci encore. Bonjour, Dans mon tableau final j'ai des 0 et des valeurs manquantes. Ciomment faire pour remplacer les 0 par des vides. j'ai essayer la requête: Code :
Ce que je voudrais c'est remplacer les cellules qui sont à 0 par "". merci. |
||
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé Sénior
![]() ![]() |
Salut
Il serait intéressant de travailler avec Find ou avec un filtre pour trouver plus rapidement les a f c dans la liste, sans avoir a boucler sur toutes les cellules de la colonne. Prend exemple sur le Find utilisé dans le code ou dans l'aide VBA Excel (Touche F1 sur Find) Regarde si ça te convient Code :
Pour la boucle, j'ai simplement donné une liste de lettres qui devront être recherchées (a, f et b), ensuite je fait référence à la feuille Res_ correspondante. Le code peut-être amélioré comme je te l'ai dis plus haut, mais tu auras ensuite plus de mal à le maintenir en cas de modifications ou de problèmes, à toi de voir. ++ Qwaz ++ Qwaz
__________________
MagicQwaz := Harry Potter la baguette en moins ![]() Le monde dans lequel on vit HammerFest Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer |
||
|
|
10
|
|
|
#7 | ||||
|
Invité de passage
![]() Katy Faye Camara Inscription : avril 2010 Messages : 29 ![]() |
Merci Qwaz,
J'ai testé le programme et ça marche. Par contre le fait de mettre une boucle pour les sheets font que mon tir ne marche plus vraiment. ou plôt si il marche mais mon code pour le tri devient du coup trop lourd. J'étais parti dans l'idée de faire un tri pour chaque spread sheet donc pour 3 codes. je me demande s'il ne serait pas possible d'en faire un seul. Mon code est le suivant: Code :
Bonjour J'ai crée un boutton pour exécuter la macro. Cependant avant exécution je doit supprimer toutes les valeurs de la plage de données avant de mettre les nouvelles. Mais je dois pas supprimer toute la ligne car j'ai d'autres tableaux à cotés avec des formules. j'ai écrie un code pour chaque sheets mais je me demande aussi si je ne peu pas le faire en même temps. Code :
Merci |
||||
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé Sénior
![]() ![]() |
Salut
Voila les modifications avec les explications dans le code. Code :
Qwaz
__________________
MagicQwaz := Harry Potter la baguette en moins ![]() Le monde dans lequel on vit HammerFest Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer |
||
|
|
20
|
|
|
#9 | |
![]() ![]() Alain GerardConsultant informatique Inscription : mai 2005 Messages : 3 675 ![]() |
Attention Qwazerty,
Citation:
Val est une fonction native de VBA.
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres! Pensez aussi à voter pour les réponses qui vous ont aidés. ------------ Je dois beaucoup de mes connaissances à mes erreurs! |
|
|
|
20
|
|
|
#10 | |||
|
Expert Confirmé Sénior
![]() ![]() |
Citation:
C'est pas faux , j'avoue ne pas avoir vu cela lorsque j'ai repris le code fourni, je vais corriger ça de suite.Code :
Merci ++ Qwaz
__________________
MagicQwaz := Harry Potter la baguette en moins ![]() Le monde dans lequel on vit HammerFest Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer |
|||
|
|
20
|
|
|
#11 |
|
Invité de passage
![]() Katy Faye Camara Inscription : avril 2010 Messages : 29 ![]() |
Merci Qwaz!
C'est exactement ce qu'il me faut! Je vais marquer le problème comme résolu! Merci. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com