debutant : Selection colonne

V

Valverde

Guest
Bonjour,

j'ai plusieurs colonnes de données à traiter et souhaiterais automatiser le traitement.
je pense qu'une macro VB est la meilleure solution pour mon probleme.
Or, pour chaque colonne, je souhaite sélectionner l'ensemble des données.
Le raccourci clavier pour l'operation est CTRL+SHIFT+Fleche Bas
Et bien entendu, chaque colonne comporte une longueur de donnees differentes.

La commande VB correspondante semble etre :
ActiveCell.Range("A1:A169").Select

Comment parametrer la macro pour que Range selectionne automatiquement la longueur de donnees associée? (car si j'execute la precedente macro sur une autre colonne, par défaut, elle selectionnera le meme nombre de lignes que pour la premiere colonne.
merci d'avance de votre aide
 
S

sylsyl

Guest
Salut,

tu peux aussi chercher la derniere cellule utilisee de la colonne:

Sub Selectionner_colonne()

Last_Cell=Range("A65536").End(xlUp).address 'cherche la derniere cellule non-vide de la colonne A
activesheet.Range("A1:" & Last_Cell).Select 'Selectionne le Range

End Sub

Tiens nous au courant,
A++, Sylsyl.
 
M

Moa

Guest
Salut !

Tu as d'autres possibilités :

ActiveCell.Select
Range(Selection, Selection.End(xlDown)).Select

Attention : il ne faut pas de ligne vide dans ta colonne entre la cellule sélectionnée et la dernière.

Car en fait le Selection.End(xlDown), s'arrête à la première cellule vide.

D'où l'interêt, comme te l'as indiqué SylSyl de commencer par la dernière ligne de ta colonne

Sinon, tu peux carrément sélectionner toute la colonne (tout dépend de ce que tu feras après), avec :

ActiveCell.EntireColumn.Select

@ +

Moa
 
V

Valverde

Guest
>Last_Cell=Range("A65536").End(xlUp).address 'cherche la derniere >cellule non-vide de la colonne A
>activesheet.Range("A1:" & Last_Cell).Select 'Selectionne le Range


etant debutant en VB, suite a ma question de ce matin, le resultat de la variable Last_Cell est de la forme A_NumeroLigne.

Comment faire pour ne recuperer que le Numero de la derniere ligne de la colonne contenant des données?
 
S

sylsyl

Guest
Lut,

tres rapidement...
si la derniere cellule non-vide est la 23eme


>Last_Cell=Range("A65536").End(xlUp).address
te renvoie l'adresse de la derniere cellule = $A$23
et tu dois utiliser:
>activesheet.Range("A1:" & Last_Cell).Select

-----------------------------

>Last_Cell=Range("A65536").End(xlUp).Row
te renvoie le numero de la ligne = 23
et tu dois utiliser:
>activesheet.Range("A1:A" & Last_Cell).Select
ou (en plus complique): activesheet.Range("A1", Cells(Last_Cell,1)).Select

-----------------------------

voila...
A++ (surement l'annee prochaine lol), Sylsyl.
 
M

Moa

Guest
Re !

J'utilise une autre méthode, plus simple, pour un débutant.

Si ton tableau commence en B15 et ne dépasse jamais 100 lignes :

Dans une cellule (exemple, B2) vide tu écris : =NBVAl(B15:B100)+14

Puis tu fais référence à cette cellule (B2, dans notre cas) dans ta macro.

Si maintenant ton tableau peut aller jusqu'à 500 lignes ou plus, tu changes la fin de ton NbVal

Si maintenant ton tableau commence avant la ligne 15, tu changes le +14 en +Quelquechose.

@ +

Moa
 

Discussions similaires

Statistiques des forums

Discussions
313 020
Messages
2 094 435
Membres
106 027
dernier inscrit
DonSparks