Trouver les valeurs correspondantes à l'aide de vba excel
Sans l'aide d'excel intégré dans le filtre ou un tableau croisé dynamique de la fonction, je veux extraire certains résultats à l'aide de vba. Considérons l'exemple suivant: compte tenu des données dans coloumn A et B, je veux être en mesure à l'entrée "a" dans C1 et à l'aide de vba pour obtenir dans la Colonne D de toutes les valeurs correspondantes de la colonne B (1,3,5). Si je input "b", j'obtiens 2, 6, ainsi de suite. Merci.
- Même pas une formule Excel?
Vous devez vous connecter pour publier un commentaire.
Évidemment, vous pouvez faire ce beaucoup plus dynamique et rapide, mais cela devrait faire le travail.
Columns("D:D").Select Selection.ClearContents
Entrez l'événement suivant macro dans la feuille de calcul de code de zone:
Parce que c'est de la feuille de calcul de code, il est très facile à installer et automatique pour utiliser:
Si vous avez des problèmes, essayez d'abord sur un essai de la feuille de calcul.
Si vous enregistrez le classeur, la macro sera enregistré avec lui.
Si vous utilisez une version d'Excel plus tard, puis en 2003, vous devez enregistrer
le fichier en tant que .xlsm plutôt que .xlsx
Pour supprimer la macro:
Pour en savoir plus à propos des macros en général, voir:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
et
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
Pour en savoir plus sur l'Événement Macros (feuille de calcul de code), voir:
http://www.mvps.org/dmcritchie/excel/event.htm
Macros doivent être activées pour que cela fonctionne!
B. T. W.
Vous pouvez faire la même chose avec des formules et des pas de VBA - comme RECHERCHEV sur steriods!
Je comprends quand vous dites que vous ne voulez pas utiliser des filtres ou des Pivots. Mais Les Formules?
Si quelque chose est possible avec des formules, alors pourquoi VBA?
Coller cette Formule matricielle dans
Cell D1
et appuyez sur CTRL + MAJ + ENTRÉE et le tirer vers le bas.=IF(ISERROR(INDEX($A$1:$B$7,SMALL(IF($A$1:$A$7=$C$1,ROW($A$1:$A$7)),ROW(1:1)),2)),"",INDEX($A$1:$B$7,SMALL(IF($A$1:$A$7=$C$1,ROW($A$1:$A$7)),ROW(1:1)),2))
Capture d'écran
