Fichier Excel (macros) pour Importer les trajets de l'application MyPeugeot (Citroën & DS) + Export

Après avoir téléchargé au moins 4 versions, je viens (enfin) de tester le version 2.0 1

Super, ça a chargé mes 3400 trajets sans erreur en 5s (jusqu'au choix du VIN) puis 8s, sur un PC Win 7/office 2010 qui a un peu plus de 10 ans.

Bravo, beau boulot :bien:

Le temps de tester des imports successifs et je mettrai mes remarques.
 
  • J'aime
Reactions: W13

Puisque certain n'avait pas de problème de vitesse de transfert, j'ai refait un test ce matin en sauvegardant le fichier sur mon disque dur et là pas de problème de vitesse de transfert. Le problème de vitesse de transfert venait probablement du fait que j'ouvrais un fichier qui était sauvegardé dans onedrive. Le fait de le sauver sur le disque dur du pc a donc résolu la vitesse de transfert.
 
  • J'aime
Reactions: jbf69

Hello :coucou:

Pour le temps d’exécution : mes hypothèses sont qu’on importe davantage de données (qu’on écrit dans les cellules masquées, ne pas chercher à y toucher ;) sinon l'export va foirer), qu’on effectue un peu plus de traitement sur ces données importées (comme par exemple le remplacement des . en , et puis une conversion en Double d’un certain nombre de valeurs…)

Il y a aussi un certain nombre de tests effectués pour trouver la marque de la voiture, la gestion du Multi-VIN, connus, ajout des nouveaux trajets sur les VIN connus. Peut-être aussi que le passage au dictionnaire n’est pas aussi rapide qu’avant ne serait-ce que parce qu’il faut d’abord le remplir.

Bref, je pense que tout ce qu’on a fait en plus rallonge forcément le temps de traitement.

Pour être honnête j’ai moi aussi constaté un petit ralentissement, mais rien de franchement exceptionnel comme on l’avait avant d’utiliser Application.ScreenUpdating = False qui a quand même amélioré de façon très significative la rapidité.

Normalement on ne devrait pas trop rajouter de chose dans la fonction d’importation… Donc ça ne devrait pas trop ralentir davantage :)

Autre chose sur la taille du fichier : elle a augmenté récemment à cause des images de la feuille Tuto-Import :cool:

Voilà voilà.

PS : n'hésitez pas à venir en message privé nous donner des fichiers de données. Ca nous permet de voir les potentielles différences entre les différents fichiers, comme par exemple récemment avec les données de @Malouk.

PPS : je vais bosser dans les prochains jours sur une version 2.1 qui va permettre l'importation des données du fichier CSV. Mais je reprends le téléenseignement, donc je serais un peu moins libre :)

Très bonne journée à vous. :chinois:
 

Haaa, j'avais pas vu qu'il y avait d'autres messages sur la page suivante :pt1cable:

Après avoir téléchargé au moins 4 versions, je viens (enfin) de tester le version 2.0 1

Super, ça a chargé mes 3400 trajets sans erreur en 5s (jusqu'au choix du VIN) puis 8s, sur un PC Win 7/office 2010 qui a un peu plus de 10 ans.

Bravo, beau boulot :bien:

Le temps de tester des imports successifs et je mettrai mes remarques.
Nickel, on attend tes retours :)

Puisque certain n'avait pas de problème de vitesse de transfert, j'ai refait un test ce matin en sauvegardant le fichier sur mon disque dur et là pas de problème de vitesse de transfert. Le problème de vitesse de transfert venait probablement du fait que j'ouvrais un fichier qui était sauvegardé dans onedrive. Le fait de le sauver sur le disque dur du pc a donc résolu la vitesse de transfert.
Haaa, super :D
J'utilise OneDrive moi aussi, mes fichiers sont sur mon SSD, mais Excel considère qu'ils sont sur OneDrive aussi :pt1cable: enfin pour le fichier excel ouvert. Car pour le fichier de donnée importé, pas de soucis apparemment.
Content de voir que le soucis de rapidité d'exécution n'est pas si important :chinois::bien:
 

