|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 7 ![]() |
Bonjour à tous,
Je suis complètement débutante en VBA. Cependant, ma demande ne peut se résoudre qu'en VBa (me semble-t-il). Voici ce que je cherche à créer : Dans un premier classeur Excel, j'ai toute une série de données dont un tableau composé de 2 colonnes (une colonne reprenant la date, et une colonne reprenant des flux piétons). Dans un second classeur, je crée un tableau qui reprend certaines données du premier fichier. J'ai une cellule qui va rechercher la valeur maximum de la colonne flux piétons du premier classeur. Dans une autre cellule, je veux afficher la date correspondant à cette valeur maximum. Je dois donc passer par une fonction du style "Recherche". Cependant, voilà où se trouve mon problème : la fonction recherche d'excel nécessite que les valeurs soit classée par ordre croissant. Or mes valeurs ne seront jamais triées!! Je cherche donc à améliorer cette fonction. Pouvez-vous m'aider? Merci beaucoup |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Hervé SilveInscription : août 2010 Messages : 773 ![]() |
Bonjour,
Les fonctions de recherche d'Excel ne demande pas forcément que les valeurs soient classées dans un nombre croissant, il suffit simplement de donner la valeur FAUX à l'argument "valeur_proche". Par contre, il est nécessaire que, pour la fonction RechercheV, la colonne où s'effectue la recherche soit la colonne la plus à gauche de la matrice donc, cette dernière doit être la colonne "flux piétons" (dans mon exemple, la colonne A). Exemple : en cellule C1 la formule =MAX(A1:A50) en cellule D1 la formule de recherche =RECHERCHEV(C1;A1:B50;2;FAUX) la matrice étant en colonne A et B -> A1:B50 il te faut donner le format Date à D1 Hervé. |
|
|
00
|
|
|
#3 | ||
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 897 ![]() |
Bonjour,
Citation:
ici E3 étant le retour de la formule MAX proposé par Theze Code :
=INDEX(A1:A22;EQUIV(1;(B1:B22=E3)*1;0))
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
||
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 7 ![]() |
Tout d'abord, un tout grand merci pour vos réponses.
J'ai bêtement résolu mon problème en modifiant l'ordre des deux colonnes. Maintenant, j'ai un autre problème du même type, mais cette fois-ci je travaille sur une plage de donnée (cf. fichier exemple en pièce jointe). Je voudrai pouvoir afficher la tranche horaire dans une cellule, ainsi que le jour dans une autre cellule correspondant au flux maximum observé sur l'ensemble de la plage de données. Dans l'exemple, le flux max étant 1848, je voudrais afficher le samedi entre 15h et 16h. De plus, est-il possible d'afficher deux jours et/ou deux tranches horaires si la valeur maximum apparaît deux fois dans le tableau? Là, je crois que c'est du VBA... Merci d'avance. |
|
|
00
|
|
|
#5 | |
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 7 ![]() |
Citation:
De plus, cela fonctionne-t-il si le résultat à afficher se trouve dans une celulle fusionnée? Merci beaucoup. |
|
|
|
00
|
|
|
#6 | ||
|
Membre habitué
![]() Inscription : septembre 2005 Messages : 153 ![]() |
Bonjour
Pour apporter de l'eau à ton moulin j'ai pense à certaine choses : Tu dis : Citation:
Ensuite les fonctions recherchev, index, Equiv et les fonctions BD (BDSOMME; BDMAX ...) peuvent résoudre ton problème. Attention les formules n'aime pas les cellules fusionnées donc à éviter si possible tu dis : Citation:
Une pour gérer les colonnes et une pour gérer les lignes. Je te conseille pour cela d'utiliser l'objet Cells qui à un adressage numérique pour les colonnes et les lignes (c'est plus facile pour se déplacer en colonnes). Mais il me semble possible que tout puisse se gérer en formules (sans cellules fusionnées bien sur) même si je pense qu'il serait plus simple de le faire en VBA, c'est à toi de voir Igloobel
__________________
C'est en forgeant que l'on devient forgeron, c'est en programmant que l'on devient ... chauve. |
||
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 7 ![]() |
Bonjour Igloobel, le forum,
Tout d'abord, merci de t'être penché sur mon problème. ![]() Concernant les données sur un seul classeur, c'est impossible. En effet, ici j'ai simplifier le bazar en disant que dans un premier classeur j'avais un tableau. Dans ce premier classeur, appelons-le "Mois1Année1", j'ai déjà plein de données, et une vingtaine d'onglets... qui génère un rapport automatique ; j'entre mes données et j'ai tous mes graphiques et calculs qui se font automatiquement, il n'y a plus qu'à imprimer Ce classeur n'est pas unique, vous pouvez vous en douter car j'ai un classeur par mois par année. Cela fait déjà une bonne déclinaison de classeurs. Mon but ultime serait donc d'avoir un classeur récapitulatif présentant certaines données de ces classeurs, pour en faire un rapport annuel, trimestriel,... Enfin... je vais peut-être me simplifier la vie, car ça commence à être vachement compliqué...
|
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Hervé SilveInscription : août 2010 Messages : 773 ![]() |
Bonjour,
Je crois que tu ferais bien de te tourner vers un SGBD comme Access. C'est sûr,ça promet quelques heures de saisie (voir plusieurs jours) mais ensuite le travail de rapports et autre requêtes serait plus simple et la maintenance grandement simplifiée, enfin, c'est mon avis, Excel n'étant pas un SGBD c'est pour cette raison que ça devient compliqué quand il faut gérer un grand nombre de données. Hervé. |
|
|
10
|
|
|
#9 | |||
|
Membre habitué
![]() Inscription : septembre 2005 Messages : 153 ![]() |
Bonjour,
Tu dis : Citation:
Theze à raison quand il dit : Citation:
Un Conseil ; Quand on peut faire des actions sans macros et que l'on débute Citation:
Plus c'est simple mieux c'est ! Moi même quand je peut utiliser les fonctions deXcel et les formules je le fait. Ce qui veut pas dire qu'il faut abandonner les macros !!!! et que je te déconseille d'en faire Non non... Je suis prêt à t'aider en fonctions, en formules et en macros si tu veux, mais vu que c'est relativement complexe il faire au plus simple. ![]() @ bient¤t Igloobel
__________________
C'est en forgeant que l'on devient forgeron, c'est en programmant que l'on devient ... chauve. |
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com