Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
XL 2021Position en fonction de la date et de l'heure
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 !
Bonjour,
C'est quoi qui ne marche pas ?
Si c'est le Sub GoCellDay alors...
VB:
Private Sub GoCellDay()
Dim C As String
With ActiveSheet
If Time < .[K3] Then
C = "I"
ElseIf Time < .[M3] Then
C = "K"
Else
C = "M"
End If
.Cells(Day(Date) + 3, C).Select
End With
End Sub
Mais le calcul Cells(Day(Date) + 3, C) est faux puisque tu as 2 lignes par jour, une ligne M et un ligne S.
Qu'est-ce qui fait qu'on doit se positionner sur la ligne M ou la ligne S ?
Mais le calcul Cells(Day(Date) + 3, C) est faux puisque tu as 2 lignes par jour, une ligne M et un ligne S.
Qu'est-ce qui fait qu'on doit se positionner sur la ligne M ou la ligne S ?
Mais le calcul Cells(Day(Date) + 3, C) est faux puisque tu as 2 lignes par jour, une ligne M et un ligne S.
Qu'est-ce qui fait qu'on doit se positionner sur la ligne M ou la ligne S ?
Private Sub GoCellDay()
Dim C As String
With ActiveSheet
If Time < .[I3] Then
C = "I"
ElseIf Time < .[K3] Then
C = "K"
Else
C = "M"
End If
.Cells(Day(Date) + 3, C).Select
End With
End Sub
Private Sub GoCellDay()
Dim C As String
With ActiveSheet
If Time < .[I3] Then
C = "I"
ElseIf Time < .[K3] Then
C = "K"
Else
C = "M"
End If
.Cells(Day(Date) + 3, C).Select
End With
End Sub
Rien à couper, ce matin était ok, on verra à midi et ce soir, bonne journée et merci encore pour toute cette aide.
Le code que j'ai :
Option Explicit
Private Sub GoCellDay()
Dim C As String
With ActiveSheet
If Time < .[I3] Then
C = "I"
ElseIf Time < .[K3] Then
C = "K"
Else
C = "M"
End If
.Cells(Day(Date) + 3, C).Select
End With
End Sub
Private Sub Workbook_Open()
Worksheets(Month(Date)).Select: GoCellDay
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'ne rien faire si la feuille active n'est pas celle du mois en cours
If Sh.Index = Month(Date) Then GoCellDay
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
[A1].Select
End Sub
Private Sub GoCellDay()
Dim C As String
With ActiveSheet
If Time < .[I3] Then
C = "I"
ElseIf Time < .[K3] Then
C = "K"
Else
C = "M"
End If
.Cells(Day(Date) + 3, C).Select
End With
End Sub
Private Sub Workbook_Open()
Worksheets(Month(Date)).Select
Call GoCellDay
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'ne rien faire si la feuille active n'est pas celle du mois en cours
If Sh.Index = Month(Date) Then Call GoCellDay
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
ActiveSheet.[A1].Select
End Sub
Les autres fonctions gèrent des évènements.
1 - Workbook_Open() -> Ouverture du classeur
2 - Workbook_SheetActivate() -> Activation / sélection d'une feuille en cliquant en bas sur son nom
3 - Private Sub Workbook_SheetDeactivate() -> Désactivation d'une feuille quand on en choisit un autre.
Le 3 ne sert pas à grand chose et pourrait être supprimé sauf à vouloir absolument sélectionner A1 quand la feuille choisie n'est pas celle du mois en cours. Le code aurait d'ailleurs pu être placé en 2 dans le Else du If.
- 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