Dans Excel 2010, comment puis-je créer un modèle avec une fonction se termine automatiquement dans la dernière cellule avec des données?

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.

  • Sélectionnez la colonne que vous souhaitez définir avec une plage automatique en cliquant sur la première cellule de données (usuellement la rangée 2) et allez dans Formules> Définir le nom> Définir le nom
  • Donnez au nom un nom clair, tel que ColumnNameRange
  • Quittez Scope comme classeur et ajoutez un commentaire si vous voulez
  • Dans Désigne: saisissez cette formule (en remplaçant les références de cellules et de feuilles au besoin)
=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:

  • Si vous définissez cette deuxième partie du COUNTA à 500, comme ci-dessus, puis finissez avec plus de 500 rangées de données, il ne comptera pas les extras, alors gardez cela à l'esprit
  • S'il y a des blancs dans les données que le COUNTA regarde, il ne compte que jusqu'à la première fois. Pour éviter cela, configurez toujours COUNTA dans la première colonne (qui devrait être votre colonne d'identification, donc ne devrait jamais avoir de blancs), puis définissez la cellule référencée dans OFFSET dans la colonne souhaitée (alors, pour la colonne D, réglez COUNTA sur $ A $ 2 : $ A $ 500 et l'OFFSET à $ D $ 2
  • Toujours réparer toutes les gammes de cellules avec $ (F4) ou cela ne fonctionnera pas correctement. Toutes les gammes de cellules devraient ressembler à cette colonne $ colonne $
  • Vous pouvez créer une Dynamic Named Range qui couvre une collection de colonnes en ajoutant un autre COUNTA après le premier: = OFFSET ($ A $ 1,0,0, COUNTA ($ A1: $ A500), COUNTA ($ B1: $ B500)) . Vous pouvez le faire avec des tableaux en indiquant certaines colonnes: = Tableau1 [[Colonne1]: [Colonne2]] ou en indiquant l'ensemble de la table: = Tableau 1

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.