VBA ENREGISTRER UNE FEUILLE EN FORMAT TXT

jeremy6812

XLDnaute Nouveau
Bonjour a tous

Je n'arrive pas a faire une VBA pour copier enregistrer une feuille active dans un format texte en fonction d 'un nom choisi je bloque ca ne marche pas si quelqu'un pouvais me venir en aide :)

j'ai un classeur qui doit comporter 8 feuilles

( impossible de le mettre ici , je l'ai relier avec une base de donnée externe microsoft QUERY )
le nom de mon fichier doit etre en feuille 6 ( cells (2,6) )

la feuille que je veux copier et enregistrer en format txt est la feuille active ou feuille 8

je veux copier enregistrer la feuille 8, en suivant un chemin specifique et enregistrer cette copy en format texte ( txt )

je bloque c'est tous ce que je suis arrivé a faire mais ca ne fonctionne pas..( je suis nul mais j'essaye de me format... :) )
Si quelqu'un pouvait m'aider :)


Sub Macro8()

Dim NomFichier As String, Chemin As String

Chemin = "C:\CGRC\"

NomFichier = Feuil6.Cells(2, 6).Value

ActiveWorksheet.SaveCopyAs Chemin & NomFichier & ".txt"

FileFormat:=xlText, CreateBackup:=False

MsgBox (NomFichier)

End Sub
 

youky(BJ)

XLDnaute Barbatruc
Salut Jeremy,
A tester car je ne l'ai pas fait.
En principe c'est bon.
Attention à la fin de la ligne......& ".txt" il faut (virgule espace et tiret_bas),
chose manquante dans ta macro . . .
Bruno
VB:
Sub Macro8()
Dim NomFichier As String, Chemin As String
Chemin = "C:\CGRC\"
NomFichier = Feuil6.Cells(2, 6).Value
ActiveSheet.Copy 'on copie l'onglet dans un nouveau fichier
'on enregistre le fichier en txt
ActiveWorksheet.SaveAs Chemin & NomFichier & ".txt", _
FileFormat:=xlText, CreateBackup:=False
MsgBox (NomFichier)
End Sub
 

jeremy6812

XLDnaute Nouveau
bonjour et merci de ton aide , j'avais egalement essayer cette solution mais
ca ne fonctionne toujours pas

Erreur exécution objet requis


Je ne comprend vraiment pas....
 

Fichiers joints

youky(BJ)

XLDnaute Barbatruc
Yes me suis trompé,
C'est Actveworkbook au lieu Activeworksheets

ActiveWorkbook.SaveAs Chemin & NomFichier & ".txt", _
FileFormat:=xlText, CreateBackup:=False

Bruno
 

Jacky67

XLDnaute Accro
Bonjour,
Essaye comme ceci
Code:
Sub formatTXT()
Dim NomFichier As String, Chemin As String
Chemin = "C:\CGRC\"
NomFichier = Feuil6.Cells(2, 6).Value
Feuil8.Copy
ActiveWorkbook.SaveAs Chemin & NomFichier, FileFormat:=xlText
ActiveWorkbook.Close False
End Sub
 

youky(BJ)

XLDnaute Barbatruc
Bonjour aussi à Jacky,
En complément si le fichier existe déjà pour sortir du message sans bug
voici

Edit:OUPS !!!!avec essai le fichier créé n'ai pas supprimé à voir si Jérémy le souhaite.....
VB:
Sub Macro8()
Dim NomFichier As String, Chemin As String
Chemin = ThisWorkbook.Path & "\" '"C:\CGRC\"
NomFichier = Feuil6.Cells(2, 6).Value
ActiveSheet.Copy 'on copie l'onglet dans un nouveau fichier
'on enregistre le fichier en txt
On Error Resume Next ' on gère si le fichier existe déjà
ActiveWorkbook.SaveAs Chemin & NomFichier & ".txt", _
FileFormat:=xlText, CreateBackup:=False
If Err = 0 Then
MsgBox (NomFichier & ".txt a été créé !")
ActiveWorkbook.Close
End If
End Sub
Bruno
 
Dernière édition:

jeremy6812

XLDnaute Nouveau
Bonjour

Ca ne fonctionne pas , pour celle de jacky ( je te remercie de ton aide ) message d'erreur
et bruno la macro m'ouvre une copie de la page souhaiter en xls sans rien enregistrer en texte ,

vraiment je ne comprend rien la
 

Jacky67

XLDnaute Accro
Bonjour

Ca ne fonctionne pas , pour celle de jacky ( je te remercie de ton aide ) message d'erreur
et bruno la macro m'ouvre une copie de la page souhaiter en xls sans rien enregistrer en texte ,

vraiment je ne comprend rien la
Re..
Hello youky(BJ)
Quel est ce message d'erreur ?
Sur quelle ligne ?
Essaie la PJ
**Feuil6 et Feuil8 sont les "CodeName" des feuilles correspondantes
***Si cela devait ne pas fonctionner, mettre le classeur en ligne
 

Fichiers joints

Dernière édition:

youky(BJ)

XLDnaute Barbatruc
Re avec rectif.
VB:
Sub Macro8()
Dim NomFichier As String, Chemin As String
Chemin = "C:\CGRC\"
NomFichier = Feuil6.Cells(2, 6).Value
ActiveSheet.Copy 'on copie l'onglet dans un nouveau fichier
'on enregistre le fichier en txt
onglet = ActiveWorkbook.Name
On Error Resume Next ' on gère si le fichier existe déjà
ActiveWorkbook.SaveAs Chemin & NomFichier & ".txt", _
FileFormat:=xlText, CreateBackup:=False
If Err = 0 Then
MsgBox (NomFichier & ".txt a été créé !")
ActiveWorkbook.Close
Else
Workbooks(onglet).Close False
End If
End Sub
Bruno
 

Discussions similaires


Haut Bas