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

[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 .

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 , 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
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…