Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VBA: Sélectionner une colonne

246 views
Skip to first unread message

Emile63

unread,
Jul 6, 2022, 8:06:07 AM7/6/22
to
Bonjour à tous,

Je souhaite sélectionner la colonne (V) d'un tableau avec toutes les données qu'elle contient.
Je brode autour de ce code, mais malheureusement sans succès.

ActiveSheet.Range("V10:" & Range("V" & .Rows.Count).End(xlUp).Row).Select

Merci d'avance pour votre coup de main et très bonne journée à tous.
Emile

MichD

unread,
Jul 6, 2022, 8:28:29 AM7/6/22
to
Le 06/07/22 à 08:06, Emile63 a écrit :
Bonjour,

Si tu utilises l'outil "Tableau" du menu insertion :

Range("Tableau1[[#All],[toto2]]").Select

Tableau1 est le nom du tableau
toto2 est le nom du champ de la colonne du tableau désiré
#All -> pour toute la colonne

Si tu utilises "Tableau" pour désigner une plage de cellule

With Worksheets("Feuil1") ' OU Activesheet
.Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row).Select
End With

N.B. Pour travailler avec une plage de données, il n'est pas nécessaire
de la sélectionner...

MichD


Emile63

unread,
Jul 7, 2022, 2:22:22 AM7/7/22
to
Bonjour MichD,
Merci pour ta réponse.

Voici la raison pour laquelle je sélectionne la colonne :

Sub GrilleVérouillages()
'Validation visuel du Vérouillage, colore les cellules si elles sont vérouillées (rouge) ou pas (vert)

Range("V10:V500").Select
'ActiveSheet.Range("V10:" & Range("V" & .Rows.Count).End(xlUp).Row).Select

For Each cell In Selection
If cell.Locked = True Then
cell.Font.ColorIndex = 3
Else
If cell.Locked = False Then cell.Font.ColorIndex = 10
End If
Next
MsgBox "Sélection terminée", , "Cellules vérouillées Ctrl+m"
End Sub

Emile63

unread,
Jul 7, 2022, 2:58:51 AM7/7/22
to
NB: Ma procédure ne fonctionne pas :(
Les cellules vérouillées ne se colorent pas...)

MichD

unread,
Jul 7, 2022, 7:00:03 AM7/7/22
to
Le 07/07/22 à 02:22, Emile63 a écrit :
> If cell.Locked = True Then
> cell.Font.ColorIndex = 3
> Else
> If cell.Locked = False Then cell.Font.ColorIndex = 10
> End If

Ta macro devrait ressembler à ceci :

A ) Observe bien la ligne qui sélectionne la plage de cellule.

B ) quand tu utilises l'expression ActiveSheet, cela est applicable
à chacune des feuilles de calcul­. Si au moment de l'appel, ce
n'est pas la bonne feuille qui est à l'écran, cela va modifier
cette feuille, ce qui n'est pas le résultat attendu.

C ) Si ta macro doit s'appliquer qu'à une seule feuille spécifique,
remplace ActiveSheet par worksheets("Feuil1") ou encore mieux par
le nom de l'objet feuille.

En VBA, chaque feuille est définie comme suit :
Feuil1(Feuil1)
Le premier Feuil1 est le nom de l'objet feuille,
le deuxième Feuill1 entre parenthèses est le nom de l'onglet de la
feuille de calcul.

Il est préférable d'utiliser le nom de l'objet
With Feuil1
.Range("V10:V" & .Range("V" & .Rows.Count).End(xlUp).Row).Select
End with

En utilisant le nom de l'objet, tu as droit à la liste déroulante des
propriétés et méthodes de l'objet.
Tu peux modifier le nom de l'onglet de la feuille de calcul et cela
n'affectera pas le déroulement de ta macro.

La propriété "colorindex" n'est pas nécessairement la même pour tous les
ordinateurs, certains usagers peuvent modifier ces valeurs par défaut.
La présentation peut avoir alors un autre look.

Il existe 8 constantes de couleur : VbWhite, VBBlack, VBgreen, VBmajenta
VBBlue, VBgreen, VBRed, VBYellow
Je t'ai donné un exemple dans ton code avec la propriété "Color"

Tu pourrais aussi utilisé la fonction RGB() pour déterminer la "Color"
Voir l'aide sur RGB.

'--------------------------------
Sub test()
Dim Cell As Range

With ActiveSheet
.Range("V10:V" & .Range("V" & .Rows.Count).End(xlUp).Row).Select
End With

For Each Cell In Selection
If Cell.Locked = True Then
Cell.Font.ColorIndex = 3
'Cell.Font.Color = vbBlue
Else
Cell.Font.ColorIndex = 10
'Cell.Font.Color = vbGreen
End If
Next

MsgBox "Sélection terminée", , "Cellules vérouillées Ctrl+m"
End Sub
'--------------------------------

MichD

Emile63

unread,
Jul 11, 2022, 8:28:08 AM7/11/22
to
Bonjour MichD,

Merci pour ton aide et pour l'explication.
Ca fonctionne et j'ai compris. :)
0 new messages