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

test form6.gif


test form7.gif
 

Pièces jointes

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

Ton Pb vient d'ici

1726522227041.png

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...

jcf6464

XLDnaute Impliqué
Re, ça coince au niveau des calcul d'age entre les années (calcul ne se font pas)
Sinon j'ai trouvé une parade si année inconnu (à finir)
Bonjour à vous tous
Tu dis
Possibilité d'ajout de date à n'importe quel moment, si le mois est déjà crée la date s'actualisera automatiquement toute seule,

Format jj/mm/yyyy ou jj/mm
Cela ne marche pas si tu n'a pas en C3 le bon mois à mettre a jour et que le mois soit déjà créer,

bonne continuation jcf
 

Pièces jointes

  • 2024-09-23 .jpg
    2024-09-23 .jpg
    59.4 KB · Affichages: 2

jcf6464

XLDnaute Impliqué
Oui, faut que l'année et le mois soit saisie plus haut en B3 C3 pour que le calendrier soit remis à jour si il éxiste
Je créé le mois de mai et septembre en C3 j'ai septembre si je saisi un anniv du mois de mai le calendrier de mai ne se met pas à jour
il faut mettre le mois de mai en c3 revenir sur la date de l'anniv et corriger la date ,
du moins quand je fait les essais c'est ce que cela donne

le fait de mettre les 3 contrôles et réactualisation c'est plus fluide 👍

a+ jcf
 

Phil69970

XLDnaute Barbatruc
Je te propose cette modif pour le pb de l'anniversaire
Je n'ai pas mis à jour le code j'ai juste mis au point les dates dans le TS

Précision :
On remplit uniquement la colonne Date et on ne touche pas à la colonne Date2 c'est le code qui devra le gérer
On devrait pouvoir masquer la colonne date2 (à tester)

Qu'en penses tu ???
 

Pièces jointes

  • Agenda V1.3.xlsm
    119.7 KB · Affichages: 2

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD
Je te propose cette modif pour le pb de l'anniversaire
Je n'ai pas mis à jour le code j'ai juste mis au point les dates dans le TS

Précision :
On remplit uniquement la colonne Date et on ne touche pas à la colonne Date2 c'est le code qui devra le gérer
On devrait pouvoir masquer la colonne date2 (à tester)

Qu'en penses tu ???

Oui, ça a l'air bien.
Merci à toi
 

Phil69970

XLDnaute Barbatruc
Nicolas

J'ai l'impression qu'il y a des pb sur ta version 1.2 du post #90

Les dates d’anniversaire ne se mettent pas toutes correctement 🤔
A confirmer avant de continuer ?
Autant partir sur de bonne base ....

Edit
J'ai re vérifié j'ai pas (plus ) trouvé de pb :rolleyes: 🤔 🤔
 
Dernière édition:

Phil69970

XLDnaute Barbatruc
Nicolas

Fait ce test
1) Tu supprimes toutes les feuilles de mois (septembre _2024 etc....)

Et tu recrées le mois de septembre 2024

1727094193011.png


Tu devrais avoir ceci avec seulement Marcus inconnu
1727094152389.png


2) Tu coches nico
1727094396309.png


3) tu mets anniversaire "Non"
1727094469743.png


4) tu mets anniversaire "Oui"
1727094546736.png

5) tu devrais avoir cela
1727094660083.png


Question ou est passé Marc ???
En cochant nico ==> Marc disparait !!!


1727094756796.png


Donc il y a bien 1 pb avec le fichier du post #90
Et je n’étais pas complétement fou !!! :rolleyes: :oops:
 

TooFatBoy

XLDnaute Barbatruc
Merci pour le retour, entre temps j'avais trouvé aussi

