XL 2021 Calendrier des marées info

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD
Bonjour à tous,

A ceux qui ont le pied marin,

je voulais savoir s'il était possible de créer un calendrier des marées avec :
-les heures de marée Haute
-les heures de marée Basse

et éventuellement les coefs.

Je ne sais pas du tout si c'est possible, mais si certains ont déjà étudiés sur la chose je suis preneur.

Je sais qu'il y a plein de site en ligne qui donne ce que je veux, mais se serait pour compléter un calendrier
avec les phases lunaires, éphémérides ..........

Si ça peut aider je suis de la région Lorientaise (Bretagne)

En vous remerciant d'avance.

Nicolas
 

jurassic pork

XLDnaute Occasionnel
Hello Nicolas,
pourquoi es-tu passé à Nominatim par rapport à api-adresse.data.gouv.fr ?
api-adresse.data.gouv.fr utilise la base de données française BAN
Si c'est à cause du décodage de la réponse , comme tu as le module VBA jsonConverter dans ton classeur, tu peux t'en servir pour décoder du json :

VB:
Sub PositionAvecApiAdresseGouv(adresse)
    Dim http As Object, res As Object, lat, lon, houseNum
    Const BaseURL = "https://api-adresse.data.gouv.fr/search/?q="
    Set http = CreateObject("MSXML2.XMLHTTP")
    URL = BaseURL & adresse
    On Error Resume Next
    With http
        .Open "GET", URL, False
        .Send
        Set res = JsonConverter.ParseJson(.responseText)
    End With
    Set http = Nothing
    lon = res("features")(1)("geometry")("coordinates")(1)
    lat = res("features")(1)("geometry")("coordinates")(2)
    houseNum = res("features")(1)("properties")("housenumber")
    Set res = Nothing
    Debug.Print "========  Position avec  ApiAdresseGouv ========="
    Debug.Print "Latitude : " & lat & " - Longitude : " & lon & " - HouseNumber : " & CStr(houseNum)
End Sub

j'ai rajouté dans le décodage housenumber car cela permet de savoir si la position du numéro dans la rue est connue.
J'ai testé avec les numéros de ta rue de 20 à 30 :
Code:
Sub RecupPositionsJP()
Dim adresse As String, i As Integer
For i = 20 To 30
   adresse = CStr(i) & " avenue de la commune de Paris Hennebont"
   PositionAvecApiAdresseGouv adresse
Next i
End Sub
Voici les résultats :
======== Position avec ApiAdresseGouv =========
Latitude : 47,800003 - Longitude : -3,26778 - HouseNumber :
======== Position avec ApiAdresseGouv =========
Latitude : 47,799843 - Longitude : -3,265896 - HouseNumber : 21
======== Position avec ApiAdresseGouv =========
Latitude : 47,799791 - Longitude : -3,266244 - HouseNumber : 22
======== Position avec ApiAdresseGouv =========
Latitude : 47,799765 - Longitude : -3,265957 - HouseNumber : 23
======== Position avec ApiAdresseGouv =========
Latitude : 47,799804 - Longitude : -3,266685 - HouseNumber : 24
======== Position avec ApiAdresseGouv =========
Latitude : 47,800003 - Longitude : -3,26778 - HouseNumber :
======== Position avec ApiAdresseGouv =========
Latitude : 47,799828 - Longitude : -3,266815 - HouseNumber : 26
======== Position avec ApiAdresseGouv =========
Latitude : 47,800003 - Longitude : -3,26778 - HouseNumber :
======== Position avec ApiAdresseGouv =========
Latitude : 47,799853 - Longitude : -3,266956 - HouseNumber : 28
======== Position avec ApiAdresseGouv =========
Latitude : 47,800003 - Longitude : -3,26778 - HouseNumber :
======== Position avec ApiAdresseGouv =========
Latitude : 47,800003 - Longitude : -3,26778 - HouseNumber :
Comme on peut le constater les numéros 20,25,27,29,30 ne sont pas connus et c'est alors toujours la même position qui est renvoyée (Latitude : 47,800003 - Longitude : -3,26778) qui est une position dans la rue qui correspond au numéro 36. Par contre tous les numéros de ma rue, eux sont connus.
Ami calmant, J.P
 

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD
pourquoi es-tu passé à Nominatim par rapport à api-adresse.data.gouv.fr ?

Bonjour JP,
Non du tout, je cherchais la méthode la plus simple et plus proche par rapport à ce que tu avais proposé précédemment ;) ;)

Mais cette dernière version est mieux, je peux rentrer mon adresse correctement et c'est reconnue, à 100-120 mètres de chez moi mais c'est reconnue.

VB:
Sub PositionAvecApiAdresseGouv(adresse)
    Dim http As Object, res As Object, lat, lon, houseNum
    Const BaseURL = "https://api-adresse.data.gouv.fr/search/?q="
    Set http = CreateObject("MSXML2.XMLHTTP")
    URL = BaseURL & adresse
    On Error Resume Next
    With http
        .Open "GET", URL, False
        .Send
        Set res = JsonConverter.ParseJson(.responseText)
    End With
    Set http = Nothing
    lon = res("features")(1)("geometry")("coordinates")(1)
    lat = res("features")(1)("geometry")("coordinates")(2)
    houseNum = res("features")(1)("properties")("housenumber")
        With Worksheets("MaPosition")
        .cells(2, 4) = Info_adresse.TextBox1 & " " & Info_adresse.Cp & " " & Info_adresse.Cpville
        .cells(2, 2) = Info_adresse.Cpville
        .cells(2, 7) = lon
        .cells(2, 8) = lat
    End With
    Set res = Nothing
End Sub

Sub RecupPositionsJP()
Dim adresse As String
   adresse = Info_adresse.TextBox1 & " " & Info_adresse.Cp & " " & Info_adresse.Cpville
   PositionAvecApiAdresseGouv adresse
End Sub

Merci à toi,
Nico
 

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD
Plus que ma petite question sur le post


Je pense que je dois chercher trop compliqué, dans Feuil1(Calendrier)

VB:
        If Hour(Now) >= .Matin_Basse And Hour(Now) <= .Matin_Haute Then .Etatmare = "Etat de la marée ( Montante )"
        If Hour(Now) >= .Après_Basse And Hour(Now) <= .Après_Haute Then .Etatmare = "Etat de la marée ( Montante )"
        If Hour(Now) >= .Matin_Haute And Hour(Now) <= .Après_Basse Then .Etatmare = "Etat de la marée ( Descendante )"
        If Hour(Now) >= .Après_Haute Then .Etatmare = "Etat de la marée ( Descendante )"

Et puit j'arrête
Merci encore à tous d'avoir participé
Nicolas
 

dysorthographie

XLDnaute Accro
Bonjour,
Tu te complique pas la vie,tu te fourvois.
Hour(Now) c'est l'heure de maintenant que tu compares a une date qui peut avoir plusieurs jours d'écart avec la date du jour entre temps il peut y avoir plusieurs marées montentes ou descendentes.

Vu qu'il n'est question qu de d'ajourdui et des 10 prochain jours difficiles d'évaluer le sens des marées vue que l'info n'existe pas sur le site mais je peux tenter un calcule à l'import.

Deplus l'information sur les marées demande des villes choisi par l'utilisation et pour afficher l'information sur la feuille calendrier ça ce complique. Dans le formulaire si le calcul s'importe pourquoi pas

Si tu identifie l'heure de marré base elle est forcément montante vue qu'il n'y a pas d'information sur l'heure de mère etal base ou haut. Cette information est elle pertinente ?

If Matin_Basse_mer<Matin_Pleine_mer montentes else descendante
 
Dernière édition:

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD
Bonjour,
Tu te complique pas la vie,tu te fourvois.
Hour(Now) c'est l'heure de maintenant que tu compares a une date qui peut avoir plusieurs jours d'écart avec la date du jour entre temps il peut y avoir plusieurs marées montentes ou descendentes.

Vu qu'il n'est question qu de d'ajourdui et des 10 prochain jours difficiles d'évaluer le sens des marées vue que l'info n'existe pas sur le site mais je peux tenter un calcule à l'import.

Deplus l'information sur les marées demande des villes choisi par l'utilisation et pour afficher l'information sur la feuille calendrier ça ce complique. Dans le formulaire si le calcul s'importe pourquoi pas

Si tu identifie l'heure de marré base elle est forcément montante vue qu'il n'y a pas d'information sur l'heure de mère etal base ou haut. Cette information est elle pertinente ?

If Matin_Basse_mer<Matin_Pleine_mer montentes else descendante

Je laisse tomber l'idée alors :)
 

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD
Re, si c'est ça que tu as repris

VB:
        If Hour(Now) >= .Matin_Basse And Hour(Now) <= .Matin_Haute Then .Etatmare = "Etat de la marée ( Montante )"
        If Hour(Now) >= .Après_Basse And Hour(Now) <= .Après_Haute Then .Etatmare = "Etat de la marée ( Montante )"
        If Hour(Now) >= .Matin_Haute And Hour(Now) <= .Après_Basse Then .Etatmare = "Etat de la marée ( Descendante )"
        If Hour(Now) >= .Après_Haute And Hour(Now) <= .Matin_Basse Then .Etatmare = "Etat de la marée ( Descendante )"

C'est pas mieux apparemment.
ça matchait sur la dernière marée montante mais maintenant ça match plus, comme j'avais je crois sur la dernière marée du jour ça colle plus
Merci
 
Dernière édition:

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD
Le truc c'est que sur la dernière marée montante ça matchait, et j'ai recliqué dessus après 20h00 soit marée descendante mais match plus, c'est pour ça je pense que c'est sur la dernière marée du jour que ça bug comme ça me faisait. image si dessous à l'instanté

Capture d’écran 2024-09-07 213948.jpg
 

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD
Mois Coeff. Basse mer Pleine mer Coeff. Basse mer Pleine mer
Vendredi 13 septembre 34 06h49 00h40 36 1 9h44 13h30
2, 40 m 3,66 m 2,18 m 3,90 m

quel son tes conclusion pour le vendredi 13, ça porte malheur? 😈 👹

Oui mais ça c'est bon

Capture d’écran 2024-09-07 213948.jpg


C'est juste l'état que je souhaitai, quand tu clic sur ton jour savoir si elle monte ou descends au moment ou tu regarde (clic)
 

dysorthographie

XLDnaute Accro
en fait c'es juste le jour J je peux effectivement afficher l'information notes que si Basse mer> Pleine mer
on peut déterminer qu'elle descend donc on pourra déterminer uniquement pour le jour J l'information.

on est d'accord?

Maintenant on peut travailler sur la date sélectionné dans la feuille planning sans donner la possibilité de choisir une date dans le formulaire.

C'est la date du jour on affiche si maintenant la mère monte ou descend sans offre la possibilité de changer de date ?
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 093
Messages
2 116 136
Membres
112 667
dernier inscrit
foyoman