Petite mise à jour mineure -> V2.0.3, essentiellement cosmétique dans le JSON exporté, donc invisible à l'utilisation ;)
Vous verrez aussi que j'ai supprimé les feuilles Modèles qui ne serviront probablement plus.
Code:
'       - V 2.0.2 : Modifications de l'export JSON pour avoir les tableaux d'alertes vide écrit sur une seule ligne.
'                   Ajout de procédures pour neutraliser les erreurs de nombre écrit dans un format texte mais pas dans tous les classeurs,
'                       seulement lorsque celui là s'ouvre (Voir dans ThisWorkbook)
'       - V 2.0.3 : Correctif mineur sur l'utilisation de Application.ErrorCheckingOptions.NumberAsText = false dans ThisWorkbook

En ce qui concerne la neutralisation de l'affichage de l'erreur sur un nombre au format texte, vous pouvez me dire si vous sentez une différence d'affichage en terme de réactivité ?
J'avais l'impression que ça prenait un peu plus de temps à charger/afficher la feuille Trajets quand il y avait plein de ces petites erreurs affichées :
upload_2020-4-27_18-10-19.png

Normalement lorsque vous chargé le fichier excel ça désactive l'option de la capture suivante en sauvegardant au préalable l'état de l'option avant, puis à la fermeture, ça remet comme c'était auparavant. Idem lorsque vous changer de classeur ouvert et que vous y revenez dessus. Mais ça semble un peu capricieux...
upload_2020-4-27_18-11-45.png

edit : nouvelle version 2.0.3 qui corrige un petit soucis avec la valeur de l'option Application.ErrorCheckingOptions.NumberAsText.
Pour être tranquille, je fais écrire à l'ouverture du fichier excel la valeur de cette option dans la cellule Z1 de la feuille Accueil. N'effacer pas cette cellule ^^
 
Dernière édition:

Après avoir téléchargé au moins 4 versions, je viens (enfin) de tester le version 2.0 1

Super, ça a chargé mes 3400 trajets sans erreur en 5s (jusqu'au choix du VIN) puis 8s, sur un PC Win 7/office 2010 qui a un peu plus de 10 ans.

Bravo, beau boulot :bien:

Le temps de tester des imports successifs et je mettrai mes remarques.
Pour les imports successifs, faudra déjà que tu roules, et sorte donc du confinement
La question que je me pose est : est-ce que ta voiture n'aura pas souffert d'avoir été 2 mois sans rouler :lol:
 

Je crois que je ne le saurais jamais :cry:
Non seulement je vais faire des courses en voiture de temps en temps, mais en plus j'ai essayé mon chargeur acheté il y a un an et jamais utilisé pour cause de batterie toujours bien chargée :whistle:
Même si c'est inutile, c'était l'occasion ou jamais de l'utiliser.

Et j'ai de tas de .myp qui traînent, quand je pense à faire une sauvegarde. Alors je vais tricher et remonter dans le passé grâce à eux ;)
 


En ce dimanche soir, un petit teasing de la V2.1 en approche
Elle permettra de mettre à jour les adresses absentes (si on a les coordonnées exactes longitude et latitude) pour les trajets de départ, de fin ou de destination
Il faudra attendre la publication par @MilesTEG1 une fois les tests réalisés par quelques bêta testeurs (et si certains veulent être bêta testeurs ==> MP)
 

@Phil_cofl : :coucou: Pourrais-tu checker la conversation privée que j'ai créé sur le forum ? :cool:

La v2.1 arrive, mais a besoin de quelques finalisation pour être sur que tout est au point ;)
 

Voilà, j'ai ressorti mes vieux .myp (2017 pour certains).

L'import incrémental se passe parfaitement.
L'outil s'est bien adapté à mes fichiers parfois "bricolés" avec l'ajout de VIN bidons (que j'ai ignorés lors de l'importation)
:bien:, super boulot

