Microsoft 365 VBA: sélectionner plage selon colonne

Viro_Major

XLDnaute Nouveau
Re,

je sais produire certaines choses mais parfois il me manque les variantes de syntaxe

Mon objectif

Sur changement de valeur au sein d’une plage C3:Z20, admettons que je sois placée en F7, je souhaite que ça sélectionne F3:F20, et ainsi de suite, si je change de valeur en P13, je veux P3:p40 sélectionner

Je vous remercie d’avance
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Viro_Major, bonjour le forum,

Essaie cette événementielle Change à placer dans l'onglet concerné :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim COL As Byte 'déclare la variable COL (COLonne)

If Application.Intersect(Target, Range("C3:Z20")) Is Nothing Then Exit Sub 'si le changement a lieu ailleurs que dans la plage C3:Z20, sort de la procédure
COL = Target.Column 'définit la colonne COL
Range(Cells(3, COL), Cells(20, COL)).Select 'sélectionne la plage
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re,

Heu... Pourquoi un If ?
Tu veux faire ça quand ?... Si tu le fais au changement, rajoute au code précédent :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim COL As Byte 'déclare la variable COL (COLonne)

If Application.Intersect(Target, Range("C3:Z20")) Is Nothing Then Exit Sub 'si le changement a lieu ailleurs que dans la plage C3:Z20, sort de la procédure
COL = Target.Column 'définit la colonne COL
Range(Cells(3, COL), Cells(20, COL)).Select 'sélectionne la plage
Cells(20,COL).Activate '<== ici
End Sub
 

Viro_Major

XLDnaute Nouveau
Re,

Sinon, mais je suis pas sûr d'avoir bien compris :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Cells(ActiveCell.Row, "Z").Select
End Sub

Ok merci, donc je transpose ta proposition pour satisfaire mon besoin

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(ActiveCell.Row + 1, "Z").Value = “” Then [Z5].Select
End Sub

Y’a bon banania ?
 

Statistiques des forums

Discussions
314 499
Messages
2 110 247
Membres
110 711
dernier inscrit
chmessi