Requetes SQL tableau excel

  • Initiateur de la discussion Initiateur de la discussion plexy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

plexy

XLDnaute Nouveau
Bonjour, Je suis actuellement en stage de BTS 2ème année Informatique et voici mon problème.

Je possède un grand tableau excel avec des champs comme nom, prénom, adresse, département etc. Je voudrais à partir de ces champs pouvoir faire des requêtes SQL pour par exemple afficher (dans une nouvelle feuille) toutes les personnes du 31 qui s'appellent Marine.

Or, je ne sais pas si on peut utiliser les champs comme si c'était des tables (dans une base de données) (exemple: La colonne J contient le département et j'aimerais faire une requête du style SELECT * FROM (nom_de_ma_feuille) WHERE "colonne J"=31 AND prenom="Marine".

J'afficherais les résultats des requêtes dans une autre feuille excel du même classeur.


Je ne sais pas si on est obligé de passer par du VBA ou si il y a une autre possibilité. Et si c'est du VBA pourriez m'expliquer en gros ce que le code doit faire car je suis débutant en ce langage.

J'ai beau faire des recherches pendant je ne sais combien d'heures et je ne vois toujours pas de solutions. Je désespère à force ...


Je vous remercie par avance,
Alexandra
 
Dernière édition:
Re : Requetes SQL tableau excel

Voila une procédure à tester


Sub Requete_SQL()
'Recherche dans un fichier qui peut-être fermé
' Microsoft ActiveX DataObject doit être coché
'nommer la zone extraite ici matable

Application.ScreenUpdating = False
NOM="toto"
Dim rs As ADODB.Recordset
ChDir ActiveWorkbook.Path
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & ThisWorkbook.Path & "\" & "nom_fichier.xls"
req = "select * from matable, where mabd.nom = NOM"

Set rs = cnn.Execute(req)
Sheets("Resu").Select
Columns("B:E").ClearContents
[B2].CopyFromRecordset rs
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub
 
Re : Requetes SQL tableau excel

Bonjour

Pour info, la notion de requête est du domaine des bases de données.

Dans le tableur on utilise plutôt le filtre élaboré.

Mais comme le montrent les réponses, VBA permet de traiter Excel par requête.
 
Re : Requetes SQL tableau excel

Voila une procédure à tester


Sub Requete_SQL()
'Recherche dans un fichier qui peut-être fermé
' Microsoft ActiveX DataObject doit être coché
'nommer la zone extraite ici matable

Application.ScreenUpdating = False
NOM="toto"
Dim rs As ADODB.Recordset
ChDir ActiveWorkbook.Path
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & ThisWorkbook.Path & "\" & "nom_fichier.xls"
req = "select * from matable, where mabd.nom = NOM"

Set rs = cnn.Execute(req)
Sheets("Resu").Select
Columns("B:E").ClearContents
[B2].CopyFromRecordset rs
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub

Bonjour,

Ta fonction m'interesse moi et mon equipe! Ca ma lair tré top. mais j'ai une erreur erreur -2147217900 (80040e14) au niveau du Set rs = cnn.Execute(req). je ne sais pas à koi est ce dû?

Merci pour vos reponse
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
583
Retour