Sélectionnez une colonne entière moins la ligne d'en-tête dans une macro Excel


8

Comment puis-je accéder à une plage qui correspond à une colonne entière commençant à la ligne 2 (il y a une ligne d'en-tête)?

La fin de la sélection doit être la dernière cellule non vide de la colonne.

Réponses:



2

Essaye ça:

Range(Range("A2"),Range("A2").End(xldown)).Select

ou ca:

Range(Range(Cells(2, 1), Cells(2, 1)), Range(Cells(65535, 1), Cells(65535, 1)).End(xlUp)).Select

2

En se référant à cette réponse SO , la seule méthode sûre est la .find()méthode.
Toutes les autres méthodes peuvent donner des résultats erronés si vous avez précédemment supprimé certaines cellules.

Exemple pour obtenir les dernières cellules

Lastrow =  Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
Lastcol =  Cells.Find("*", [A1], , , xlByColumns, xlPrevious).Column

Et une réponse spécifique à votre question (en supposant que vos données se trouvent dans la colonne 2, en commençant à la ligne 2)

Range([B2], [B:B].Find("*", [B1], , , xlByRows, xlPrevious)).select

entrez la description de l'image ici


1

Vous pouvez utiliser les raccourcis clavier d'Excel. Essayez Ctrl+ Home.

Cela vous amènerait à la cellule A1 (si vous n'avez pas utilisé le volet d'arrêt). Descendez d'une cellule puis utilisez les boutons Ctrl+ Shift+ Down arrowpour sélectionner jusqu'à la dernière ligne entrée.

Si vous devez sélectionner la valeur de la colonne, utilisez le right arrowbouton au lieu du down arrowbouton.


0

Ce morceau de code fait la moyenne de tout sauf l'en-tête avec l'en-tête dans la cellule "B1"

Dim GG as Long
GG = Application.WorksheetFunction.Average(ActiveSheet.Range("B2", Range("B2").End(xlDown)))
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.