Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Création agenda

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD
Bonsoir tout le monde,

Sur ma création d'agenda, j'ai un petit problème avec mon code, y a un petit truc que j'arrive pas à régler.
Si le mois n'existe pas je le créer sans soucis, mais si le mois existe, ça me dis que le moi existe déjà, je dis ok mais sur ma feuille paramètre ça scroll jusqu'à la colonne "Q", il y a une tuile, je vois un peut près ou mais j'arrive pas à l'interpétrer comme il faut.

Merci à tous
Nico



 

Pièces jointes

  • Agenda v22.xlsm
    92.3 KB · Affichages: 8
Dernière édition:
Solution
Nicolas

Ton Pb vient d'ici


et comme je ne pense pas que l'on peut scroller une feuille non active il faudrait mémoriser le nombre de scroll de colonne

VB:
Function Actu_jour(année, mois)
    Application.ScreenUpdating = False
    Dim i As Long, nbjour As Long
    nbjour = Day(DateSerial(année, mois + 1, 0)) ' te donne le nombre de jour dans le mois en parametre
    lig = 2: col = 3
    With Worksheets("Feuil1")
        For i = 1 To nbjour
            '.Range(.Cells(lig, col), .Cells(lig + 1, col)).Interior.ColorIndex = 24
            If année = Year(Date) And mois = Month(Date) And i = Day(Date) Then
                '.Range(.Cells(lig, col), .Cells(lig + 1, col)).Interior.ColorIndex = 28 'Coloriage aujourd'hui...

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD
Bonjour,


Le souci c'est qu'il doit manquer un mot dans ta phrase. N'est-il pas ?


Bonne chance pour la suite.
Bonjour l'ami,
oui, il manque un petit truc mais je trouve pas

VB:
Function Actu_jour(année, mois)
    Application.ScreenUpdating = False
    Dim i As Long, nbjour As Long
    nbjour = Day(DateSerial(année, mois + 1, 0)) ' te donne le nombre de jour dans le mois en parametre
    lig = 2: col = 3
    With Worksheets("Feuil1")
        For i = 1 To nbjour
            '.Range(.Cells(lig, col), .Cells(lig + 1, col)).Interior.ColorIndex = 24
            If année = year(Date) And mois = Month(Date) And i = Day(Date) Then
                '.Range(.Cells(lig, col), .Cells(lig + 1, col)).Interior.ColorIndex = 28 'Coloriage aujourd'hui
                ActiveWindow.ScrollColumn = i + 1     'va à la colonne aujourd'hui
            End If
            col = col + 1
        Next i
    End With
    'With Worksheets("Paramètre")
    '    ActiveWindow.ScrollColumn = 1
    'End With
End Function

je pense que c'est sur cette partie là, j'ai essayé plusieurs choses, mais dès que je je change j'ai un autre souci
Merci
 

TooFatBoy

XLDnaute Barbatruc
Salut Phil, je n'ai pas non plus IsoWeekNum proposé dans la liste déroulante que tu montres, mais l'instruction fonctionne quand même sur mon Excel 2016 (première version d'Excel où No.Semaine.Iso existe).
 
Dernière édition:

Phil69970

XLDnaute Barbatruc
Nicolas

Ton Pb vient d'ici


et comme je ne pense pas que l'on peut scroller une feuille non active il faudrait mémoriser le nombre de scroll de colonne

VB:
Function Actu_jour(année, mois)
    Application.ScreenUpdating = False
    Dim i As Long, nbjour As Long
    nbjour = Day(DateSerial(année, mois + 1, 0)) ' te donne le nombre de jour dans le mois en parametre
    lig = 2: col = 3
    With Worksheets("Feuil1")
        For i = 1 To nbjour
            '.Range(.Cells(lig, col), .Cells(lig + 1, col)).Interior.ColorIndex = 24
            If année = Year(Date) And mois = Month(Date) And i = Day(Date) Then
                '.Range(.Cells(lig, col), .Cells(lig + 1, col)).Interior.ColorIndex = 28 'Coloriage aujourd'hui
             
                '************* A MODIFIER
                'ActiveWindow.ScrollColumn = i + 1     'va à la colonne aujourd'hui
                Dim mem As Byte
                mem = i + 1
                '************
             
            End If
            col = col + 1
        Next i
    End With
 
    '******** A RAJOUTER
    If ActiveSheet.Name = "Paramètre" Then Exit Function
    ActiveWindow.ScrollColumn = mem
    '*******************
 
End Function

Donc :
1 ligne à désactiver/supprimer
2 lignes à rajouter


+ 2 lignes à rajouter à la fin


De plus je pense que tu peux simplifier ceci :


Par ceci :

'N°de semaine
With .Range(.Cells(1, 3), .Cells(1, dercol))
.Borders.LineStyle = 1
End With

Bonne lecture
 
Dernière édition:

Phil69970

XLDnaute Barbatruc
@Nicolas JACQUIN

Remarques :
1) Pourquoi la date de fin d’après midi s’arrête à 23 h et pas à 24 h ?
2) Pourquoi ne pas laisser la possibilité de ne pas avoir de pause ?
3) Pourquoi ne pas rajouter une ligne à la fin après ou avant les fêtes (Perso je préfère avant les fêtes ou même au tout début après le N° de semaine pour la visibilité mais non imprimable) pour les anniversaires à souhaiter ?
 

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD


Pour le point n°1: C'est ce que j'avais fais au départ, mais du coup j'avais préféré commencer à 0, parce que 0 = minuit



Pour le point n°2: C'est une possibilité oui
Pour le point n°3: C'est une chose que j'avais pensé.

Pour ça j'avais pensé modifié la feuille Paramètre, faire une partie création avec plusieurs choix
et une partie modification avec plusieurs choix aussi :

- Si affichage des fêtes ou pas
- Si affichage des fériées ou pas
- Anniversaire ou Fêtes à ne pas oublier

Mais pas facile tout ça pour moi, il me faut un peut de temps quand même
 

Phil69970

XLDnaute Barbatruc
Nicolas

1) Pourquoi la date de fin d’après midi s’arrête à 23 h et pas à 24 h ?

Pour le point n°1: C'est ce que j'avais fais au départ, mais du coup j'avais préféré commencer à 0, parce que 0 = minuit
Non je pensais plutôt à ceci :

J'ai rajouté 24 h dans la liste de validation



Pour avoir ceci :



Plutôt que cela pas top du tout pour moi

 

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…