XL 2021 Position en fonction de la date et de l'heure

clausen

XLDnaute Occasionnel
Impossible de faire marcher cette programmation

Le matin jusqu'à 9:00 dans la colonne "I" ensuite jusqu'à 14:00 dans la colonne "K" et le soir jusqu'à 19:00 dans la colonne "M"
 

Pièces jointes

  • Couleur.xlsm
    130.3 KB · Affichages: 9

Dudu2

XLDnaute Barbatruc
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
 
Dernière édition:

clausen

XLDnaute Occasionnel
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


Savez-vous à quoi servent les autres lignes ?
 

Dudu2

XLDnaute Barbatruc
VB:
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.
 

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 248
Membres
103 164
dernier inscrit
axelheili2