En vrac, mes remarques, souvent cosmétiques :

  • Remplacer les valeurs 3,4028234663852886E38 dans les latitudes/longitudes par // comme dans la colonne conso. Ce sera plus lisible. Et les remettre lors de l'export ;)
  • Idem pour -1% dans le Niveau de carburant, pour le -1 dans l'Autonomie restante.
  • Utiliser les coordonnées/adresses d’arrivées du trajet précédent pour garnir celles du trajet courant si elles sont absentes et que le kilométrage de départ du trajet courant est égal à celui d'arrivée du précédent
  • Mettre en couleur ou signaler le premier trajet qui suit un ajout de carburant
  • Reconstruire un trajet unique manquant à partir des 2 trajets qui l'encadrent
 
Dernière édition:

Merci @janfi67 pour tes tests.
Par rapport à tes remarques :
* latitudes/longitudes : ok, nécessitera peut-être de stocker ces valeurs initiales qq part pour les remettre telles quelles lors de l'export, mais faisable
* niveau carburant : oui faisable
* utiliser coordonnée : voir pour la rq 5
* ok, as-tu une couleur préférentielle ? Nous avons prévu le fond Orange pour les adresses reconstituées (v 2.1 en cours), on prévoit des fonds rouge/vert pour la rq 5, mais on peut mettre une couleur de caractères sur qq infos du trajet qui suit un ajout de carburant (si on a cette info ajout)
* prévu dans la v3.0 qui suivra la 2.1 (et on prévoit dans une version ultérieure de pouvoir reconstruire plusieurs trajets d'affilée manquants, en se fixant une limite raisonnable, et à voir quelles valeurs on saurait reconstruire)
 

Salut @W13,
Perso, je marque la ligne entière du plein en bleu et gras. mais peu importe.
Pour moi, l'important c'est de retrouver facilement chaque plein pour faire des statistiques par plein/ajout de carburant.

Bravo pour le boulot.
 

L'import incrémental se passe parfaitement.
:coucou:

l'incrémentation se passait très très bien avec l'ancienne appli qui a servi de base à cette nlle version, donc on peut supposer que ça devait fonctionner sauf intervention.

j'ai eu comme toi dans le passé, une modification sur les horaires lors d'un trajet ( chgt d’heures que j'ai fait sur un long parcours), après modif manuelle de ce trajet, ça avait toujours été nickel jusqu'à la revente.

j'ai déjà fait 2 petites incrémentations , tout est nickel
 

En vrac, mes remarques, souvent cosmétiques :
  • Remplacer les valeurs 3,4028234663852886E38 dans les latitudes/longitudes par // comme dans la colonne conso. Ce sera plus lisible. Et les remettre lors de l'export ;)
  • Mettre en couleur ou signaler le premier trajet qui suit un ajout de carburant
Une v2.1 bêta 7 est en cours, avec les 2 demandes ci-dessus mises en place
En cours de test !
 
  • J'aime
Reactions: janfi67


Hello,
Après 2 mois, voilà une nouvelle version : la 2.1.0 (lien direct sur GitHub)
upload_2020-6-15_11-29-58.png
Code:
'       - V 2.1.0 : Mise en place des adresses manquantes depuis les coordonnées latitudes, longitudes
'                   Modification du code pour gérer quelques petites nouveautés, comme la mise en valeur des erreurs, des modifications faites aux données, de la détection d'un plein d'essence :
'                       -> Il a fallu trier les trajets avant d'importer les données dans le tableau.

La fonction de reconstitution d'adresses manquantes est limitée en utilisation, tant parce que ça prend du temps, que parce que ça n'est pas en illimité avec openstreetmap.
Si jamais vous rencontrez des problèmes avec cette fonctionnalités, merci de bien nous détailler l'erreur retournée :ange:

Voilà voilà
à vous de tester :)
 
  • J'aime
Reactions: janfi67


Merci pour le teasing ! Peugeot ne donne toujours pas de réponse sur le soucis d'export en myp incomplet et csv complet.
 

Voilà une nouvelle version : la 2.1.2 (lien direct sur GitHub)
Code:
' - V 2.1.1 : Petites correction dans la fonction d'export des données JSON
- V 2.1.2 : Ajout d'explications & légendes dans la feuille d'acceuil
 
Dernière édition:


Bonjour, ayant reçu ma voiture, j'ai voulu tester l'outil. Je suis sous MacOS 10.14.6, Excel 16.16.24.
Quand j'ouvre le fichier "", je reçois l'erreur:
Microsoft Visual Basic
Compile error in hidden module: 'Module_Macros_Principales'. This error commonly occurs when code is incompatible with the version, platform, or architecture of this application.

Je ne sais pas donner plus de précisions, le code est verrouillé par mot de passe.

J'ai lu qu'il fallait activer le "Microsoft Scripting Runtime", mais je ne vois pas où (oui, je suis une quiche en Excel).

Pouvez-vous m'aider ? Merci!
 

Bonsoir,
Sur macOS, c'est normal d'avoir ces erreurs, je n'ai pas encore fait ce qu'il fallait pour que ça fonctionne... Et je risque de ne pas pouvoir faire en sorte d'ouvrir directement le fichier comme sous windows...
Pour le moment, le fichier n'est compatible qu'avec windows...
 

Peut-être que si j'ai une liste des fonctions/procédures non disponibles sur Mac (vu qu'il n'y a visiblement pas "Microsoft Scripting Runtime" inclus sur Mac), je pourrais chercher s'il n'y a pas déjà des librairies open source de remplacement.
 

Oui tu peux, mais ça risque de compliquer : en effet, certaines parties du code utilisent des fonctions disponibles dans les .dll fournies par Microsoft, mais dans le monde Windows.
S'il existait la même chose en Open Source (j'ai un doute pour l'ensemble, mais admettons), il faudrait alors que toutes les personnes qui voudraient utiliser l'Excel soient obligées d'aller chercher qq chose ailleurs avant de pouvoir l'utiliser
Pas de bonne vraie solution finalement, en attendant de pouvoir modifier le code pour qu'il soit compatible Windows/Mac (il faudra que @MilesTEG1 ait le temps de le faire)
 

Oui, ça j'en suis conscient (et peut-être est-il possible d'intégrer du code open source dans le fichier excel sans devoir faire chercher chaque utilisateur ?).
Mais sans au préalable analyser la situation, on est dans le flou. Si c'est possible de fournir la liste de ces fonctions, ce serait un point de départ (le code est verrouillé, donc, je n'y ai pas accès, seuls vous deux pouvez fournir la liste des fonctions en question.
 

