Bonjour,
J'aimerais récupérer des données présentes dans certaines cellules Excel dans ma base Access (pour certaines cellules également). Comment puis-je m'y prendre?
Merci d'avance!
Bonjour,
J'aimerais récupérer des données présentes dans certaines cellules Excel dans ma base Access (pour certaines cellules également). Comment puis-je m'y prendre?
Merci d'avance!
Bonjour,
La commande la plus simple à partir de VBA Access pour interagir avec Excel est TransferSpreadsheet. Si vous arrivez à bien la manipuler et bien paramétrer le fichier Excel, vous devrez arrivez à vos fins.
Sinon, en un peu plus poussé, vous avez ici un tuto pour piloter un fichier excel à partir d'Access.
Et en résumé les commandes usuelles explicitées dans le FAQ.
Bonne continuation
Merci.
Est-il possible de le faire cellule par cellule avec la commande transferspreadsheet?
Bonjour,
Avec la bibliothèque Microsoft Excel (menu outils/références dans l'éditeur VBA), on peut faire à peu près tout ce qu'on veut.
Voir le tuto
Bonjour,
J'ai lu ce tuto mais je n'y ai pas trouvé la réponse à ma question. Je débute en VBA
C'est donc le moment d'apprendre
Voici encore un peu d'aide dans la FAQ
Merci, j'ai déjà lu tout ça hier et n'ai rien trouvé. Je veux bien apprendre, mais sans trouver les réponses, ça va être difficile
La réponse tu l'as eue : C'est possible !
Par programmation VBA, tu ouvres le fichier Excel tel que c'est expliqué dans les tutos (qui sont clairs et dont le code est largement commenté pour faciliter la compréhension).
Ensuite tu récupères les données des cellules qui t'intéresses, tu construis une requête d'insertion à partir de ces données pour les insérer dans la table Access de ton choix...Et le tour est joué. Y'a vraiment rien de bien compliqué si tu te bases sur les tutos...
Moi aussi je suis parti de zéro en m'inscrivant sur ce site et j'ai (presque) tout appris ici, dans la FAQ et les tutos.
Maintenant si vraiment tu ne connais rien au VBA, vas faire un tour par ici
Vu que j'ai eu un petit quart d'heure de libre, voici un exemple de code qui fait ce que j'ai dit plus haut. Je viens de tester et ça marche au poil
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
33
34
35
36
37
38
39
40
41
42
43
44
45 Private Sub monBouton_Click() On Error GoTo Err_monBouton_Click Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim maVariable1 As String Dim maVariable2 As String Dim strSQL As String ' Instanciation d'une session Excel en mode invisible Set xlApp = CreateObject("Excel.Application") xlApp.Visible = False ' Ouverture du classeur Set xlBook = xlApp.Workbooks.Open("D:\EXCEL\monClasseur.xls") ' Récupération de la feuille Feuil1 Set xlSheet = xlBook.Sheets("Feuil1") ' ===== Deux manières de récupérer des valeurs dans une cellule ===== ' Récupération de la valeur de la case qui se trouve à la 3ème ligne et la 2ème colonne maVariable1 = xlSheet.Cells(3, 2) ' Récupération de la valeur de la case qui se trouve en C3 maVariable2 = xlSheet.Range("C3") ' Construction et exécution de la requête d'insertion strSQL = "INSERT INTO maTable (monChamp1,monChamp2) VALUES ('" & maVariable1 & "' , '" & maVariable2 & "')" CurrentDb.Execute strSQL Exit_monBouton_Click: ' Code de fermeture xlBook.Save xlBook.Close xlApp.Quit Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing Exit Sub Err_monBouton_Click: ' Gestion des erreurs Select Case Err.Number Case Else MsgBox "Error n°" & Err.Number & vbCrLf & "Description : " & Err.Description & vbCrLf & "Source : " & Err.Source, vbCritical, "Error" End Select Resume Exit_monBouton_Click End Sub
Bonjour,
Si je peux me permettre un petit conseil à alineleu :
1- n'ayez pas peur de vous tromper quand vous essayez les exercices dans les tutos.
2- essayez de simuler "hors informatique" l'action que vous voulez faire.
Ici, on va vous donner des solutions sur les outils et les moyens de faire, mais tant que vous même avez du mal à comprendre le but (ou expliciter le souci), toutes les explications techniques ne voudront rien dire.
Bonne continuation
Bonjour,
J'ai essayé ce code:
Ca ne fonctionne pas. Il y a une erreur sur : Dim xlApp As Excel.Application
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
33
34
35
36
37
38
39
40
41
42
43 Option Compare Database Private Sub monBouton_Click() On Error GoTo Err_monBouton_Click Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim maVariable1 As String Dim maVariable2 As String Dim strSQL As String ' Instanciation d'une session Excel en mode invisible Set xlApp = CreateObject("Excel.Application") xlApp.Visible = False ' Ouverture du classeur Set xlBook = xlApp.Workbooks.Open("C:\Users\RRFH3332\Documents\Tableau de bord\Exports CLIP Pour Access.xls") ' Récupération de la feuille Indicateurs Set xlSheet = xlBook.Sheets("Indicateurs") ' Récupération de la valeur de la case qui se trouve en C3 maVariable2 = xlSheet.Range("A2:P29") ' Construction et exécution de la requête d'insertion strSQL = "INSERT INTO Export_CLIP (N°conseiller:Complétude_V1) VALUES ('" & maVariable1 & "' , '" & maVariable2 & "')" CurrentDb.Execute strSQL Exit_monBouton_Click: ' Code de fermeture xlBook.Save xlBook.Close xlApp.Quit Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing Exit Sub Err_monBouton_Click: ' Gestion des erreurs Select Case Err.Number Case Else MsgBox "Error n°" & Err.Number & vbCrLf & "Description : " & Err.Description & vbCrLf & "Source : " & Err.Source, vbCritical, "Error" End Select Resume Exit_monBouton_Click End Sub
Je ne comprend pas pourquoi?
A mon avis, tu as oublié d'activer la référence "Microsoft Excel X.X Object Library" où X.X est le numéro de version.
ALT+F11 pour entrer dans le VBE puis menu Outils/Références.
Et, un petit conseil : Quand tu as une erreur, indiques au moins le message, ça peut aider
Merci,
PS: j'avais indiqué le message d'erreur: "Il y a une erreur sur : Dim xlApp As Excel.Application" (C'est tout ce qu'Access m'avait indiqué )
Bonjour,
J'ai réussi à faire ce que je voulais.
Merci à tous pour votre aide.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager