XL 2013 VBA - Détermination automatique d'une plage selon une date

ThierryP

XLDnaute Occasionnel
Bonjour le forum,

J'ai créé il y a fort longtemps un planning simple pour suivre les activités de monteurs. Etant fainéant, je cherche à automatiser la sélection d'une plage en fonction de la position de la cellule active (voir fichier joint, page février):

Si je suis en L7, je voudrais sélectionner automatiquement la plage H3:Q8 (soit la semaine complète).
Si je suis en B3, plage B3:C8.
Si je suis en BC6, plage AX3:BE8
Quand ma cellule est dans une semaine complète, pas de souci (voir macro)...
Mon problème est de gérer les semaines incomplètes (typiquement début et fin de mois), là je patauge lamentablement....

Si un excellent Excellien pouvait m'aiguiller, mes jours en seraient illuminés !

Merci d'avance,

ThierryP
 

Pièces jointes

  • Test.xlsm
    28.9 KB · Affichages: 4
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour ThierryP, bienvenue sur XLD,

Voyez le fichier joint et cette macro :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim P As Range, dat As Range, coldeb%, colfin%, Semaine As Range
Set P = [A1].CurrentRegion
Set P = P.Offset(2).Resize(P.Rows.Count - 2)
If Intersect(Target, P) Is Nothing Or Target.Column = 1 Then Exit Sub
Cancel = True
Set dat = Target(3 - Target.Row, 1).MergeArea(1)
coldeb = dat.Column + 2 - 2 * Weekday(dat, 2)
colfin = coldeb + 9
If coldeb < 2 Then coldeb = 2
If colfin > P.Columns(P.Columns.Count).Column Then colfin = P.Columns(P.Columns.Count).Column
Set Semaine = Intersect(Range(Columns(coldeb), Columns(colfin)), P)
Semaine.Select 'facultatif, en VBA on ne sélectionne généralement pas...
End Sub
A+
 

Pièces jointes

  • Test(1).xlsm
    33.5 KB · Affichages: 13

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 332
Membres
102 864
dernier inscrit
abderrashmaen