[VB6 -> VBA]Enregistrer sous .txt ne fonctionne pas [Résolu]

Messages postés
11
Date d'inscription
lundi 5 septembre 2011
Dernière intervention
11 février 2015
- - Dernière réponse :  Utilisateur anonyme - 25 avril 2013 à 12:54
Bonjour,

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.
Afficher la suite 

Votre réponse

15 réponses

Meilleure réponse
3
Merci
Bonjour Ucfoutu,

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



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Utilisateur anonyme
0
Merci
Bonjour,
Ce que je vois déjà c'est que tu essayes d'enregistrer un classeur excel avec l'extension ".txt"
 ActiveWorkbook.SaveAs Filename:=[B2].Value & ".txt"


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Messages postés
11
Date d'inscription
lundi 5 septembre 2011
Dernière intervention
11 février 2015
0
Merci
oui tu as raison mais alors comment faire pour enregistrer mon classeur en .txt?
Commenter la réponse de poybi64
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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.
Commenter la réponse de ucfoutu
Messages postés
11
Date d'inscription
lundi 5 septembre 2011
Dernière intervention
11 février 2015
0
Merci
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!

Merci quand même pour votre aide.
Commenter la réponse de poybi64
0
Merci
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



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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.
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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.
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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.
Commenter la réponse de ucfoutu
0
Merci
Oups... c'était mon but avec ma boucle au début, et la j'ai oublié...


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
0
Merci
Salut

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)
Commenter la réponse de cs_Jack
Messages postés
11
Date d'inscription
lundi 5 septembre 2011
Dernière intervention
11 février 2015
0
Merci
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.

Merci encore Acive et jack
Commenter la réponse de poybi64
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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.
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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.
Commenter la réponse de ucfoutu
0
Merci
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.


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.