Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Macro pour remplacer les tabulations dans un fichier texte (bloc note).
Débutant, j'ai trouvé comment ouvrir depuis Excel le BLOC NOTE et y recopier des données venant de ma feuille Excel.
Mon problème : le texte copier (colonnes issues de ma feuille Excel contient des tabulations (séparateurs de cellules)
Il me faut supprimer ces tabulations (fonction CRTL-H)
Disposeriez des commandes en VBA me permettant d'intégrer cette tâche dans ma macro.
Merci infiniment (c'est l'ultime) problème que je rencontre pour un programme sur lequel je travaille depuis plusieurs jours !!
Car il te suffit de créer le code adéquat avec l'enregistreur de macros
PS: Ce serait plus simple pour faire des tests, si tu joignais dans ta discussion le code actuel de ta macro et un extrait simplifié et anonymisé de ton fichier texte.
Re : Macro pour remplacer les tabulations dans un fichier texte (bloc note).
Merci de votre attention :
Sub Copie_Bloc_Note()
' Copie la colonne 1 (colonne de titre) et chaque colonne contenant des données dans X fichier
' (Un fichier pour chaque colonne)
Dim i As Long, nwbk As Workbook, chemin$
chemin = "C:\Temp\"
Application.ScreenUpdating = False
For i = 2 To Columns.Count
With ThisWorkbook.ActiveSheet
If .Cells(1, i) <> "" Then
' Tant que la première cellule d'une colonne est remplie
Set nwbk = Workbooks.Add(-4167)
.Range("A1:A20").Copy nwbk.Sheets(1).[A1]
" le libellé des 20 champs
.Cells(1, i).Resize(.Cells(.Rows.Count, i).End(xlUp).Row).Copy nwbk.Sheets(1).[B1]
Application.DisplayAlerts = False
'Evite message de confirmation
On retrouve donc dans chaque fichier la colonne titre plus chacune des colonnes de données.
Dans le fichier texte les données sont séparées par une tabulation je souhaite supprimer toutes les tabulations avant de sauvegarder les fichiers.
Re : Macro pour remplacer les tabulations dans un fichier texte (bloc note).
Bonsoir,
Pardon pour ces précisions peu claires :
L'exemple joint est surement plus parlant.
Je souhaite donc supprimer les tabulations qui se retrouvent entre ces balises xml de chacun des fichiers générés.
Merci infiniment pour votre aide.
Re : Macro pour remplacer les tabulations dans un fichier texte (bloc note).
Bonsoir
Essaies la macro PMain pour voir.
(C'est une macro qui lance la macro XL2TXT qui est une macro avec paramètres)
PS: N'hésites pas si tu as des questions
VB:
Sub PMain()
XL2TXT "C:\Temp\", "testTXT.txt", xlCSV
End Sub
VB:
Private Sub XL2TXT(chemin$, NFic$, x As XlFileFormat)
Dim nwbk As Workbook
With Application
.ScreenUpdating = 0
ThisWorkbook.Sheets("F").Copy
Set nwbk = ActiveWorkbook
With nwbk.Sheets(1)
.Columns("A:A").Delete: .Rows("10:65536").Clear: .Range("HH:IV").Clear
End With
.DisplayAlerts = 0
nwbk.SaveAs chemin & NFic, x, 0: nwbk.Close -1
.DisplayAlerts = -1
End With
End Sub
Re : Macro pour remplacer les tabulations dans un fichier texte (bloc note).
De plus, je me rends compte que non content d'avoir des tabulations parasites, j'ai également des guillemets qui apparaissent.
Cette macro étant normalement prévue pour une intégration d'un fichier excel dans une base de données qui impose comme protocole un enregistrement des fiches au format xml avec un fichier par enregistrement.
Cf mon exemple joint qui a évolué !
En tout cas merci et vu l'heure, plutôt à demain....
Re : Macro pour remplacer les tabulations dans un fichier texte (bloc note).
C'est ce que j'avais fait, je pensais avoir fait une erreur car à l'éxécution j'ai un message d'erreur "type d'ActiveX non gérer par Visual Basic (je suis sur une version 97 d'Excel, ceci explique peut être cela !
Re : Macro pour remplacer les tabulations dans un fichier texte (bloc note).
Excuse-moi pour l'absence (ma femme m'a poussé au lit hier soir !)
lorsque je lance la macro Pmain
La compilation bute sur la ligne : Private Sub XL2TXT(chemin$, NFic$, x As XlFileFormat)
Le message d'erreur apparaissant est :
"Erreur compilation : Type ActiveX non géré dans Visual basic
Je rappelle ma problématique :
Il me faut générer un fichier txt pour chaque enregistrement (chaque colonne) auquel j'affecte l'extension xml. Ce qui me permet d'obtenir un fichier au format xml.
Mais sur le texte je souhaite supprimer : les délimitants de colonnes (tabulations) et certaines guillemets parasites qui apparaissent cf l'exemple :
En fait il me faudrait un code permettant dans le bloc note :
- la suppression de toutes les tabulations.
- le remplacement des chaînes de caractères :
>" en >
"" en "
Cela par une commande dans ma macro à ce niveau :
Code:
If .Cells(4, i) <> "" Then
Set nwbk = Workbooks.Add(-4167)
.Range("A2:A13").Copy nwbk.Sheets(1).[A1]
.Cells(2, i).Resize(.Cells(.Rows.Count, i).End(xlUp).Row).Copy nwbk.Sheets(1).[B1]
.Range("A14:A24").Copy nwbk.Sheets(1).[C1]
' ********** COMMANDE DE SUPPRESSION DES CARACTERES PARASITES ********
Application.DisplayAlerts = False
' Evite message de demande de confirmation
nwbk.SaveAs chemin & .Cells(1, i).Text & ".xml", xlText
nwbk.Close
'nwbk.SaveAs chemin & .Cells(1, i).Text & ".txt", xlText, False
'nwbk.Close True
Application.DisplayAlerts = True
End If
End With
Set nwbk = Nothing
Next i
End Sub
Avec l'utilisation de word je réglerais le problème avec les macros de word, mais je n'arrive pas sur ma macro de départ à reproduire la création des fichiers avec l'extension xml.
Avec ma version de VBA, pour ouvrir Word il me faut utiliser une commande du type :
Re : Macro pour remplacer les tabulations dans un fichier texte (bloc note).
Bonjour
Essayes avec cette seule macro alors Sub XL2TXTII()
Dim chemin As String Dim NFic As String
chemin="C:\Temp\"
NFic="FicTest.txt" Dim nwbk As Workbook With Application
.ScreenUpdating = 0
ThisWorkbook.Sheets("F").Copy Set nwbk = ActiveWorkbook With nwbk.Sheets(1)
.Columns("A:A").Delete: .Rows("10:65536").Clear: .Range("HH:IV").Clear EndWith
.DisplayAlerts = 0
nwbk.SaveAs chemin & NFic, 21, 0
nwbk.Close -1
.DisplayAlerts = -1 EndWith EndSub
PS: Auparavant tu supprimes le code de mon précédent message
et tu copies le code dans le chasseur que tu as joint (c'est avec celui-ci que j'ai testé et cela fonctionne)
Et il faut qu'il existe un dossier nommé Tempsur le disque C
Re : Macro pour remplacer les tabulations dans un fichier texte (bloc note).
Oui la macro fonctionne maintenant dans mon environnement, mais les tabulations sont toujours présentes.
Je laisse tomber cette voie pour une utilisation de word au lieu du bloc note d'autant que j'ai ce problème de guillemets parasite lorsqu'une cellule contient des valeurs du type <var nom="Correspondant"> se transforme curieusement en "<var nom=""Correspondant""> (c'est à dire 3 " nouvelles qui viennent de nul part !!!
En tout cas merci beaucoup.
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.