ouverture d'une plage a la date j

  • Initiateur de la discussion Initiateur de la discussion MASSJIPE
  • 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 !

MASSJIPE

XLDnaute Impliqué
Bonjour
comment faire pour qu'une plage de donnée s'ouvre à la date du jour par vba ou formule
J'ai définie la plage lundi mardi etc
En A21 la date aujourd'hui et B21 le jour mercredi
Si on est mardi la plage se met à mardi à l'ouverture du classeur auto open
merci
 

Pièces jointes

Re : ouverture d'une plage a la date j

Bonjour, MASSJIPE, le Forum,

Comme ceci ?

Code:
Private Sub Workbook_Open()
If [b21].Value = "lundi" Then [a1].Select
If [b21].Value = "mardi" Then [f1].Select
If [b21].Value = "mercredi" Then [k1].Select
If [b21].Value = "jeudi" Then [p1].Select
End Sub

A bientôt 🙂.

Bonjour, nicopec.
 
Dernière édition:
Re : ouverture d'une plage a la date j

bonjour DoubleZero,
je n'ai pas été assez rapide
mais je me pose une question:
il y a des plages nommées (je ne sais pas comment on dit, quand on utilise insertion / nom / définir ) lundi mardi etc

en dehors de la plage qui ne me parait pas juste (ça déborde...) est-ce que vous savez s'il est possible d'utiliser ces noms dans le vba?

bon matin
nicopec
 
Re : ouverture d'une plage a la date j

Re-bonjour,

Effectivement, nicopec, certaines plages se chevauchent. Peut-être y a-t-il une raison qui m'échappe 😕 !

Toujours est-il que l'on peut utiliser le nom des plages dans VBA.

Code:
Private Sub Workbook_Open()
If [b21].Value = "lundi" Then [lundi].Select
If [b21].Value = "mardi" Then [mardi].Select
If [b21].Value = "mercredi" Then [mercredi].Select
If [b21].Value = "jeudi" Then [jeudi].Select
End Sub

A bientôt 🙂.
 
Re : ouverture d'une plage a la date j

Bonjour à tous, 00🙂

une autre approche, à placer dans le module "thisworkbook" :
Code:
Option Explicit
Private Sub Workbook_Open()
Dim x As Range
Set x = Sheets("Feuil1").Rows(1).Find(WeekdayName(Weekday(Date, 2)), , xlValues, xlWhole, , , False)
If Not x Is Nothing Then Application.Goto x
End Sub

bonne journée
@+
 
Re : ouverture d'une plage a la date j

RE
Voilas à l'ouverture du classeur suivant la date du jour sa doit s'ouvrir sur la plage demandée effectivement les plages se chevauchent pourquoi sur le classeur d'origine il y a lundi après midi et mardi matin le lendemain mardi après midi et mercredi matin
Par contre ca s'ouvre que sur le jour ex mercredi cellule K1.
si c'est possible que c'est la plage F2:O19 qui s'affiche pour mercredi etc
 
Re : ouverture d'une plage a la date j

Re,

modifie comme suit :
Code:
Option Explicit
Private Sub Workbook_Open()
Dim x As Range
Set x = Sheets("Feuil1").Rows(1).Find(WeekdayName(Weekday(Date, 2)), , xlValues, xlWhole, , , False)
If Not x Is Nothing Then Application.Goto x.Offset(1).Resize(18, 5)
End Sub
 
Re : ouverture d'une plage a la date j

Bonjour


Une autre possibilité avec Scroll sur True (mais toujours avec Application.Goto)

Code:
Application.Goto Columns(Application.Match(Format(Date, "dddd"), Range("A1:T1"), 0)).Resize(19), True
 
Dernière édition:
Re : ouverture d'une plage a la date j

Re,
Bonjour
Une autre possibilité avec Scroll sur True (mais toujours avec Application.Goto)
Code:
Application.Goto Columns(Application.Match(Format(Date, "dddd"), Range("A1:T1"), 0)).Resize(19), True
attention, renverra une erreur si non trouvé, d'autre part sans doute lieu de préciser l'objet "worksheet" en question si code plalé dans l'événement "open" du classeur...

@+
 
Re : ouverture d'une plage a la date j

Bonjour de nouveau

@pierrot93:Je me suis basé sur le fichier exemple
(en espérant que la macro serait lancé que du lundi au jeudi)
Mais tu as raison, mieux vaut prévenir le risque d'erreur.
(Quoique que faire des erreurs, c'est trés formateur)

(Je n'ai pas testé le code que je soumet dans un WorkBook_Open mais dans un module standard)

Voici la même macro mais un peu plus sure
Code:
On Error Resume Next
With Feuil1
Application.Goto .Columns(Application.Match(Format(Date, "dddd"), .Range("A1:T1"), 0)).Resize(19), True
End With
 
Dernière édition:
Re : ouverture d'une plage a la date j

e,

on pourrait tester ainsi :
Code:
With Sheets("Feuil1")
    If Not IsError(Application.Match(Format(Date, "dddd"), .Range("A1:T1"))) Then
        Application.Goto .Columns(Application.Match(Format(Date, "dddd"), .Range("A1:T1"), 0)).Resize(19), True
    End If
End With
 
- 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

Discussions similaires

Réponses
0
Affichages
433
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
458
Réponses
5
Affichages
705
Retour