Hello :)
Me voilà revenu de vacances, je viens de voir vos messages.
Je pense que le soucis premier de macOS c'est l'absence de fonction d'ouverture de fichier pour en lire le contenu. Enfin je n'ai pas trouvé comment faire, car actuellement la macro utilise une fonction de windows présent dans une DLL windows comme l'indique très justement @W13.
@Mickey1962 : si tu veux, je peux t'ajouter aux bétas testeurs :) Va voir les invitations aux discussions ;)
 

J'espère que les vacances furent bénéfiques et "safe" :)

Je veux bien participer au beta testing, j'ai déjà un compte Github, je me signale dans la discussion adéquate :) Merci déjà, je veux faire de mon mieux !

Concernant l'ouverture de fichiers sur Mac, il y a sur ce site
https://warwick.ac.uk/fac/sci/systemsbiology/staff/dyer/software/excelvbafileopen/
Plusieurs informations relatives à de l'ouverture de fichiers. Evidemment, je ne sais pas si cela rentre dans le contexte de votre utilisation, mais ça peut être un point de départ.
Code:
And this is for macs:

The fileopen dialog box on a mac is [URL='https://msdn.microsoft.com/en-us/library/office/hh710200(v=office.14).aspx']best implemented with applescript[/URL]. This script catches errors within the Apple script and returns the error number as text (which always begins with a '-') allowing the calling code to decide what to do. This catches 'errors' such as clicking the cancel button and opening with a directory that does not exist. I was not able to identify detailed error info if I caught the error in the VBA.

Function BrowseMac(mypath As String) As String
  sMacScript = "set applescript's text item delimiters to "","" " & vbNewLine & _
    "try " & vbNewLine & _
    "set theFiles to (choose file " & _
    "with prompt ""Please select a file or files"" default location alias """ & _
    mypath & """ multiple selections allowed true) as string" & vbNewLine & _
    "set applescript's text item delimiters to """" " & vbNewLine & _
    "on error errStr number errorNumber" & vbNewLine & _
    "return errorNumber " & vbNewLine & _
    "end try " & vbNewLine & _
    "return theFiles"
  BrowseMac = MacScript(sMacScript)
