XL 2021 Calendrier Éphéméride Lunaison

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 !

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD
Bonjour à tous,

Je termine mon calendrier mais bug sur un point encore,
Sur la partie lunaison
j'essai de trouver une solution pour que à la création du calendrier, j'ai juste un commentaire qui se crée sur le jour ou il y a un changement de phase lunaire (éventuellement avec l'heure, qui sont déjà accessible).

Certains d'entre vous mon déjà beaucoup aidé et connaisse le fichier.

Capture d’écran 2024-08-24 094936.jpg


Merci à tous
Nico
 

Pièces jointes

Solution
En me relisant j'ai vu mon erreur 🙁 🙁

VB:
Sub recup_phase()
    recup = recup_phase_lune(year(Range("B1")), month(Range("B1")))
End Sub

Function recup_phase_lune(année, mois)
    Dim i As Long, col As Long, lig As Long, nbjour As Long

    Application.ScreenUpdating = False

    nbjour = day(DateSerial(année, mois + 1, 0))    ' te donne le nombre de jours dans le mois en parametre
    col = Weekday(DateSerial(année, mois, 1), vbMonday) + 1 ' te donne l'index du jour de la semaine (commencant un lundi), et ajouter 1 si calendrier commence en colonne "A"
    lig = 3

    With Worksheets("Calendrier")
    
        For i = 1 To nbjour

            If col = 9 Then lig = lig + 2: col = 2 'pour changer de ligne quand on arrive au...
et ici, j'ai modifié la partie "GPS"
il y a deux codes différents pour la meme chose. mais mal fait..
le premier est executé à l'ouverture du classeur
le second est executé au clic bouton..

à écrire deux fois la meme chose à deux endroits différents.. si on ne sait pas utiliser la touche F8, on s'y perd.... tu t'y perds..

je remets le fichier ici.. pour la forme.. mais aussi dans le post qui traite du GPS pour rester cohérent
 

Pièces jointes

Bonjour à tous je reviens une dernière fois sur la partie lunaison, our savoir si la lune est en phase montante ou descendante, je pense qu'une partie du code est déjà là, mais j'arrive pas à adapter.

Calculer la phase lunaire :
  • Le cycle lunaire dure 29,53 jours, et on peut déterminer la phase de la Lune à une date donnée en comparant cette date avec une date de référence connue pour une Nouvelle Lune.
  • Si la phase est inférieure à 14,765 jours, la Lune est montante. Au-delà, elle est descendante.
Je pensais rajouter un label pour rajouter l'option, si quelqu'un veux essayer je rejoins le fichier.

Merci à tous.
Nico
 

Pièces jointes

Bonjour à toutes et tous,
Depuis 2 jours je rame sur mon programme qui fonctionnait parfaitement, je ne l'avais pas ouvert depuis quelques semaines, l'userform s'ouvrait instantanément mais maintenant il faut compter au moins 10 à 15 secondes avant que l'userform s'affiche, si quelqu'un à une idée du soucis.
Merci d'avance à tous
Nicolas.
 

Pièces jointes

Bonjour à toutes et tous,
Depuis 2 jours je rame sur mon programme qui fonctionnait parfaitement, je ne l'avais pas ouvert depuis quelques semaines, l'userform s'ouvrait instantanément mais maintenant il faut compter au moins 10 à 15 secondes avant que l'userform s'affiche, si quelqu'un à une idée du soucis.
Merci d'avance à tous
Nicolas.
Bonjour Nicolas

Un essai du classeur même problème sur le pc long à ouvrir l'userform
Trouvé un bug voir photo

bonne recherche jcf
 

Pièces jointes

  • Capture d’écran 2025-04-11 083743.jpg
    Capture d’écran 2025-04-11 083743.jpg
    52.6 KB · Affichages: 10
Depuis 2 jours je rame sur mon programme qui fonctionnait parfaitement, je ne l'avais pas ouvert depuis quelques semaines, l'userform s'ouvrait instantanément mais maintenant il faut compter au moins 10 à 15 secondes avant que l'userform s'affiche, si quelqu'un à une idée du soucis.
Hello,
c'est cette instruction dans l'initialisation du formulaire qui est très longue :
VB:
Set conn = CreateADODBConnection(ThisWorkbook.FullName)
12 secondes chez moi.

Une connexion à un classeur de taille raisonnable ne doit pas être aussi longue. Dans le classeur il doit y avoir des connexions à des sources externes (ex par Power Query) qui ne fonctionnent plus ou qui sont très longues à obtenir les données.

Question bête : pourquoi utilises-tu ADODB pour aller chercher des données qui sont dans des tables de ton classeur ?


Ami calmant, J.P
 
Dernière édition:
Bonjour à toutes et tous,

Désolé du retard de réponse, j'étais absent quelques jours.

@jcf6464 , oui en insistant sur le prog, je suis tombé sur l'erreur aussi "vdate = DateSerial(a, m, j)"

@jurassic pork ,
Une connexion à un classeur de taille raisonnable ne doit pas être aussi longue. Dans le classeur il doit y avoir des connexions à des sources externes (ex par Power Query) qui ne fonctionnent plus ou qui sont très longues à obtenir les données.

Question bête : pourquoi utilises-tu ADODB pour aller chercher des données qui sont dans des tables de ton classeur ?

c'est @dysorthographie , qui m'avait bien adapter le code pour les marées et jusque là ça fonctionnait bien pourtant ! Je comprends pas pourquoi ça ne veux plus

Merci
Nicolas
 
@jurassic pork ,
c'est @dysorthographie , qui m'avait bien adapter le code pour les marées et jusque là ça fonctionnait bien pourtant ! Je comprends pas pourquoi ça ne veux plus
Hello,
ce qui m'inquiète c'est que dans le forum où il y a normalement pas mal d'experts, personne ne puisse dire pourquoi pour ton classeur , la création d'une connexion adodb soit si longue, normalement c'est très rapide.
[EDIT] Si on utilise une copie du classeur et qu'on fait la connexion dessus c'est quasi instantané, donc cela semble être le fait de faire la connexion sur le classeur ouvert qui pose problème.
Ami calmant, J.P
 
Dernière édition:
Bonjour,
Je croyais le sujet clos 🤔
Mais en ouvrant le fichier du #63, j'ai des erreurs à priori
Regarde la pièce jointe 1216472

Regarde la pièce jointe 1216470

Regarde la pièce jointe 1216471

Ceci n'expliquerait-il pas cela 😟
Hello,
Ces requêtes ne sont qu'en connexion, et ne sont pas chargées..
1744645545789.png

Je ne vois donc pas comment elles pourraient interférer dans le fichier.
Maintenant, elles pourraient effectivement être supprimées, ne servant plus à rien.
Bonne soirée
 
Hello,
bon j'ai fait un classeur de test vide pour tester les connexions avec ADODB dont voici le code :
VB:
Sub TestADODBConnection()
    Dim conn As Object, bm As New cBenchmark
    bm.Start
    Set conn = CreateADODBConnection1("D:\Dev\Office\Excel\TestAdoDb - Copie.xlsm")
    conn.Close
    bm.TrackByName "ACEOLEDB12 - Remote"
    Set conn = CreateADODBConnection1(ThisWorkbook.FullName)
    conn.Close
    bm.TrackByName "ACEOLEDB12 ThisWorkbook"
    Set conn = CreateADODBConnection2(ThisWorkbook.FullName)
    conn.Close
    bm.TrackByName "JETOLEDB40"
    Set conn = Nothing
End Sub

Function CreateADODBConnection1(workbookPath As String) As Object
    Dim conn As Object
    Set conn = CreateObject("ADODB.Connection")
    conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & workbookPath & ";Extended Properties=""Excel 12.0;HDR=Yes"";"
    Set CreateADODBConnection1 = conn
End Function

Function CreateADODBConnection2(workbookPath As String) As Object
    Dim conn As Object
    Set conn = CreateObject("ADODB.Connection")
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & workbookPath & ";Extended Properties=""Excel 8.0;HDR=Yes"";"
    Set CreateADODBConnection2 = conn
End Function
Le premier test c'est une connexion ADODB avec Provider Microsoft.ACE.OLEDB.12.0 sur une copie du classeur de test.
Le deuxième test c'est une connexion ADODB avec Provider Microsoft.ACE.OLEDB.12.0 sur le classeur de test (le classeur ouvert).
Le troisième test c'est une connexion ADODB avec Provider Microsoft.Jet.OLEDB.4.0 sur le classeur de test (le classeur ouvert).
Voici les résultats en temps d'ouverture :
ACEOLEDB12 - Remote -> 11 ms
ACEOLEDB12 ThisWorkbook -> 12,1 s
JETOLEDB40 -> 74 ms


On voit bien qu'il y a un problème avec la connexion en utilisant le Provider Microsoft.ACE.OLEDB.12.0 avec le classeur ouvert.

Alors soit c'est un problème qui est apparu suite à une mise à jour ou soit cela dépend de la version d'Excel ou de l'O.S
Les tests ont été réalisés en Excel 2016 32 bits sur un Windows 11.
En pièce jointe les classeurs qui ont servis pour le test si vous voulez voir si vous avez le problème. Les résultats s'affichent dans la fenêtre d'exécution VBA.
Ami calmant, J.P
 

Pièces jointes

Hello,
Le problème vient bien de Microsoft,
voir ici
Ami calmant, J.P

Bonjour à tous,

@jurassic pork ,

je confirme un problème de mise à jour, j'y avais pensé aussi,

-sur le pc fixe (excel version 2503 32bits w10 64bits), bug
-Sur pc portable (excel version 2210 32bits w10 64bits), fonctionne instantanément
-Sur pc portable (excel version 2210 32bits w11 64bits), fonctionne instantanément

Du coup je sais pas si il peu y avoir une alternative au problème selon les versions ou d'attendre un correctif de la mise à jour ?

Merci

Nicolas
 
Dernière édition:
Du coup je sais pas si il peu y avoir une alternative au problème selon les versions ou d'attendre un correctif de la mise à jour ?
Ben en fait faudrait voir ce que font les requêtes sql dans le code et les remplacer par du code sans requête sql.
par exemple il y a les select distinct sur une colonne de table pour ne pas avoir les doublons.
SQL:
Select distinct [Départements] from [VILLES$]
ou des filtres
SQL:
    Sql = "SELECT * FROM [Marées$] WHERE  Format([Date],'yyyy-mm-dd')='" & Format(Me.Tag, "yyyy-mm-dd") & "' AND [Ville]='" & Replace(VILLES, "'", "''") & "'"
Ami calmant, J.P
 
Dernière édition:
Ben en fait faudrait voir ce que font les requêtes sql dans le code et les remplacer par du code sans requête sql.
par exemple il y a les select distinct sur une colonne de table pour ne pas avoir les doublons.
SQL:
Select distinct [Départements] from [VILLES$]
ou des filtres
SQL:
    Sql = "SELECT * FROM [Marées$] WHERE  Format([Date],'yyyy-mm-dd')='" & Format(Me.Tag, "yyyy-mm-dd") & "' AND [Ville]='" & Replace(VILLES, "'", "''") & "'"
Ami calmant, J.P

Je ne saurai pas faire, c'est Robert qui m'avait fait par rapport au marée, mais je sèche sur Sql ...
 
- 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

Discussions similaires

Réponses
12
Affichages
1 K
Retour