Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 VBA: sélectionner plage selon colonne

  • Initiateur de la discussion Initiateur de la discussion Viro_Major
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

V

Viro_Major

Guest
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😛40 sélectionner

Je vous remercie d’avance
 
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
 
Bonjour et merci Robert ! Je m’empresse de tester celà

et sinon, autre requêre similaire, je cherche à me caler sur cellule Z de la prochaine ligne
cette écriture est elle juste ?

If .Cells(25, .Offset(1, 0)) = "" Then [Z5].Select
 
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
 
Pardon c’était une demande séparée de la précédente (mais qui me semblait de la même veine)

Le but, tester “si la cellule Z de la ligne suivante du changement de valeur est vide, alors ....”
 
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 ?
 
Re,

Alors :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
if Cells(ActiveCell.Row, "Z").value <> "" then Cells(ActiveCell.Row, "Z").Select
End Sub

[Edition]
Nos post se sont croisés et j'ai mis <> au lieu de = mais c'est bien ça...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…