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

VBA Access Discussion :

Exportation cellules Excel vers cellules Access [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 51
    Points : 23
    Points
    23
    Par défaut Exportation cellules Excel vers cellules Access
    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!

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    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

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 51
    Points : 23
    Points
    23
    Par défaut
    Merci.

    Est-il possible de le faire cellule par cellule avec la commande transferspreadsheet?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    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

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 51
    Points : 23
    Points
    23
    Par défaut
    Bonjour,

    J'ai lu ce tuto mais je n'y ai pas trouvé la réponse à ma question. Je débute en VBA

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    C'est donc le moment d'apprendre
    Voici encore un peu d'aide dans la FAQ

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 51
    Points : 23
    Points
    23
    Par défaut
    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

  8. #8
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    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

  9. #9
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    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

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 51
    Points : 23
    Points
    23
    Par défaut
    Je vais tester ça!

    Merci beaucoup

  11. #11
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    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

  12. #12
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 51
    Points : 23
    Points
    23
    Par défaut
    Bonjour,

    J'ai essayé ce code:
    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
    Ca ne fonctionne pas. Il y a une erreur sur : Dim xlApp As Excel.Application

    Je ne comprend pas pourquoi?

  13. #13
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    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

  14. #14
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 51
    Points : 23
    Points
    23
    Par défaut
    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é )

  15. #15
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 51
    Points : 23
    Points
    23
    Par défaut
    Bonjour,

    J'ai réussi à faire ce que je voulais.

    Merci à tous pour votre aide.

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

Discussions similaires

  1. Copier cellule Excel vers table Access
    Par HERBAG dans le forum Général VBA
    Réponses: 1
    Dernier message: 09/12/2013, 11h21
  2. [AC-2003] Importer seulement quelques cellules Excel vers Access.
    Par Malela dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 03/12/2011, 12h20
  3. Macro : Exporté donnée d'une cellule Excel vers Word
    Par roidurif dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/03/2011, 18h13
  4. Copie de cellules Excel vers une table Access
    Par pat_che dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/11/2007, 09h17
  5. Importer le contenu d'une cellule Excel vers Access
    Par deaqu1 dans le forum Access
    Réponses: 7
    Dernier message: 05/11/2005, 15h26

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