Macro Excel 2007 : générer un fichier txt

koma_666 Messages postés 473 Statut Membre -  
 Utilisateur anonyme -
Bonjour à tous,

Je sollicite votre expertise pour la création d'une macro.
J'utilise excel pour générer des fichiers sql (milliers de requêtes, une ligne=une requête).

J'aurais besoin de votre aide pour 2 macro, assez similaires :

La 1ère qui copierait la valeur de toutes les cellules à partir de C3 (C3, C4, C5, ..., C65536) et les renseignerait dans un fichier .txt (ou .sql peu importe), en tenant compte de "une cellule excel = une ligne dans le fichier .txt).
exemple du contenu du fichier .txt :
valeur de la cellule C3
valeur de la cellule C4
valeur de la cellule C5
...etc

La 2nde est assez identique, mais plus complexe (pour moi en tout cas, peut être pas pour vous ^^).
Je veux faire la même chose, une cellule excel=une ligne dans le fichier .txt sauf que cette fois, je veux lire dans cet ordre : C3, D3, E3, C4, D4, E4, C5, D5, E5, etc.
exemple du contenu du fichier .txt :
valeur de la cellule C3
valeur de la cellule D3
valeur de la cellule E3
valeur de la cellule C4
valeur de la cellule D4
valeur de la cellule E4
...etc

Auriez-vous une idée pour faire ces macros ?

Je vous remercie par avance.

1 réponse

  1. Utilisateur anonyme
     
    Bonjour,

    Exemple type :

    Option Explicit
    '
    
    Const ctePourLecture = 1
    Const ctePourEcrire = 2
    Const ctePourAjouter = 8
    Const cteRapport1 = "Rapport1.txt"
    Const cteRapport2 = "Rapport2.txt"
    '
    
    Sub EcrireTexteMethode1()
    
        Dim objFSO As Object, objFichier As Object, varNomFic As String
        Dim Limite As Long, Boucle As Long
    
        Set objFSO = CreateObject("Scripting.FileSystemObject")
    
        ' Localisation du fichier à écrire
        varNomFic = ThisWorkbook.FullName
        varNomFic = Left(varNomFic, InStrRev(varNomFic, "\"))
        varNomFic = varNomFic & cteRapport1
    
        ' Valide si fichier existe
        If (objFSO.FileExists(varNomFic)) Then
            Set objFichier = objFSO.OpenTextFile(varNomFic, ctePourAjouter)
        Else
            Set objFichier = objFSO.CreateTextFile(varNomFic, ctePourEcrire)
        End If
    
        With Sheets("Feuil1")
            .Range("C3").Select
            Limite = .Range("C65536").End(xlUp).Row
            For Boucle = 0 To Limite
                objFichier.WriteLine ActiveCell.Offset(Boucle, 0).Value
            Next
        End With
    
        objFichier.Close
    
        Set objFichier = Nothing
        Set objFSO = Nothing
      
    End Sub
    '
    
    Sub EcrireTexteMethode2()
    
        Dim objFSO As Object, objFichier As Object, varNomFic As String
        Dim Limite As Long, Boucle As Long, Compteur As Long
    
        Set objFSO = CreateObject("Scripting.FileSystemObject")
    
        ' Localisation du fichier à écrire
        varNomFic = ThisWorkbook.FullName
        varNomFic = Left(varNomFic, InStrRev(varNomFic, "\"))
        varNomFic = varNomFic & cteRapport2
    
        ' Valide si fichier existe
        If (objFSO.FileExists(varNomFic)) Then
            Set objFichier = objFSO.OpenTextFile(varNomFic, ctePourAjouter)
        Else
            Set objFichier = objFSO.CreateTextFile(varNomFic, ctePourEcrire)
        End If
    
        With Sheets("Feuil1")
            .Range("C3").Select
            Limite = 2
            For Compteur = 0 To 2
                For Boucle = 0 To Limite
                    objFichier.WriteLine ActiveCell.Offset(Boucle, Compteur).Value
                Next
            Next
        End With
    
        objFichier.Close
    
        Set objFichier = Nothing
        Set objFSO = Nothing
      
    End Sub
    '
    


    Cdt

    Lupin
    0