VB:
Function SemISO(MyDate As Date) As Integer
SemISO = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If SemISO > 52 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then SemISO = 1
End If
End Function
Et qui donne le même résultat que le tient (au 1er septembre plus de soucis) à tester pour les autres
Vu que tu ne tiens absolument pas compte de ce que je te raconte, et que quand un truc tombe en marche tu passes à la suite sans chercher à comprendre pourquoi ça ne fonctionnait pas ni pourquoi maintenant ça fonctionne, ben forcément on se retrouve encore et toujours avec les mêmes choses pas très orthodoxe. ☹️



Je ne pige pas la logique interne de la Function : à quoi sert le test sur le 52 ???
Logiquement, si la semaine prochaine est la numéro 2, alors la semaine actuelle est la numéro 1. Pas besoin de test pour ça normalement, me semble-t-il. 🤔

Peux-tu m'expliquer la chose, s'il te plaît ?
 

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD
Nicolas

Fait ce test
Oui exacte, mais je pense savoir d'ou vient le problème

VB:
                        For k = 1 To .ListRows.Count

                            If Month(.ListColumns("Date").DataBodyRange(k)) = mois And Day(.ListColumns("Date").DataBodyRange(k)) = i Then
                                If Year(Date) - Year(.ListColumns("Date").DataBodyRange(k)) = 0 Then
                                    age = "(-) "
                                Else
                                    age = "(" & Year(Date) - Year(.ListColumns("Date").DataBodyRange(k)) & " ans) "
                                End If
                                anniv = anniv & .ListColumns("Anniversaire").DataBodyRange(k) & " " & age & ", " & vbCrLf
                            End If

                            If Month(.ListColumns("Date").DataBodyRange(k)) = mois And Day(.ListColumns("Date").DataBodyRange(k)) = i _
                                   And (.ListColumns("Inconnu").DataBodyRange(k)) = "x" Then
                                anniv = ''''''''''''''''''''ici le problème
                                anniv = anniv & .ListColumns("Anniversaire").DataBodyRange(k) & " " & ", " & vbCrLf
                            End If

                        Next k

Edit: Du coup ça ne prend plus en compte le avant si pas coché, faudrait tout mettre dans le même if
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Si ta semaine est supérieur à 52 ça passe à 1.
Donc, en admettant que ça fonctionne, quand ça vaut 53 ça retourne 1 au lieu de 53, donc un résultat faux ?

Mais ce que je ne pige pas, cette fois-ci au niveau de la logique de fonctionnement de la Function, c'est que si ça vaut 53 la semaine suivante est forcément 1 et ne sera donc jamais 2.
Me trompé-je sur ce point ?



C'est pas moi qui a inventé le code
Soit, mais peux-tu tout de même me l'expliquer s'il te plaît car j'avoue ne pas comprendre.
 

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD
Donc, en admettant que ça fonctionne, quand ça vaut 53 ça retourne 1 au lieu de 53, donc un résultat faux ?

Mais ce que je ne pige pas, cette fois-ci au niveau de la logique de fonctionnement de la Function, c'est que si ça vaut 53 la semaine suivante est forcément 1 et ne sera donc jamais 2.
Me trompé-je sur ce point ?




Soit, mais peux-tu tout de même me l'expliquer s'il te plaît car j'avoue ne pas comprendre.

Capture d’écran 2024-09-23 150233.jpg


Capture d’écran 2024-09-23 150304.jpg
 

TooFatBoy

XLDnaute Barbatruc
Ces deux images n'expliquent pas la logique de fonctionnement de la macro. Surtout avec 2024 et 2025. 😥


[edit]
Je viens d'allumer le PC, et de tester ta Function.

En revanche, les deux images ci-dessous montrent que le test "> 52" ne sert à rien.

Fin_2026.png

Debut_2027.png

Mais ça prouve aussi que Format, avec le paramètre vbFirstFourDays, que je ne connaissais pas, retourne le bon "nombre".
Belle découverte ! 👍
[/edit]
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 013
Messages
2 104 547
Membres
109 075
dernier inscrit
Stef68