Je souhaite créer un modèle dans Excel avec une fonction qui inclut une plage, mais le nombre de cellules dans cette plage changera chaque fois que le modèle sera appliqué.
Comment puis-je identifier que je veux que la gamme commence à dire, B2 et finir à la dernière cellule avec le texte dans la colonne B?
Cela dépend de ce que vous faites et, en tant que tel, cela vous aiderait si vous ajoutez un peu plus de détails à votre question. En l'état, nous ne pouvons pas dire ce que vous essayez de faire ou pourquoi.
En tant que tel, je ne peux que vous conseiller sur la façon de créer des plages (dynamiques) automatiques:
1
Utilisez une table – Les tableaux Excel sont incroyablement puissants, et automatiquement comptent comme une gamme, si vous souhaitez faire référence à chaque cellule d'une colonne, entrez [nom de colonne] plutôt que la référence de cellule traditionnelle. Les tables Excel se développent de manière automatique à mesure que de nouvelles lignes sont ajoutées, ce qui est très pratique.
Le tableau des tables nous ramène à la question de savoir ce que ce modèle est et ce qu'il est censé faire: si le tamplate est censé être consulté par les utilisateurs d'Excel 2003 ou des tables antérieures ne fonctionnera pas.
2
Ce qui m'amène à l'option 2: Dynamic Named Ranges.
=OFFSET(SheetName!$A$2,0,0,COUNTA(SheetName!$A$2:$A$500),)
Cette Dyanmic Named Range, lorsqu'elle est référencée dans une formule, renverra tout de la gamme indiquée dans le décalage à la seconde moitié de la plage indiquée dans le COUNTA. La formule examine la gamme entière dans le COUNTA pour obtenir le nombre de cellules non vierges, puis crée une sélection de plage de décalage à partir de la première cellule, jusqu'au nombre de cellules trouvées.
Plus d'informations sur Dynamic Named Ranges ici: http://www.ozgrid.com/Excel/DynamicRanges.htm
Plus d'informations sur les tableaux ici: http://www.ozgrid.com/Excel/data-tables.htm
Quelques choses à garder à l'esprit RE Dynamic Named Ranges:
Voici une macro qui fera le choix
Public Sub SelectRange() Cells(2, 2).Select Range(Selection, Selection.End(xlDown)).Select *do stuff* End Sub
Maintenant, il suffit de remplacer les choses par ce que vous voulez faire avec la sélection et de produire les résultats à n'importe quelle cellule que vous metriez la formule.
Si vous nous indiquez la formule, nous pouvons l'ajouter au vba. Si vous avez besoin d'une entrée par l'utilisateur avant que la formule ne soit activée, vous pouvez l'ajouter à un bouton ou à une autre action.