Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

modification et sauvegarde d'un fichier texte par macro

  • Initiateur de la discussion Initiateur de la discussion Vlan71
  • Date de début Date de début

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 !

Vlan71

XLDnaute Nouveau
Bonjour à tous !
Je viens vers vous chercher un peu d'aide si possible...
Je cherche à modifier depuis excel un fichier texte (séparateur virgule), mais je n'arrive pas à faire l'enregistrement correctement.
Plus concrètement, on peut simplifier ainsi : j'ai dans la colonne A le nom du fichier à ouvrir et modifier, et dans la colonne B le texte à remplacer. Tout fonctionne bien sauf l'enregistrement : aucune modification n'est sauvegardée !
En plus, j'aimerais ne pas avoir de fenêtres me demandant confirmation de l'écrasement du fichier... (au final, j'aurais 200 ou 300 fichiers à modifier.)

Voici le code que j'ai fait :

Sub ModifTrack()

Dim i As Integer
For i = 1 To 1

Dim NomFichier As String
ThisWorkbook.Sheets("Feuil1").Activate
NomFichier = ActiveSheet.Range("A" & i).Value

If NomFichier = "" Then
GoTo Suite
Else

Workbooks.OpenText Filename:=NomFichier, _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
, Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), _
Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2)), _
TrailingMinusNumbers:=True

nom = ActiveWorkbook.Name


ThisWorkbook.Activate
ThisWorkbook.Sheets("Feuil1").Activate
Range("B" & i).Select
Selection.Copy
Windows(nom).Activate
Range("B5").Select
ActiveSheet.Paste

ActiveWorkbook.SaveAs Filename:=nom, FileFormat:=xlCSV
ActiveWindow.Close

End If

Suite:
Next i

End Sub

Merci.
 
Re : modification et sauvegarde d'un fichier texte par macro

Bonjour,
Personne n'a d'idée ?
Dans le pire des cas, j'essayerais la solution d'enregistrer le fichier texte sous un autre nom, puis supprimer l'original et enfin de renommer le premier... Mais c'est un peu "bourrin" comme solution ! ;-)
Bonne journée.
 
Re : modification et sauvegarde d'un fichier texte par macro

Bonjour Vlan71 🙂,
Le problème est que ta macro a l'air correcte, donc difficile de dire pourquoi la correction n'est pas enregistrée...
As-tu exécuté le code en F8 pour vérifier que tout se déroulait correctement ?
Pour les messages d'alertes, tu peux les supprimer avec
Code:
Application.DisplayAlerts = False
Application.DisplayAlerts = True
Sinon, tu peux aussi effacer le fichier avec
Code:
Kill nom
mais attention, c'est définitif, donc à manier avec prudence...
Enfin, ce qui me gène, c'est que tu travailles avec des chemins relatifs, alors qu'il serait plus sûr, si tes fichiers CSV sont dans le même dossier que ton fichier XLS, d'utiliser
Code:
ThisWorkbook.Path
pour utiliser des chemins absolus.
Pour aller plus loin, il faudrait un échantillon du XLS et un CSV (sans données confidentielles)...
Bonne journée 😎
 
Re : modification et sauvegarde d'un fichier texte par macro

Bonsoir,

Merci pour ta réponse.

Après encore de nombreux essais, j'ai trouvé l'erreur ! Un problème de variable : la variable "nom" contenait le nom du fichier, mais pas le chemin... (qui était défini par "NomFichier") Je m'en suis aperçu dès que j'ai trouvé comment afficher les variables locales !

Et l'utilisation de Application.DisplayAlerts = False fonctionne bien : j'avais essayé, mais pas convenablement... (Je pensais qu'il n'aurait pas autorisé le remplacement du fichier existant, puisque par défaut c'est la réponse négative qui est sélectionnée...)

Merci du coup de pouce,
Vinc.
 
- 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
2
Affichages
924
Réponses
3
Affichages
773
Réponses
2
Affichages
1 K
Réponses
8
Affichages
1 K
Réponses
2
Affichages
744
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…