[VBA] Generer des .txt a partir de excel

che0po

XLDnaute Nouveau
Bonjour,

malgré le faite que je suis programmeur , je n'ai jamais programmé en VBA et le temps me manque pour pouvoir l'apprendre :/

donc mon probleme c'est de reussir a generer plusieurs fichiers .txt a partir d'excel . j'ai essayé de rechercher dans le forum mais je n'ai pas trouvé exactement ce que je cherche . Il faut que je cree des hosts files


Donc disont que ma page exel ressemple à:

................Colone A .....Colone B .....Colone C........Colone D ......Colone E...... Colone F

Ligne 1 ............AAA ....adresse IP1 ....BBB ..............adresse IP2 .....CCC ........Adress IP3
Ligne 2
Ligne 3
.
.
.

je doit generer des fichier text qui ont pour nom : AAA.txt

//et a l'interieur de chaque fichier generé:

adresse IP1
adresse IP2 BBB
adresse IP3 CCC


et ceci pour chaque ligne ... le fait que j'ai 3243 ligne me decourage à le faire à la main

Merci pour votre aide ! :)
 
Dernière édition:

che0po

XLDnaute Nouveau
Re : [VBA] Generer des .txt a partir de excel

voici un code que j'ai chifoné avec une base prise sur le net . votre avis ?

EDIT!

Code:
Option Explicit
'

Sub CreerFichierTexte()

    Const ForReading = 1, ForWriting = 2, ForAppending = 8

    Dim NouveauTexte, Valeur As String
    Dim Limite, Boucle As Integer
    Dim TEXTE As String
    
    Dim oFS, NouveauFichier As Object
        For Boucle = 1 To 20
            NouveauTexte = ThisWorkbook.Path & "\" & Cells(Boucle, 1) & ".txt"
            Set oFS = CreateObject("Scripting.FileSystemObject")
            Set NouveauFichier = oFS.CreateTextFile(NouveauTexte, ForWriting)
            
            Limite = Range("A271").End(xlUp).Row
            TEXTE = ""
            TEXTE = TEXTE & Worksheets(1).Cells(Boucle, 2) & Chr(9) & Cells(Boucle, 14).Value & Chr(13) & Cells(Boucle, 3).Value & Chr(9) & Cells(Boucle, 4).Value & Chr(13) & Cells(Boucle, 5).Value & Chr(9) & Cells(Boucle, 6).Value & Chr(13)
            If (IsEmpty(Cells(7, Boucle).Value) = False) Then
                TEXTE = TEXTE & Cells(Boucle, 7).Value & Chr(9) & Cells(Boucle, 8).Value & Chr(13)
            End If
            If (IsEmpty(Cells(Boucle, 9).Value) = False) Then
                TEXTE = TEXTE & Cells(Boucle, 9).Value & Chr(9) & Cells(Boucle, 10).Value & Chr(13)
            End If
            If (IsEmpty(Cells(Boucle, 11).Value) = False) Then
                TEXTE = TEXTE & Cells(Boucle, 11).Value & Chr(9) & Cells(Boucle, 12).Value
            End If
            NouveauFichier.WriteLine (TEXTE)
            NouveauFichier.Close
        Next Boucle
        
End Sub
'
 
Dernière édition:

che0po

XLDnaute Nouveau
Re : [VBA] Generer des .txt a partir de excel

Bon ben , merci pour "vos reponses " :(

au moins cela ma permit d'aprendre a faire du VBA tout seul comme un grand . :p

Je met mon code final ici , ca va surement aider des gens:)

Code:
Option Explicit
'

Sub CreerFichierTexte()

    Const ForReading = 1, ForWriting = 2, ForAppending = 8

    Dim NouveauTexte, Valeur As String
    Dim Limite, Boucle As Integer
    Dim TEXTE As String
    
    Dim oFS, NouveauFichier As Object
        For Boucle = 2 To 270
            NouveauTexte = ThisWorkbook.Path & "\" & Cells(Boucle, 1) & ".txt"
            Set oFS = CreateObject("Scripting.FileSystemObject")
            Set NouveauFichier = oFS.CreateTextFile(NouveauTexte, ForWriting)
        
            Limite = Range("A271").End(xlUp).Row
            TEXTE = ""
            TEXTE = TEXTE & Cells(Boucle, 3) & Chr(13) & Cells(Boucle, 4).Value & Chr(9) & Cells(Boucle, 5).Value & Chr(13) & Cells(Boucle, 6).Value & Chr(9) & Cells(Boucle, 7).Value & Chr(13)
            'MsgBox ("---" & Cells(Boucle, 8) & "--")
            'If (IsEmpty(Trim(Cells(Boucle, 8).Value)) Or Not IsNull(Trim(Cells(Boucle, 8).Value) Or Not Feuil1.Cells(Boucle, 8) = "") Then
            If (Feuil1.Cells(Boucle, 8) <> "") Then
                TEXTE = TEXTE & Cells(Boucle, 8).Value & Chr(9) & Cells(Boucle, 9).Value & Chr(13)
            End If
            If (IsEmpty(Cells(Boucle, 10).Value) = False) Then
                TEXTE = TEXTE & Cells(Boucle, 10).Value & Chr(9) & Cells(Boucle, 11).Value & Chr(13)
            End If
            If (IsEmpty(Cells(Boucle, 12).Value) = False) Then
                TEXTE = TEXTE & Cells(Boucle, 12).Value & Chr(9) & Cells(Boucle, 13).Value
            End If
            NouveauFichier.WriteLine (TEXTE)
            NouveauFichier.Close
        Next Boucle
        
End Sub
'
 

Numidia

XLDnaute Occasionnel
Re : [VBA] Generer des .txt a partir de excel

Private Sub CommandButton1_Click()
Dim Plage As Variant
Dim i As Long
Dim j As Byte
Dim Resultat As String
Dim Tableau As Variant
Set Plage = Sheets("Feuil1").UsedRange.Cells
Tableau = Plage
Open "C:\Users\Numidia\Desktop\AAA.txt" For Output As #1
For i = 1 To UBound(Tableau, 1)
For j = 1 To UBound(Tableau, 2)
Resultat = Resultat & Tableau(i, j) & ";" 'adaptez le separateur
Next
Resultat = Left(Resultat, Len(Resultat) - 1)
Print #1, Resultat
Resultat = ""
Next
Close #1
End Sub

ESSAYER DE VOIR AVEC CE CODE , il vous copie les données du excel dans un fichier text (voirle chemin) sans l'ouvrir
j'espere que ca va vous aider un peu
 

che0po

XLDnaute Nouveau
Re : [VBA] Generer des .txt a partir de excel

merci pour votre réponse Numidia ,

mais comme vous pouvez le voir ,je suis l'auteur des 4 premier messages :D , et j'ai donc réussi ce que je devais faire et mis le code pour le partage !

PS : pour comprendre mon code , j'ai des champs G , H , I , J avec respectivement des IP et des noms qui ne sont pas tjr présents ... delà viens le test
 

Statistiques des forums

Discussions
312 167
Messages
2 085 901
Membres
103 027
dernier inscrit
Dridi Ahmed