VBA: Sélectionner une colonne

5 réponses
Avatar
Emile63
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

5 réponses

Avatar
MichD
Le 06/07/22 Í  08:06, Emile63 a écrit :
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

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
Avatar
Emile63
Le Wednesday, July 6, 2022 Í  2:28:29 PM UTC+2, MichD a écrit :
Le 06/07/22 Í  08:06, Emile63 a écrit :
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
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

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
Avatar
Emile63
Le Thursday, July 7, 2022 Í  8:22:22 AM UTC+2, Emile63 a écrit :
Le Wednesday, July 6, 2022 Í  2:28:29 PM UTC+2, MichD a écrit :
Le 06/07/22 Í  08:06, Emile63 a écrit :
> 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
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
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

NB: Ma procédure ne fonctionne pas :(
Les cellules vérouillées ne se colorent pas...)
Avatar
MichD
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
Avatar
Emile63
Le Thursday, July 7, 2022 Í  1:00:03 PM UTC+2, MichD a écrit :
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

Bonjour MichD,
Merci pour ton aide et pour l'explication.
Ca fonctionne et j'ai compris. :)