J'ai écrit une macro (avec mon niveau de débutante!) qui permet d'importer un fichier .txt, de le modifier et le copier dans un nouveau classeur et de l'enregistrer sous le nom d'une cellule en .txt
Mon problème est que quand j'ouvre le fichier .txt résultant de la macro, j'ai un message qui me demande que mon fichier est dans un format différent de celui de l'extension. En effet, il a le format d'un .xlsm.
Pourriez-vous m'aider pour que mon .txt créé soit un VRAI txt..
Voici le code :
Sub Import()
fileToOpen = Application _
.GetOpenFilename("Text Files (*txt.), *.txt")
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
& fileToOpen, Destination:=Range("A1"))
.RefreshStyle = xlInsertDeleteCells
.Refresh BackgroundQuery:=False
End With
End Sub
Sub Taqpro_File_Converter()
'Convertion en format Taqpro
Range("C10:G11").Select
Selection.ClearContents
Range("K12:O12").Select
Selection.ClearContents
Rows("7:7").Select
Selection.Delete Shift:=xlUp
End Sub
Sub sauvegarde()
'Création d 'un nouveau fichier excel
Set wk = Workbooks.Add(xlWBATWorksheet)
Set ws = ThisWorkbook.Worksheets(1)
ws.CutCopy After:=wk.Sheets(Sheets.Count)
Application.DisplayAlerts = False 'valide les messages d'alerte
Sheets(1).Delete
Application.DisplayAlerts = True
ActiveSheet.Name = Range("B2").Value
' Enregistrer sous
ActiveWorkbook.SaveAs Filename:=[B2].Value & ".txt"
End Sub
Merci pour votre aide.
A voir également:
[VB6 -> VBA]Enregistrer sous .txt ne fonctionne pas
Il faut que j'arrête le copier/coller sur gogol...
Poybi64:
C'est plus court:
Sub sauvegarde()
chemin = "C:\Users\sabine\Desktop" & Range("B2").Value & ".txt"
Set mafeuille = ActiveWorkbook.ActiveSheet
mafeuille.Copy
ActiveWorkbook.SaveAs Filename:=chemin, FileFormat:=xlText, CreateBackup:=False
End Sub
Bonjour,
Ma réponse sera proportionnelle au soin que tu as apporté au choix de la section :
Forum > Visual Basic 6
dans laquelle tu as ouvert cette discussion qui aurait dû l'être dans la section Langages dérivés > VBA L'utilisation toute bête de l'enregistreur de macro t'en fera connaître le code adéquat.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Excusez moi de ne pas savoir la différence entre VB6 et VBA et d'avoir publié mon message au mauvais endroit!
J'ai évidemment essayé de le faire à partir de l'enregistreur de macro mais ça ne marche pas!
D'accord,
la prochaine fois tu feras attention à la section qui concerne ton code, VBA n'est pas du tout VB6, même s'il y a des ressemblances.
Bon déjà tu sais mettre le code entre les balises, c'est déjà ça... et rien que pour ça je te fait un petit exemple.
Ce n'est surement pas la bonne méthode mais ça devrait te permettre de mieux comprendre.
Remplace ta sub sauvegarde par ça:
Sub sauvegarde()
Dim FL1 As Worksheet, Cell As Range, NoCol As Integer
Dim NoLig As Long, DerLig As Long, Var As Variant
'Instance de la feuille qui permet d'utiliser FL1 partout dans
'le code à la place du nom de la feuille
Set FL1 = Worksheets("Feuil1")
'Détermine la dernière ligne renseignée de la feuille de calculs
'(Voir explication sur l'utilisation de Split en bas de cette discussion)
DerLig = Split(FL1.UsedRange.Address, "$")(4)
'Fixe le N° de la colonne à lire
NoCol = 1 'colonne A donc
Dim CheminDuFichierTexte As String
'A MODIFIER !!!
'Chemin où le fichier devra être sauvegardé (dans ce cas sur le bureau de sabine)
CheminDuFichierTexte = "c:\users\sabine\desktop" & Range("B2").Value & ".txt"
Open CheminDuFichierTexte For Append As #1
'Utilisation du N° de ligne dans une boucle For ... Next
For NoLig = 1 To DerLig
Var = FL1.Cells(NoLig, NoCol)
'si la cellule n'est pas vide il écrit dans le fichier
If Len(Var) > 0 Then Print #1, Var
Next
Close #1
Set FL1 = Nothing
End Sub
Désolé pour toi.
Cela veut dire que tu n'as donc pas su non plus lire les options de la boîte de dialogue de "enregistrer sous" (exactement comme tu ne l'as pas fait en ce qui concerne le menu déroulant permettant de voir les rubriques possibles pour ouvrir une discussion), hein ...
Pour ton info (et bien que je n'avais aucun doute sur ce point) : je viens de faire le test ===>> l'enregistreur de macros m'a donné le code exact, sans faille ni problème.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Bonjour, acive,
Et sans autre code que celui de l'exportation (pas de boucle). Essaye
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Tu es gentil, acive...
Il pouvait quand-même se "fouler" un peu avec les réponses qui lui ont été données.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Nommer un fichier TXT ne suffit pas à définir son type.
Il faut :
- Enregistrer une macro pendant que tu fais manuellement une sauvegarde de la feuille avec un "Enregistrer sous" + le bon choix dans la liste déroulante pour le type de fichier.
- Soit regarder l'aide de la fonction Save dans laquelle le type du fichier peut être choisi : Voir l'aide.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
Bonjour à tous,
un grand merci Acive pour ton aide.Ca fonctionne très bien.
Ucfoutu, je ne sais pas ce que tu as contre moi mais je tiens juste à te préciser que le "il pouvait quand même se fouler" n'est pas de circonstance car pour commencer je suis une fille et ensuite, j'ai bataillé toute la journée pour essayer de résoudre mon problème.
On est pas tous tomber dedans quand on était petit et personnelement, je me débrouille comme je peux mais ça reste de chinois pour moi.
On est pas tous tomber dedans quand on était petit
Désolé, mais mettre en route l'enregistreur de macros, accomplir les gestes d'enregistrement sous, arrêter l'enregistreur et lire la macro générée ne nécessite absolument pas d'être "tombé dedans quand on était petit".
MAIS SURTOUT :
J'ai évidemment essayé de le faire à partir de l'enregistreur de macro mais ça ne marche pas!
Montrait vraiment, sans en plus préciser ni les gestes accomplis, ni ce "qui ne marchait pas"...
Pour ton info, voilà ce que t'auraient donné ces manoeuvres (qui sont les premières d'un débutant de chez débutant" :
Sub Macro1()
'
' Macro1 Macro
'
'
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\user\Mes documents\Classeur1.txt", FileFormat:= _
xlText, CreateBackup:=False
End Sub
Etrange, non ?
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Quant à l'emploi du "il" alors que tu es une fille ===>> c'est très simple : un demandeur est un demandeur et je ne vais pas ouvrir son profil pour savoir qui il/elle est, sauf raisons "particulières".
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Le but n'est pas de te faire "galérer", le but c'est que tu comprennes exactement ce que tu fais et si possible que tu comprennes les diverses façons de le faire.