IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

modification dans un fichier texte


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Par défaut modification dans un fichier texte
    Bonjour.

    Je suis en train d'essayer de faire une macro excel qui me permettrait de "transformer" un fichier excel (avec un tableau à 3 colonnes à l'interieur) en un fichier texte avec des lignes de commandes SQL (des inserts)

    Pour ce faire, j'ai d'abord fait une macro qui transforme le fichier excel courant en un fichier .csv
    Mon objectif maintenant, c'est d'editer le contenu de ce fichier .csv pour en faire des commandes SQL.

    par exemple mon Tableau excel à 3 colonnes devient en csv:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Abdelhamid,26,Maroc
    Nicolas,33,France
    George,34,USA
    Et je voudrais qu'il devienne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    INSERT INTO NOM_TABLE
    VALUES(Abdelhamid,26,Maroc)
     
    INSERT INTO NOM_TABLE
    VALUES(Nicolas,33,France)
     
    INSERT INTO NOM_TABLE
    VALUES(George,34,USA)
    Voila où j'en suis pour l'instant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Sub xls_to_sql()
        Dim rep As String
        Dim OldName, NewName
        Dim monclasseur As Workbook
        Set monclasseur = ActiveWorkbook
     
        chemin_complet_new = "C:\Test1.csv"
     
           monclasseur.SaveAs Filename:= _
           chemin_complet_new, FileFormat:=xlCSV, _
                CreateBackup:=False
     
        Open "C:\Test1.csv" For Input As #1
        While EOF(1) = False
            'je ne sais quoi faire...
     
        Wend
        Close #1
     
    'A la fin, il faudrait renommer le fichier en inserts.sql par exemple
     
    End Sub
    Voilà. J'imagine que ca ne doit pas etre tres difficile à faire, mais je vous avoue que je ne m'y connais pas vraiment en VBA, et je manque de temps...

  2. #2
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    Bonjour, je vois que tu te compliques la vie trop.
    Pourquoi passer par un CSV ?

    voici un exemple simple qui pourrait répondre à ton besoin:

    Tu remarqueras que pour cet exemple j'ai considérer 20 lignes et trois colonnes à partir de la colonne A.

    Tu pourras adapter à ton cas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Sub abdelhamidem()
     
     
    Set FSys = CreateObject("Scripting.FileSystemObject")
    Set MonFichierSQL = FSys.CreateTextFile("c:\Inserts.sql")   ''Renseigner le chemin
     
        With MonFichierSQL
     
            FirstRow = 1   'Ta première ligne,  tu adaptes à ton besoin
            LastRow = 20    'Ta dernière ligne
            FirstColumn = 1
     
     
            For i = FirstRow To LastRow
     
                .writeLine "INSERT INTO NOM_TABLE VALUES(" & Cells(i, FirstColumn) & _
                    "," & Cells(i, FirstColumn).Offset(0, 1) & _
                    "," & Cells(i, FirstColumn).Offset(0, 2) & ")"
     
             Next i
     
    End With
     
    Msg = "Écriture réussie dans Inserts.Sql"
    MsgBox (Msg)
     
     
    End Sub

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Par défaut
    C'est Parfait! Merci beaucoup ...

    Pour le sport (ou la rigolade) voila ce que j'ai fait en attendant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
     
    Sub xls_to_sql()
        Dim rep As String
        Dim OldName, NewName
        Dim monclasseur As Workbook
        Set monclasseur = ActiveWorkbook
     
        chemin_complet_new = "C:\Test1.csv"
     
           monclasseur.SaveAs Filename:= _
           chemin_complet_new, FileFormat:=xlCSV, _
                CreateBackup:=False
     
        Open "C:\Test1.csv" For Input As #1
        Open "C:\inserts.sql" For Append As #2
     
        While EOF(1) = False
            Print #2, "INSERT INTO NOM_TABLE(Date, Libelle, Montant) VALUES("
            Line Input #1, ContenuLigne
            Print #2, ContenuLigne
            Print #2, ")"
        Wend
     
        Print #2, "COMMIT;"
     
        Close #1
        Close #2
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modification de variables dans un fichier texte
    Par Nightfever18 dans le forum Langage
    Réponses: 2
    Dernier message: 29/01/2015, 15h25
  2. Réponses: 15
    Dernier message: 24/02/2013, 09h56
  3. [PHP 5.2] Suppression et modification dans un fichier texte
    Par Pape Moussa dans le forum Langage
    Réponses: 1
    Dernier message: 18/01/2010, 09h31
  4. Probleme modification dans un fichier text
    Par zanouba_girl dans le forum Langage
    Réponses: 4
    Dernier message: 10/12/2009, 11h29
  5. [LG]rechercher dans un fichier texte
    Par BadFox dans le forum Langage
    Réponses: 11
    Dernier message: 01/12/2003, 15h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo