Enregistrer feuilles en txt spéarateur tab

Résolu
Ofely26 Messages postés 6 Statut Membre -  
Ofely26 Messages postés 6 Statut Membre -
Bonjour,

Je sais que beaucoup de post parle de cela. Mais je n'arrive pas à terminer cette macro....
J'ai un classeur excel (.xls) sur lequel j'ai une macro me permettant de faire des formules, du tri, etc.
A la fin, elle me permet d'enregistrer automatiquement toutes les feuilles de ce classeur dans des classeurs séparés au format .xls sur mon ordinateur.
Par contre, moi j'aimerai qu'elle me l'enregistre au format .txt avec séparateur de tabulation. J'ai essayé plusieurs macros proposés sur internet... mais j'ai toujours un message d'erreur...

Voici la fin de ma macro me permettant l'enregistrement :

' MACRO ENREGISTRER ONGLETS DANS FICHIERS A PART

For Each Feuille In ActiveWorkbook.Sheets
Feuille.Copy
With ActiveWorkbook
.Title = Feuille.Name
.Subject = Feuille.Name
.SaveAs Filename:=Feuille.Name + ".xls"
End With

Next

End Sub

1 réponse

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    comme ceci:

    Dim Feuille As Worksheet
    For Each Feuille In ActiveWorkbook.Sheets
    Feuille.Copy
    With ActiveWorkbook
    .Title = Feuille.Name
    .Subject = Feuille.Name
     .SaveAs Filename:=ThisWorkbook.Path & "\" & Feuille.Name & ".txt", _
            FileFormat:=xlText, CreateBackup:=False
    End With
    ActiveWorkbook.Close
    Next


    0
    1. Ofely26 Messages postés 6 Statut Membre 1
       
      Merci beaucoup !

      Par contre, maintenant au moment de l'enregistrement il m'ouvre des fenetres me demandant si je suis sûre de bien vouloir enregistrer les modifications et me demande l'emplacement. Comment automatiser cela aussi....?
      Car avant, cela fonctionnait, est-ce parce qu'on a rajouté "ActiveWorkbook.Close" ?
      0
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Comme ceci:

      pour le format xls c'est ce code:

      Dim Feuille As Worksheet
      Application.DisplayAlerts = False
      For Each Feuille In ActiveWorkbook.Sheets
      Feuille.Copy
      With ActiveWorkbook
      .Title = Feuille.Name
      .Subject = Feuille.Name
       .SaveAs Filename:=ThisWorkbook.Path & "\" & Feuille.Name & ".txt", _
              FileFormat:=xlText, CreateBackup:=False
       .SaveAs Filename:=ThisWorkbook.Path & "\" & Feuille.Name & ".xls", _
              FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
              ReadOnlyRecommended:=False, CreateBackup:=False
               .Close
      End With
      Next
      Application.DisplayAlerts = True


      pour le format xlsx c'est ce code:

      Dim Feuille As Worksheet
      Application.DisplayAlerts = False
      For Each Feuille In ActiveWorkbook.Sheets
      Feuille.Copy
      With ActiveWorkbook
      .Title = Feuille.Name
      .Subject = Feuille.Name
       .SaveAs Filename:=ThisWorkbook.Path & "\" & Feuille.Name & ".txt", _
              FileFormat:=xlText, CreateBackup:=False
      .SaveAs Filename:=ThisWorkbook.Path & "\" & Feuille.Name & ".xlsx", _
              FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
      .Close
      End With
      Next
      Application.DisplayAlerts = True
      


      @+ Le Pivert
      0
    3. Ofely26 Messages postés 6 Statut Membre 1
       
      Merci !!
      0