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

Fermé
koma_666 Messages postés 429 Date d'inscription mardi 26 juin 2007 Statut Membre Dernière intervention 9 mai 2016 - 13 sept. 2012 à 12:03
 Utilisateur anonyme - 13 sept. 2012 à 13:43
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.

A voir également:

1 réponse

Utilisateur anonyme
13 sept. 2012 à 13:43
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