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

Access Discussion :

Importer les données d'un fichier Excel (.xls) dans une table Access


Sujet :

Access

  1. #61
    Membre éprouvé Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 958
    Points : 937
    Points
    937
    Par défaut
    Alors, pour ceux qui en auront besoin, voici le code [dernière version fonctionnelle], qui permet de copier les plages de cellules voulues d'un fichier Excel vers les champs voulus d'une table Access, en évitant le doublons.

    Ce code résume la discussion que j'ai eue avec totofe et présente les dernières avancées auxquelles nous sommes arrivés.
    Je vais enlever les chemins de mes fichiers et mettre des noms génériques qui faciliteront la compréhension.
    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
     
    Private Sub Commande1_Click()
    'Ici l'importation se déclenche en cliquant sur le bouton "Commande1"
    'mais on peut aussi mettre ce code à l'ouverture d'un formulaire
    Dim oApp As Excel.Application
    Dim oWkb As Excel.Workbook
    Dim oWSht As Excel.Worksheet
     
    Set oApp = CreateObject("excel.application")
    Set oWkb = oApp.Workbooks.Open("chemin_du_fichier_xls") 'mettez ici le chemin vers votre fichier Excel
    Set oWSht = oWkb.Worksheets("nom_de_la_feuille_concernée_par_limportation") 'mettez ici le nom de la feuille qui contient les données à importer
     
    'première ligne ou commence l'import
    i = 11
     
    'pour éviter les messages lors de l'ajout des enregistrements
    DoCmd.SetWarnings False
     
    'tant qu'on n'est pas arrivés à la ligne 600 du tableur
    While i < 600
    'on peut aussi arrêter l'importation lorsque le programme rencontre une case
    'vide en remplaçant la ligne du While par :
    'While oWSht.Range("I" & i).Value <> ""
     
    'condition de remplissage de la table => eviter les doublons
    'si l'enregistrement existe déjà dans la table destination,
    'on passe à la ligne suivante sans l'importer
    If DCount("*", "[nom_da_la_table_destination]", "[nom_du_champ_destination_qui_ne_doit_pas_avoir_de_doublons] LIKE '" & oWSht.Cells(i, 9) & "*'") = 0 Then
    'le numéro 9 correspond au numéro de la colonne source, tel que : A=1, B=2, C=3 ...
     
    'requète SQL (avec en paramètre la ligne i et le numéro de la colonne comme précisé au-dessus)
    cSQL = "insert into [table_destination] ( [champ1], [champ2] ) values (" & Chr(34) & oWSht.Cells(i, 13) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 11) & Chr(34) & ")"
    'ici, on ne prend que les colonnes M (=13) et K (=11).
     
    'exécute la requète
    DoCmd.RunSQL cSQL
     
    End If
     
    'on incrémente la variable i pour passer à la ligne suivante
    i = i + 1
     
    Wend
    Bon, tous les commentaires ne sont là que pour la compréhension du code, mais si vous aviez toutefois des questions, n'hésitez pas
    Si ma réponse vous a été utile pensez à voter Pour

    Avant de poster sur le forum Access :
    FAQ > SOURCES > COURS > FORUM > GOOGLE
    Pas de question par MP ou je mords

      0  0

  2. #62
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    bonjour,
    Voici mon 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
    Private Sub C_Click()
    Dim oApp As Excel.Application
    Dim oWkb As Excel.Workbook
    Dim oWSht As Excel.Worksheet
     
    Set oApp = CreateObject("excel.application")
    Set oWkb = oApp.Workbooks.Open("S:\TECH_PUB_LINES\SERVICE_LINE_INFORM_SYSTEMS\SDNI\2006_a_Usage_Feb_01_Feb_28-stats.xls")
    Set oWSht = oWkb.Worksheets("2006_a_Usage_Feb_01_Feb_28-stats")
    'premier ligne ou tu commence ton import
    i = 2
     
    'pour éviter les messages lors de l'ajout des enregistrements
    DoCmd.SetWarnings False
     
    'tant que la cellule n'est pas vide
    While oWSht.Range("A" & i).Value <> ""
     
      cSQL = "insert into [stat] ( [ConfID],[HostEmail],[Duration],[Attendees] ) values (" & Chr(34) & oWSht.Cells(i, 1) & Chr(34) & "," & Chr(34) & oWSht.Cells(i, 2) & Chr(34) & "," & Chr(34) & oWSht.Cells(i, 3) & Chr(34) & "," & Chr(34) & oWSht.Cells(i, 4) & Chr(34) & " )"
     
    'exécute la requète
      DoCmd.RunSQL cSQL
     
     
      i = i + 1
    Wend
     
    DoCmd.SetWarnings True
     
    End Sub



    J'ai trouvé une erreur en recopiant le code que totofe a donné à cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oWSht = oWkb.Worksheets("2006_a_Usage_Feb_01_Feb_28-stats")

    Pourtant je ne comprend pas ma feuille de travail se nomme bien "2006_a_Usage_Feb_01_Feb_28-stats"...

    Access me donne ce message : "l'indice n'appartient pas à la selection"

    Pouvez-vous m'aider svp?
    merci d'avance
    ------------------- --------------------
    eFFeT DeVeLoPpEz.CoM
      0  0

  3. #63
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    le nom de la feuille de ton classeur n'est pas correcte. essay de modifier le nom de la feuille sous excel et dans la fonction.
    je vois que le nom de ta feuille porte le même nom que ton fichier excel. j'esper que tu ne confond pas ces deux éléments.
    [Android] Shopy liste de course (Java)

    votre fidèl serviteur

      0  0

  4. #64
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    non non je fais bien la differenciation entre la feuille et le fichier.Faut il que je change le nom de la feuille? car j'ai une multitude de fichier excel du meme genre dont la feuille porte le meme nom que le fichier (c'est des statistique)
    ------------------- --------------------
    eFFeT DeVeLoPpEz.CoM
      0  0

  5. #65
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    non jpense pas que avoir le même nom de feuille et de fichier provoque une erreur. Mais essaye tout de même de changer le nom d'une feuille pour tester si tu à toujours la même erreur
    [Android] Shopy liste de course (Java)

    votre fidèl serviteur

      0  0

  6. #66
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    Bonjour,

    C'est bon sa marche trés bien merci totofe.
    J'aurai voulu savoir une chose si tu pouvai me donner un conseil ou une idée pour m'éclairer un peu....

    En fait sur un formulaire, j'ai fait un bouton parcourir qui me permet d'aller cherché un fichier excel et d'obtenir le chemin (S:\....) dans une zone de texte.
    Donc je n'ai pas besoin d'ecrire le nom du chemin dans la partie du code
    Set oWkb = oApp.Workbooks.Open(Me.nomchamp) puisque l'adresse se met toute seule dans cette parenthèse.

    Par contre, dans la zone
    Set oWSht = oWkb.Worksheets("....") il faut que je mette manuellement le nom de la feuille de travail (qui est pour chaque fichier differente).
    N'y a t'il pas un moyen de façon à ce que je n'ai pas besoin de taper le nom de la feuille dans la fonction Set oWSht = oWkb.Worksheets(...)?

    De plus, sur tous mes fichiers excel il n'y a qu'une seule feuille de travail...
    Tu as une idée?
    ------------------- --------------------
    eFFeT DeVeLoPpEz.CoM
      0  0

  7. #67
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    tu peut appeller ta feuille en donnant un indice a ton classeur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set oWSht = oWkb.Worksheets(1)
    [Android] Shopy liste de course (Java)

    votre fidèl serviteur

      0  0

  8. #68
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    ok merci je vais essayer
    ------------------- --------------------
    eFFeT DeVeLoPpEz.CoM
      0  0

  9. #69
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    j'ai donc essayer ce que tu m'a dit mais cela ne fonctionne pas.
    ------------------- --------------------
    eFFeT DeVeLoPpEz.CoM
      0  0

  10. #70
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    ?? étrange avec moi ca fonctionne très bien!
    essaye de cet manière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set owsht = oWkb.Worksheets.Item(1)
    [Android] Shopy liste de course (Java)

    votre fidèl serviteur

      0  0

  11. #71
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    nikel! sa marche impec! merci bcp totofe!!!

    Est ce que tu croi que sa serai possible que la table correspondant a la requete (cSQL = "insert into [stat] ( [ConfID],[HostEmail],[Duration],[Attendees] ) values ("...." )" ) puisse se creer toute seule et porter le nom du fichier.


    (Car en fait si la table (ici stat) n'existe pas la requete ne fonctionne pas.)

    exemple :
    J'importe la statistique de juin 2006, la table se creer toute seule et porte automatiquement le nom "juin 2006"

    Possible or not possible?
    ------------------- --------------------
    eFFeT DeVeLoPpEz.CoM
      0  0

  12. #72
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    oui faut juste que tu créer la table avec ses champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    docmd.runsql "CREATE TABLE Nom_de_la_table (Nom_de_colonne1 Type_de_donnée,  Nom_de_colonne2 Type_de_donnée, ...);"
    [Android] Shopy liste de course (Java)

    votre fidèl serviteur

      0  0

  13. #73
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    ok par exemple a la place du insert into je met un create table comme ceci?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      cSQL = "CREATE TABLE[stat] ( [ConfID as numeric],[HostEmail as string]....
    ??
    ------------------- --------------------
    eFFeT DeVeLoPpEz.CoM
      0  0

  14. #74
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    oui puis ensuite si tu veut ajouter tes valeurs dans la table faut que tu fasse un INSERT INTO
    [Android] Shopy liste de course (Java)

    votre fidèl serviteur

      0  0

  15. #75
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    c'est nikel franchement merci beaucoup totof tout marche c'est genial a bientot
    ------------------- --------------------
    eFFeT DeVeLoPpEz.CoM
      0  0

  16. #76
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    oki
    c'est cool si tout les problemes sont résolus
    mais totofe ca s'écrit avec un "e"!!! sinon on va me confondre avec le boxeur lol
    [Android] Shopy liste de course (Java)

    votre fidèl serviteur

      0  0

  17. #77
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Import donnée Excel to sql*Plus
    Bonjour a tous

    je suis en train de rechercher un moyen pour importer des données de Excel vers Sql*Plus mais je ne trouve pas la solution. je veux faire ça sur sql plus mais on m'a déconseillé, on m'a dis que c'est un outils compliqué. j'ai essayé de manipulé toad ou sql développer et je l'ai trouvé encore plus difficile.

    je vous remercie de me répondre le plus rapidement possible

    a très bientôt


    excusez moi d'avoir poster ma question ici, mais je ne savais pas comment poster une question indépendente et en plus c'est presque la même question


    Cordialement
      0  0

  18. #78
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    Ou est le raport avec Access? lol
    non je vois pas commen tu pourai faire.
    A moin que, mais suis pas sure aussi. Je croi que SQL*plus permet d'importer des données depuis un fichier texte. si c'est le cas, il te suffirait d'extraire tes données excel dans un fichier texte en utilisant des séparateurs, puis par la suite de les importer dans sql*plus
    [Android] Shopy liste de course (Java)

    votre fidèl serviteur

      0  0

  19. #79
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    salut totofe,

    oui effectivement ça n'a pas grand chose a avoir avec access mais comme ça parlé d'importation alors ...

    sinon si je fais ça sur fichier texte et après comme je fais pour importer ??? si tu as une idée stp fais moi signe

    Merci

    A bientot

    cordialement
      0  0

  20. #80
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    sur access je sais que c'est la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferText acImportDelim, "nom_du_format_d_import", "nom_de_la_table_destination", "c:\monfichier.txt"
    aprés sur sql plus je sais pas....
    Pose ta question dans le forum concernant le SQL
    http://www.developpez.net/forums/forumdisplay.php?f=236
    ------------------- --------------------
    eFFeT DeVeLoPpEz.CoM
      0  0

Discussion fermée
Cette discussion est résolue.
Page 4 sur 9 PremièrePremière 12345678 ... DernièreDernière

Discussions similaires

  1. importer les données d'un fichier Excel Protégé
    Par ARFY56 dans le forum Access
    Réponses: 15
    Dernier message: 21/11/2018, 21h11
  2. Réponses: 3
    Dernier message: 20/08/2010, 21h48
  3. importer les données d'un fichier excel vers oracle 10g
    Par sarita_ima dans le forum Documents
    Réponses: 2
    Dernier message: 04/09/2009, 13h52
  4. Importer les données d'un fichier excel dans une table
    Par dams95190 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 07/12/2007, 10h35
  5. Réponses: 3
    Dernier message: 27/07/2007, 13h06

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