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 excel vers Access


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Exportation excel vers Access
    Salut à tous,

    je dois exporter des ´feuilles d'excel vers Access, voici le code que j'ai utilisé, malheureusement je recois le message d'erreur (run-tim '9': subscriptout of Range).


    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    Sub WritingWorksheetData_DAO() 
     
         Dim Plage As Range 
     
         Dim Array1 As Variant 
     
         Dim x As Variant 
     
         Dim Db1 As Database 
     
         Dim Rs1 As Recordset 
     
         ' Ouverture de la base de données Commandes.mdb 
     
         Set Db1 = DBEngine.OpenDatabase(ThisWorkbook.Path & "\Commandes.mdb" ) 
     
         ' Ouverture de la table Factures 
     
         ' Un objet Recordset représente les enregistrements d'une table 
     
         Set Rs1 = Db1.OpenRecordset( "Factures" , dbOpenDynaset) 
     
         ' Détermination de la taille de la plage à envoyer vers Access 
     
         Set Plage = Worksheets( "DAOSheet" ).Range( "A1" ).CurrentRegion.Offset( 1 , 0 ) 
     
         Set Plage = Plage.Resize(Plage.Rows.Count - 1 , Plage.Columns.Count) 
     
         Plage.Select 
     
         ' Lecture de la plage pour renvoyer une valeur contenant un tableau 
     
         Array1 = Plage.Value 
     
         ' Ecriture des données depuis Excel vers les enregistrement de la table Factures 
     
         For x = 1 To UBound (Array1, 1 ) 
     
              With Rs1 
     
                   .AddNew 
     
                   .Fields( "NoFacture" ) = Array1(x, 1 ) 
     
                   .Fields( "Client" ) = Array1(x, 2 ) 
     
                   .Fields( "Date" ) = Array1(x, 3 ) 
     
                   .Fields( "Solde" ) = Array1(x, 4 ) 
     
                   .Update 
     
              End With 
     
         Next 
     
         ' Fermeture de la base Commandes.mdb 
     
         Db1.Close 
     
         ' Effacement des données copiées vers la base (sauf les titres) 
     
         With Selection.CurrentRegion 
     
              Intersect(.Cells, .Offset( 1 )).Select 
     
         End With 
     
         Selection.ClearContents 
     
    End Sub
    Comment pourrais je reussir mon exportation sans message d'erreur s'il vous plaît?

    Merci d'avance

  2. #2
    Membre actif Avatar de tribaleur
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 401
    Points : 237
    Points
    237
    Par défaut
    Je sais pas si ça peu t'aider mais il existe une fonction "docmd.transferSpreadSheet" ou un truc du genre qui permet l'importation de fichiers Excels dans une base de donnée.

    Après tu n'a plus qu'à redispatcher les données dans les bonnes tables.

    Ce méfier par contre des noms de colonnes de la table d'importation. J'avais du mettre un ligne dans le fichier Excel qui avai les noms des entêtes de colonnes de ma table pour que l'importation ce fasse correctement. sinon si tu met pas d'entête je crois que les colonnes de ta table doivent s'appeler F1, F2 F3 ... (ou un truc du genre).

    A creuser peut-être.

    Cordialement.
    Rien n'est rien!!! ... Tout est quelque chose!!!

    Petits liens utiles :
    -Chaine de connexion : http://www.connectionstrings.com/
    -ADO et ADO.net : Tuto ADO et ADO.net

Discussions similaires

  1. [AC-2010] Export excel vers Access - Format BDD non reconnu
    Par moctarim dans le forum VBA Access
    Réponses: 0
    Dernier message: 02/10/2013, 14h21
  2. VBA Export Excel vers Access
    Par rabihm81 dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/05/2009, 13h54
  3. Pb Exportation Excel vers Access
    Par whykiki dans le forum VBA Access
    Réponses: 1
    Dernier message: 06/07/2008, 16h56
  4. [VBA-E]Exporter des données d'Excel vers Access
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/06/2006, 15h57
  5. Exportation d'un fichier excel vers Access
    Par Alkemist dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/01/2006, 16h37

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