XL 2010 Macro et fichier .csv

papypog

XLDnaute Occasionnel
Bonjour la communauté,

Je viens vers vous pour m’aider à résoudre un problème qui me prend la tête depuis quelques jours.

Afin d’équilibrer les phases d’une installation électrique en triphasé je relève chaque jour les données transmises par un éco-compteur.

Ce dernier génère deux fichiers au format .csv

- echantillonage_jour_22.10.2021.csv

- echantillonage_heure_22.10.2021.csv

La dernière partie du nom change donc tous les jours.

Le format csv ne permettant pas de faire des calculs j’ai réalisé une macro qui dans le répertoire de téléchargement, renomme les fichiers en j.csv et h.csv puis converti ces fichiers du format texte au format numérique afin de permettre les calculs.

Une seconde macro met en forme les documents (suppression des colonnes inutiles, formules diverses).

Le problème se situe au niveau de la première macro, tout fonctionne parfaitement sur le poste en W7 et Excel 2010 alors que sur le poste en W10 et Excel 2010 le code ne fonctionne parfaitement que pour le fichier « jour », le fichier « heure » est lui amputé d’un nombre important de lignes.

Que ce soit pour le fichier « jour » et le fichier « heure » les deux codes sont strictement identiques (hormis les variables évidemment).

Voici le code :
VB:
Sub heur()

Dim Chemin As String
Dim Part As String
Dim Chem2 As String
Chemin = "C:\Users\ANDRE\Downloads\" & "\"
Part = "echantillonage_heure_"
Chem2 = Dir(Chemin & "\" & Part & "*.csv")
Workbooks.Open Filename:=Chemin & "\" & Dir(Chemin & "\" & Part & "*.csv"), Local:=True
ChDir "C:\Users\ANDRE\Downloads"
    ActiveWorkbook.SaveAs Filename:="C:\Users\ANDRE\Downloads\h.csv", FileFormat _
        :=xlCSV, CreateBackup:=False

    'ChDir "E:\"
    'Workbooks.Open Filename:="E:\heure.xlsm"
   
    'Application.Run "heure.xlsm!heur"
End Sub

Si j'effectue le "renommage" manuel du fichier dans le répertoire tout se passe bien, c'est la fonction "Enregistrer sous" qui semble poser problème, mais pourquoi uniquement sur W10 et uniquement pour le fichier "Heure".
Si une bonne âme voulait bien me tirer d'affaire avant que je perde le peu de cheveux qui me reste. Peut-être en renommant par macro le fichier au lieu de l'ouvrir puis de "l'enregistrer sous" tout cela avec des mots simples car je suis loin d'être un aigle en VBA.
D'avance MERCI à ceux qui auront la patience de me lire jusqu'au bout.
 

papypog

XLDnaute Occasionnel
Bonjour,

Merci de vous être penché sur mon problème qui finalement n'en était pas un, quand je disais que la nuit portait conseil.
En effet, une chose que je n'avais pas tentée, utiliser sous W10 le fichier téléchargé sous W7 et là, Bingo aucun problème, le fichier W10 devait être corrompu.
Mais cela n'explique pas pourquoi la commande "anciennom as nouveaunom" ne fonctionne pas mais dans mon code il suffit d'enregistrer sous .xlsx au lieu de .csv
@cp4 les fichiers à renommer n'étaient pas ouverts

Merci pour votre aide et bon we
 
Dernière édition:

papypog

XLDnaute Occasionnel
Re,
C'est bon, je viens de trouver l'erreur bloquante, c'est la définition de l'AncienNom qui n'était pas bonne, ci-dessous la syntaxe à utiliser. Les 3 antislashs venaient de là.
Encore MERCI pour l'aide.
VB:
Sub test()
Dim Chemin$, Part$, Chem2$, AncienNom$, NouveauNom$
Chemin = "C:\Users\ANDRE\Downloads\" & "\"
Part = "echantillonage_heure_"
Chem2 = Dir(Chemin & "\" & Part & "*.csv")
AncienNom = Chemin & "\" & Chem2
NouveauNom = "C:\Users\ANDRE\Downloads\h.csv"
Name AncienNom As NouveauNom
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 848
dernier inscrit
Djigbenou