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
Je ne pourrai pas passer par cette solution, car je copie colle le dossier (avec tout les docs dedans) a plusieurs endroit , donc le chemin n'a jamais le même nom ( a un dossier pret)
 

ChTi160

XLDnaute Barbatruc
Re
on pourrait faire un truc du genre(non testé)
VB:
Sub test()
  Dim Wkb As Workbook, C As Range
  Dim Chemin$
  Dim FichierNum%
  Dim CheminFichier$
  Application.ScreenUpdating = False
Chemin = ThisWorkbook.Path
Set Wkb = Workbooks.Open(Chemin & "\FDS.xlsm") 'Ouvre le Fichier Source à voir
FichierNum = FreeFile
CheminFichier = Chemin & "\X.txt"
Open CheminFichier For Append As #FichierNum  'le Fichier sera créé si n’existe pas
With Wkb.Sheets("35x2") 'Avec la feuille
For Each C In .Range("F7", .Cells(.Rows.Count, "F").End(xlUp)) 'pour chaque cellules , on pourrait passer par un Tableau temporaire
If C <> "" Then 'si Non vide
Print #FichierNum, C
End If
Next C
Close #FichierNum
Wkb.Close False
Application.ScreenUpdating = True
End With
End Sub
j'ai modifié la présentation
jean marie
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re
j'ai fait un test
voir fichier joint
un dossier Test qui contient pour l'exemple les Fichiers Source (une seule Feuille 35x2 pour le test )et Cible .
on ouvre le fichier où se trouve le Code "TestCreationTxt" et "FDS"
on ouvre le premier "TestCreationTxt" puis on va lancer la procédure "Test" du Module 1 (alt+F11)
et on retourne voir dans le Dossier Test et dans X.txt
jean marie
 

Pièces jointes

  • Test.zip
    22.3 KB · Affichages: 15

Leché

XLDnaute Junior
Tout marche avec ton fichier. je viens de me rendre compte que les fichiers .txt des essais précédant étaient enfaîte enregistrer dans mes téléchargements..
Je vais garder ton code et essayer de l'adapter pour les deux onglets ^^

Merci beaucoup, ne reste pas loins, je pense avoir besoin d'aide encore ..
 

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…