Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Macro export vers .txt

Leché

XLDnaute Junior
Bonjour,

Je souhaiterai mettre en place une macro permettant de faire ceci :

J’ai un fichier Excel nommée « FDS », dans ce fichier il y a plusieurs onglets dont :
  • Un onglet nommé « X »
  • Un onglet nommé « Y »
Pour ces deux onglets, je souhaiterai exporter dans deux fichiers .txt différents , (nommé de la même façon que les noms des onglets) l’ensemble des valeurs de la colonne F (A partir de la ligne 7 jusqu’à la dernière ligne non-vide)

Soit un fichier .txt nommé Y, reprenant l’ensemble des valeurs de la colonne F de l’onglet Y (à partir de la 7eme ligne)

Et un fichier .txt nommé X, reprenant l’ensemble des valeurs de la colonne F de l’onglet X (à partir de la 7eme ligne)

Cette macro sera lancée depuis un fichier Excel « vierge » (juste ouvert pour lancer la macro) ciblant donc le fichier excel « FDS » (qui sera dans le même dossier)
Les deux fichier .txt seront enregistrer dans le même fichier que FDS et le fichier vierge.

Si vous avez un bout de code pour commencer

Merci d'avance pour vos retour,

Bonne journée
 
Solution
VB:
Sub test()
With Workbooks.Open(ThisWorkbook.Path & "\FDS.xlsm")  'Ouvre le Fichier Source à voir
   FichierTxt .Sheets("30x2"), ThisWorkbook.Path & "\30x2.txt"
   FichierTxt .Sheets("35x2"), ThisWorkbook.Path & "\35x2.txt"
   .Close
End With
End Sub
Sub FichierTxt(Onglet As Worksheet, Txt As String)
Dim F As Long
F = FreeFile
  With Onglet
    Enrgt = ""
    For Each C In .Range("F7", .Cells(.Rows.Count, "F").End(xlUp))
     If Not C.EntireRow.Hidden And CStr(C) <> "" Then
        If Enrgt <> "" Then Enrgt = Enrgt & vbCrLf
            Enrgt = Enrgt & C.Value
            End If
    Next C
  End With
Open Txt For Append As #F
    Print #F, Enrgt
Close #F
End Sub

Leché

XLDnaute Junior
Vous m'avez un peu perdu niveau code a vrai dire ^^
J'ai ceci :

VB:
Sub test()
  Dim Enrgt As String, Wbk As Workbook, C As Range
  Close #1
  Set Wbk = Workbooks.Open("FDS.xlsm")
  With Sheets("35x2")
    Enrgt = ""
    For Each C In .Range("F7", .Cells(.Rows.Count, "F").End(xlUp))
        If Enrgt <> "" Then Enrgt = Enrgt & vbCrLf
        Enrgt = Enrgt & C.Value
    Next C
    Open "X.txt" For Output As #1
        Print #1, Enrgt
   Close #1
End With

 With Sheets("30x2")
    Enrgt = ""
    For Each C In .Range("F7", .Cells(.Rows.Count, "F").End(xlUp))
        If Enrgt <> "" Then Enrgt = Enrgt & vbCrLf
        Enrgt = Enrgt & C.Value
    Next C
    Open "Y.txt" For Output As #1
        Print #1, Enrgt
   Close #1
End With
End Sub
 

ChTi160

XLDnaute Barbatruc
Re
Donc a partir d'un fichier tu ouvres un fichier nommé "FDS" (WkB) et a partir de ses deux feuilles tu récupères les données dans deux fichiers texte.
WkB.Sheets("35x2") etc
tu parles de fichier xlsx et xlsm lors de l'ouverture....
rajouter peut être le chemin complet
VB:
Chemin=ThisWorkbook.Path &"\"
Puis Wirkbooks.Open (Chemin & "FDS.xlsx ou xlsm")
A voir pour l'extension

Jean marie
 
Dernière édition:

dysorthographie

XLDnaute Accro
Bonjour,
L'extension doit correspondre au format d'enregistrement du fichier !

Tu ne peux pas modifier l'extension à ta guise si tu as enregistré ton fichier en tant que classeur avec macros l'extension est XLSM! Il ne suffit pas de modifier l'extension de XLSX en XLSM pour que le classeur fonctionne !
 

Discussions similaires

Réponses
4
Affichages
450
Réponses
3
Affichages
405
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…