Exporter des données d'excel vers un autre fichier en ".txt"

Fermé
Nona - 2 mars 2015 à 11:42
 Nona - 3 mars 2015 à 14:13
Bonjour,
j'aimerais exporter des colonnes qui ne sont pas côte à côte vers un fichier ".txt". Le problème qui se pose est que mon code doit être global, c'est-à-dire applicable à un autre fichier qui contient un nombre différent de colonnes. Je veux toujours exporter la première et l'avant dernière colonne. Voici mon code:
Sub generer_nom_fichier()

Dim Export As String
Dim confirmation As Long

Select Case Application.Caller
Case "Bouton 3"
nom_fichier = "tgt_P_MGN.txt" 'nomme le fichier généré
confirmation = MsgBox("Do you really want to push the information for UPDATE?", vbYesNo)
If confirmation = 6 Then
GenererFichierPlatSLT (nom_fichier)
Else
MsgBox "Operation Cancelled by User"
End If
nom_fichier = "tgt_P_MGN.end" 'nomme le 2ème fichier généré
confirmation = MsgBox("Do you really want to push the information for UPDATE?", vbYesNo)
If confirmation = 6 Then
GenererFichierPlatSLT (nom_fichier)
Else
MsgBox "Operation Cancelled by User"
End If
End Select


End Sub
Function GenererFichierPlatSLT(nom_fichier As String)

Dim file_directory As String
Dim ligne_tableau As String
Dim nbreColTableau As Integer
Dim nbreLignesTableau As Integer
Dim nbreLignes As Integer

'Récupération du chemin de destination du fichier plat (situé dans la feuille "parameterExport")
For Each Feuille In ActiveWorkbook.Sheets

If Feuille.Name = "parameterExport" Then
Feuille.Activate
Range("D2:D5000").Select
file_directory = ActiveCell.Value
Exit For

Range("D655363").End(xlUp).Rows.Activate

For l = 1 To nbreLignes
If ActiveCell.Value <> "" Then 'permet de passer en revue les différents fichiers de parameterExport
Range("D2:D5000").Copy Destination:=ActiveCell.Offset(1, 0) 'permet de passer à la ligne suivante

End If
Next l

End If
Next Feuille
ActiveWorkbook.Worksheets(6).Activate
ActiveSheet.Range("A1:Z5000").Select
'nbreColTableau = 2
'nbreColTableau = Columns(1).Copy
nbreLignesTableau = 5000

'Récupération et écriture dans le fichier nom_fichier.txt de chaque ligne du tableau
Open file_directory & nom_fichier For Output As #1
MsgBox (Range("R_MAT_GRP_LV2").Columns.Count)
n = Range("R_MAT_GRP_LV2").Columns.Count
If n <> "" Then

For i = 1 To nbreLignesTableau
If Cells(i, n) = "UPDATE" Then 'on sélectionne la troisième colonne
For j = 1 To nbreColTableau
If j < nbreColTableau Then
ligne_tableau = ligne_tableau & Cells(i, j).Value & ";" 'on sélectionne la ligne où il y a UPDATE
Else
ligne_tableau = ligne_tableau & Cells(i, j).Value 'on enlève la virgule pour la dernière ligne du tableau
End If
Next j



Print #1, ligne_tableau 'on copie dans le dossier Export2
ligne_tableau = ""
End If
Next i
Close #1
End If

MsgBox ("File " & file_directory & nom_fichier & " successfully created")
End Function




J'ai un problème pour exporter les colonnes que je veux et pour variabiliser mon code à n'importe quel fichier ayant un nombre de colonnes différents.

Merci d'avance
A voir également:

5 réponses

Please, aidez-moi, cela fait plusieurs jours que je suis bloquée.
1
Bonjour
alor la si tu ne donne pas un example de ton fichier excel et ton txt dur
A voir comment faire
A+
Maurice
1
N'étant pas membre je ne parviens pas à rajouter une pièce jointe. Je ne sais pas pourquoi
0
Bonjour
Ci-dessous La procédure
Pour transmettre un fichier, il faut passer par un site de pièce jointe tel que cjoint.com
Va sur ce site : http://cjoint.com
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse
A+
Maurice
0
http://cjoint.com/?0CcwLDyjbSe

Merci Maurice et voici le fichier.
0
Bonjour
je ne maitrise pas du tout l'anglais HI
mes voila 2 macro TxT
1 Cumul sur le meme fichier
2 Creation Fichier

Sub CumulTxt()
Dim Plage As Range
Chemin = ActiveWorkbook.Path & "\"
Non = ActiveSheet.Name & "Tes"
Ext = ".txt"
Fichier = Non & Ext
CheminFiche = Chemin & "\" & Fichier
Sep = ";"
Set Plage = Range("A2:F" & Cells(Rows.Count, 1).End(xlUp).Row)
   Set Plage = Range(Cells(1, 1), Cells(Nlig, 5))
      Open CheminFiche For Append As #1
         For Each Lig In Plage.Rows
            Tmp = ""
               For Each Cel In Lig.Cells
                  Tmp = Tmp & CStr(Cel.Text) & Sep
               Next
            Print #1, Tmp
         Next
      Close
   Set Plage = Nothing
MsgBox "Votre fichier TXT a été Transferer avec succès!"
End Sub

Sub CreationTxt()
Dim Plage As Range
Non = ActiveSheet.Name & "Tes"
Ext = ".txt"
Fichier = Non & Ext
CheminFiche = Chemin & "\" & Fichier
Sep = ";"
Nlig = Cells(Rows.Count, 1).End(xlUp).Row
   Set Plage = Range("A1:F" & Cells(Rows.Count, 1).End(xlUp).Row)
      Open CheminFiche For Output As #1
         For Each Lig In Plage.Rows
            Tmp = ""
               For Each Cel In Lig.Cells
                  Tmp = Tmp & CStr(Cel.Text) & Sep
               Next
            Print #1, Tmp
         Next
      Close
   Set Plage = Nothing
MsgBox "Votre fichier TXT a été créé avec succès!"
End Sub

A toi de choisir
A+
Maurice
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour
si jais bien compris
http://cjoint.com/?3CdooFdTteJ

A+
Maurice
0
Merci pour votre aide Maurice, je suis en train de regarder.
0