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 :

[VBA]SQL dans Excel manipulation de données


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
    Septembre 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 91
    Par défaut [VBA]SQL dans Excel manipulation de données
    Bonjour à tous,


    voilà j'ai besoin que dans la colonne AY soient concaténés les colonnes B et H j'ai donc fait ça :

    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
    30
    31
    32
    Private Sub ProcConcatenation()
     
    Application.ScreenUpdating = False
     
    'Déclaration de la connexion
    Dim Conn As ADODB.Connection
     
    Dim Fichier As String, Direction As String, rSQL As String
     
    Direction = ThisWorkbook.Path
    Fichier = "OUTIL HD TRAVAIL.xls"
     
        'Instanciation de la connexion
        Set Conn = New ADODB.Connection
     
        'Paramétrage & Ouverture
        With Conn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .ConnectionString = "Data Source=" & Direction & "\" & Fichier & _
        ";Extended Properties=Excel 8.0;"
        .Open
        End With
     
        'Insertion de la requête SQL dans rSQL
        rSQL = "SELECT [CDCOURTI]+[CDCYCREC] AS [cycle] FROM [A$]"
        Conn.Execute rSQL
     
    'Fermeture de la connexion
    Conn.Close
     
    Application.ScreenUpdating = True
    End Sub
    L'execution ne créé aucune erreur seulement rien ne se met dans la colonne cycle (alias AY)...
    Quelqu'un peut il m'aider ?

    Merci

  2. #2
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    J'ai 3 questions:
    1°) Où définis-tu les colonnes à utiliser (B, H et AT)
    2°) Où dis-tu que le résultat de ton SELECT doit être écrit quelquepart
    3°) C'est quoi, l'intérêt de faire du SQL? Une simple manipulation des données irait plus vite.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 91
    Par défaut
    Alors :

    1° SELECT [CDCOURTI]+[CDCYCREC] AS [cycle] FROM [A$]

    CDCOURTI ==> B
    CDCYCREC ==> H
    Cycle ==> AY

    2° Avec le AS non ?

    3° L'intérêt de faire du sql réside dans la rapidité d'exécution mais aussi dans le fait que je doive présenter ce projet à un jury et l'utilisation de sql dans ecel me semble interressant.

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir

    tu peux tester cette procédure ...;o)

    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
    Private Sub concatenationDeuxColonnesClasseurFerme()
    Dim Conn As ADODB.Connection
    Dim Fichier As String, Direction As String, rSQL As String
     
    Direction = ThisWorkbook.Path
    Fichier = "OUTIL HD TRAVAIL.xls"
     
    Application.ScreenUpdating = False
     
    Set Conn = New ADODB.Connection
    With Conn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .ConnectionString = "Data Source=" & Direction & "\" & Fichier & _
    ";Extended Properties=Excel 8.0;"
    .Open
    End With
     
    rSQL = "UPDATE [A$] SET [A$].cycle = [A$].CDCOURTI+[A$].[CDCYCREC]"
    Conn.Execute rSQL
     
    Conn.Close
    Application.ScreenUpdating = True
    End Sub


    bonne soiree
    michel

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 91
    Par défaut
    Merci pour ta réponse


    Mon classeur est ouvert celà a t-il une incidence sur la procédure ?

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir

    si ton classeur est ouvert ,je ne vois pas l'interet d'utiliser la methode ADO ...


    bonne soiree
    michel

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 91
    Par défaut
    l'intérêt est la rapidité d'exécution


    Sinon lorsque que je copie les données d'un recordset avec copyfromrecordset est il possible de coller dans des colonnes bien précises et non contigues ?

    Merci

  8. #8
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir

    en utilisant CopyFromRecordset je ne pense pas ( mias je peux me tromper)


    par contre tu peux boucler sur les champs de ton Recordset

    Rs.Fields....

    et transferer les données de chaque champ dans une colonne diffrente de ta feuille


    bonne soiree
    michel

Discussions similaires

  1. [XL-2003] Import de données SQL dans excel
    Par lulu3111 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/04/2009, 10h14
  2. macro vba directement dans excel
    Par fabnet dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/04/2008, 12h39
  3. langage SQL dans Excel
    Par Daranc dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/03/2008, 08h58
  4. [VBA]Menu dans excell
    Par DanielBo dans le forum Excel
    Réponses: 1
    Dernier message: 06/05/2007, 14h06
  5. [SQL] Importer un fichier .sql dans une base de données avec PHP
    Par budiste dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 23/06/2006, 14h15

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