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 pour simuler des requètes sql


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Par défaut Vba pour simuler des requètes sql
    Bonjour,

    Je suis sur un nouveau poste, je n'ai pas de systeme de gestion de bases de données, j'ai une myriade de fichiers excel.
    Il va falloir les articuler entre eux pour en tirer des synthèses, par exemple.
    je voulais savoir si en les remaniant pour en faire des fichiers comme si je voulais construire une base de donnée, (mais seulement en apparence j'ai que excel), il me serait peut-être alors possible de construire un programme vba qui amènerait le même résultat qu'un traitement par requêtes.
    Il va de soi que le parefeu de l'entreprise empêche tout téléchargement de bases gratuite sur internet et que le serveur interdit toute installation de quoique que ce soit à moins d'en faire la demande en douze exemplaires deux ans à l'avance !

    merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Octobre 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 46
    Par défaut
    Bonjour,

    Un fichier Excel pour s'ouvrir comme une base de données.
    Chaque feuille est considérée comme une table et chaque colonne comme un champ.
    On peut donc faire des requêtes SQL sur les fichiers Excel.

    Pour un fichier .xlsx ou .xlsm, le string de connexion est de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Provider=Microsoft.ACE.OLEDB.12.0;Data Source=MON_FICHIER_EXCEL;Extended Properties="Excel 12.0';
    Pour un fichier .xls, ce string est de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Provider=Microsoft.Jet.OLEDB.4.0;;Data Source=MON_FICHIER_EXCEL;Extended Properties="Excel 8.0";"
    Dans tous les cas, vous pouvez spécifier pour le "Extended Properties" :

    ou
    selon que les colonnes aient ou non une ligne de titre, et

    ou
    selon que les données dans la colonne soient ou non de même type.

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Par défaut
    merci pour votre réponse, je vais me lancer, j'espère m'en tirer au mieux
    a+

    Bonjour,

    Je me suis lancé un peu vite, pensant compléter avec de l'info google, mais j'ai systématiquement droit à des systèmes de bases de données pour la source.
    Comme vous l'avez compris je veux de excel à excel
    donc si j'ai une feuille contenant une "table" (ou comme je suis sous excel un tableau) avec nom, prenom,age, à quoi pourrait ressembler le script pour récupérer sur une autre feuille toutes les lignes dont l'age est > 18 (par exemple).
    Je sais qu'il ne faut pas demander des choses toutes faites, mais là, je pense que je ne vais pas y arriver tout seul.

    Merci

  4. #4
    Membre éprouvé
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Octobre 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 46
    Par défaut
    Bonjour,

    Pour vous aider, je vous joint un fichier source vba qui gère les fichiers excel comme bases de données.
    Et voici comment l'utiliser


    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
     
      Dim strRequete As String
      Dim gudtBDD    As udtBaseDeDonnees
     
      gudtBDD.nomComplet = "Le chemin et le nom de votre fichier excel"
      gudtBDD.nomBase = "Le nom du fichier excel"
      gudtBaseFT.option = "HDR=NO;IMEX=1;"
     
      If blnConnecterBDD(gudtBDD) Then
        ' 
        ' Créez votre requête. Dans Fn n représente le numéro de la colonne
        '
        strRequete = "SELECT * FROM ['nom de la feuille'$]"
        strRequete = strRequete & " WHERE [Fn]>18;"
        If blnExecuterRequete(strRequete, gudtBDD) Then
          Do While Not gudtBDD.enregistrement.EOF
            '
            ' Traitez le résultat
            '
            gudtBDD.enregistrement.MoveNext
          Loop
        Call blnDeconnecterBDD(gudtBDD)
      End If
    N'oubliez pas de bien activer les références comme indiqué en en-tête du fichier joint.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Par défaut
    Bonjour,

    Merci beaucoup,
    j'ai enfin une méthode intelligente pour exploiter excel comme je souhaitais
    Au revoir

    Philippe.

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

Discussions similaires

  1. [AC-2007] Comment imbriquer des requêtes SQL en VBA
    Par rch05 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 09/03/2011, 21h18
  2. Réponses: 1
    Dernier message: 26/03/2008, 20h09
  3. Aide pour des requêtes SQL
    Par psgkiki dans le forum Langage SQL
    Réponses: 4
    Dernier message: 06/01/2008, 15h06
  4. Regex pour nettoyer des requêtes SQL
    Par gaboo_bl dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 26/03/2007, 12h03
  5. Recherche ibrairie pour éxécuter des requêtes SQL via C++
    Par daemon dans le forum Choisir un environnement de développement
    Réponses: 5
    Dernier message: 14/06/2004, 10h28

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