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 :

extraire des donnees et generer des requetes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 60
    Par défaut extraire des donnees et generer des requetes
    Bonjour a tous,

    Afin d'automatiser une action, il faudrait developper une macro, à partir d'une feuille excel, où on recupere les donnees des trois premieres colonnes, pour les copier dans un fichier sql en les mettant en forme ligne par ligne et en y ajoutant des inserts, par exemple:
    A B C
    a b c
    a1 b1 c1
    . . .
    ... etc
    Il faudrait qu'on ait :
    insert into unetable values ('a','b','c');
    insert into unetable values ('a1','b1','c1');
    ...
    N'ayant aucunes connaissances de vba est-ce que l'un de vous aurait une idee, ou meme un bon tutoriel sur vba qui me donnerai les billes pour avancer ?


    Merci d'avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 557
    Par défaut
    tu peux faire ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub test()
        Dim i As Integer
        Dim fic As String
        fic = "U:\Test.sql"
        Open fic For Output As #1
        i = 1
        While Cells(i, 1).Value <> ""
            Print #1, "Insert into " & nomTable & " value ('" & Cells(i, 1).Value & "','" & Cells(i, 2).Value & "','"; Cells(i, 3).Value & "');"
            i = i + 1
        Wend
        Close #1
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 60
    Par défaut
    Merci, c'est exactement ce que je recherchais.
    Aussi une autre solution:
    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
     
    Sub extract_Info()
    Dim v_test As Integer
    Open "c:\test.sql" For Output As #1
    Open "c:\rej.sql" For Output As #2
    For v_test = 3 To 294
    If Range("A" & v_test).Font.Strikethrough = False Then
    Print #1, "insert into Une_table values ('" & Range("A" & v_test).Value & "','" & Range("B" & v_test).Value & "','" & Range("C" & v_test).Value & "');"
    Else
    Print #2, "ligne rejetee: '" & Range("A" & v_test).Value & "','" & Range("B" & v_test).Value & "','" & Range("C" & v_test).Value & "';"
    End If
    Next v_test
    Close #1
    Close #2
    End Sub

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

Discussions similaires

  1. recuperation de donnees pour generer des bulletins de note
    Par topvision dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 25/09/2014, 16h08
  2. Réponses: 10
    Dernier message: 11/05/2014, 15h19
  3. Réponses: 1
    Dernier message: 28/06/2012, 16h04
  4. Réponses: 1
    Dernier message: 27/04/2012, 16h41
  5. Réponses: 30
    Dernier message: 24/10/2011, 18h37

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