End Function
[SIZE=5][B]Enabling file access on Excel 2016 for macs[/B][/SIZE]
In the 2016+ versions of Excel, VBA operates in a sandbox which means that explicit permission has to be granted if any files are to be opened. This is not required if the file has been identified with a appleScript 'fileopen dialog box. For other files this is granted using the GrantAccessToMultipleFiles method. This is wrapped in a method because if it is encountered in code prior to Excel 2016, or on a mac then it throws an untrappable error

Function grantFileAccess(filePermissionCandidates)
  grantFileAccess = GrantAccessToMultipleFiles(filePermissionCandidates) 'returns true if access granted, false otherwise_
End Function
[SIZE=5][B]Getting the directory from a full path[/B][/SIZE]
This gets the directory from a full path

Public Function GetDir(file) As String
  If Application.OperatingSystem Like "*Mac*" Then
    div = ":"
  Else
    div = "\"
  End If
  x = InStrRev(file, div)
  If x = 0 Then
    GetDir = file
  Else
    GetDir = Left(file, x)
  End If
End Function
[SIZE=5][B]Browsing for a filename[/B][/SIZE]
This the function called by the 'Browse' button, which calls the OS specific browse subroutine and handles the responses for the mac filedialog, and then goes into common code to see whether the returned value should be placed in the spreadsheet and the query tables loaded using Load_Click

Sub BrowseRoot_Click()
  Dim startDir As String
  startDir = GetDir(Range("RootFile").Value)
  If Application.OperatingSystem Like "*Mac*" Then
    Path = BrowseMac(startDir)
    If Path = "-43" Or Path = "-1700" Then
' Path not found or similar, Try again with the root documents folder
      startDir = MacScript("return (path to documents folder) as String")
      Path = BrowseMac(startDir)
      End If
    Else
      Path = BrowseWin(startDir)
    End If
' If the user has not cancelled, or there is not an error then
' record the result
  If Left(Path, 1) <> "-" Then
    Range("Rootfile") = Path
    Load_Click
    End If
End Sub

D'autres refs:
https://stackoverflow.com/questions/55115051/how-to-create-text-file-using-vba-for-excel-for-macos
https://social.msdn.microsoft.com/F...-within-a-macro-mac-excel-2016?forum=exceldev
https://www.rondebruin.nl/mac/mac015.htm
https://www.homeandlearn.org/open_a_text_file_in_vba.html
https://www.reddit.com/r/excel/comments/5pc78g/import_txt_file_into_sheet_with_vba_on_excel_for/
 
Dernière édition:
  • J'aime
Reactions: MilesTEG1

Merci pour les recherches, ça peut être intéressant, mais je n'ai pas encore creusé ce qui est présent dans les liens donnés.
 

Hello par ici :coucou:
Ca fait un petit moment qu'il n'y a pas eu de mise à jour :ange:
Aujourd'hui, @Mickey1962 , @W13 et moi-même nous vous présentons :
une nouvelle version : la 2.2 (lien direct sur GitHub)
Code:
' - V 2.1.1 : Petites correction dans la fonction d'export des données JSON
'       - V 2.2   : Ajout de la compatibilité macOS
'                   Fix sur la détermination d'adresse manquante
'                   Fix sur la détermination des % de carburant restant.

C'est la partie compatibilité macOS qui a demandé le plus de boulot, merci à @Mickey1962 pour son aide et son travail.

Voilà, si des utilisateurs de macOS pouvaient nous donner leur retour sur cette version ce serait super :bien:




(J'ai du faire plusieurs envois de cette version 2.2 à cause de petits oublis lors de la conversion Bêta -> Finale ^^, rien n'a changé dans le code si ce n'est des commentaires et le n° de version qui n'est plus avec la mention bêta.)
 
  • J'aime
Reactions: fous-des-peugeot