[RESOLU] Sélection d'une cellule à l'ouverture du classeur en fonction de l'heure

hypo78

XLDnaute Impliqué
Bonsoir,

j'ai une petite macro qui me permet à l'ouverture de mon classeur de sélectionner la cellule dans l'onglet du mois et la colonne du jour.
Code:
Sub Auto_Open()
'
' Macro1 Macro


  Dim Maintenant As Date
    Dim Nom As String
    Dim Cellule As Range
    Dim Colonne As Integer
    
    Dim AnneeClasseur As Integer
    
    Dim Annee As Integer
    Dim Mois As Integer
    Dim Jour As Integer
    
    AnneeClasseur = CInt(Left(Sheets(1).Name, 4))
    
    Maintenant = Date
    Annee = Year(Maintenant)
    Mois = Month(Maintenant)
    Jour = Day(Maintenant)
    
    If Annee = AnneeClasseur Then
    

            Nom = Format(Maintenant, "yyyy-mm")
            Colonne = (6 + ((Jour * 2)) - 1)
    
        Sheets(Nom).Select
        Set Cellule = Cells(6, Colonne)
        Cellule.Select
        
    End If 'Annee = AnneeClasseur

End Sub


chaque jour du mois comporte 2 colonnes : 1 pour la journée et l'autre pour la nuit.
Ce que je souhaiterai : que si j'ouvre mon classeur entre 7h00 et 19h il s'ouvre comme actuellement et que si je l'ouvre après 19h on décale de 1 colonne.

Merci d'avance.
 
Dernière édition:

hypo78

XLDnaute Impliqué
Re : [RESOLU] Sélection d'une cellule à l'ouverture du classeur en fonction de l'heur

Re bonjour eriiiic,

juste pour ma "culture" VBA, peux tu m'expliquer la logique du : - (Hour(Time) >= 19) * 1 qui renvoie 0 avant 19h et qui ajoute 1 après 19h.

je pense : si l'heure du moment est inférieur à 19h (Hour(Time)>=19) renvoie Faux autrement il renvoie Vrai.

Il me reste à comprendre le +1 au niveau de colonne quand l'argument est vrai.... alors que çà commence par un moins (-)

Ecrit comme çà je comprends : Colonne = (6 + (Jour * 2) - (1 - (Hour(Time) >= 19) * 1))

merci d'avance.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 721
Membres
110 551
dernier inscrit
Khyolyanna