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. #161
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    bonjour,

    a priori il semble que le morceau de ton code ne correspond pas à une macro mais à une subroutine en VBA.
    tu trouves cette sub dans le VBE (Outils base de donnée --> VBA)
    tu la rattaches à ton bouton sur sa propriété sur clic Les ... à droite qui donnera la procédure évènementielle à ton bouton.

    bonne continuation.
      0  0

  2. #162
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Re-Bonjour,
    Autre petite question:
    je souhaite modifier la condition antidoublon du code d'origine.
    j'ai fait ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If DCount("*", "[table cible]", "[A] LIKE '" & oWSht.Cells(i, 1) & "*' AND [B] LIKE '" & oWSht.Cells(i, 9) & "*'") = 0 Then

    (A et B etant les deux colonnes que j'importe dans ACCESS)

    En gros dans mon tableau excel j'ai qq chose du genre:
    A B
    x 1
    x 2
    e 2
    e 2
    r 3
    r 7
    t 5
    t 9
    ...

    Qd je copie ces colonnes a l'aide de la macro il me met ds ACCESS
    x 1
    e 2
    r 3
    t 5
    ...


    et non ce que je veux:
    x 1
    x 2
    e 2
    r 3
    r 7
    t 5
    t 9

    ....

    je voudrais qu'il considere comme doublon seulement les lignes qui ont la meme donnée dans la colonne A et dans la colonne B du fichier Excel.

    Merci d'avance
      0  0

  3. #163
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup

    j'ai reussi a faire que mon code s'execute a l'appui du bouton
    Code evenementiel ...
      0  0

  4. #164
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Il me reste mon soucis de doublons

    pour le code , un doublon c'est seulement si il y a deux fois la meme donnée en colonne A alors que pour moi un doublon il faut que ca soit l'association colA et colB qui se repete a une autre ligne


    j'essaye d'etre clair,
    bon courage
      0  0

  5. #165
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    re,
    est-ce que dans ta table cible la colonne A ne serait pas en clé primaire ? ou simplement ne serait-elle pas avec indexé sans doublon ? si c'est le cas modifie. et reteste ton code.
      0  0

  6. #166
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    La colonne A de ma table cible était effectivement en Clé Primaire

    Merci beaucoup

    il me reste à ajouter quelques fonctions a ce code:

    je veux faire un tri sur la colonne B lu sur excel pour reduire la taille de la table cible.

    En gros je veux que par exemple toutes les données 1, 2 ou 3 de la colonne B deviennent 1 puis les données 4, 5, 6 deviennent 2
    Ca reduirait pas mal la taille

    c'est une fonction de "tri" que je dois insérer avant le dcount() dans mon code

    je m'y met tout de suite et je reviens vers vous surement rapidement pour un peu d'aide

    je doute de mes capacités en VBA.

    En tous cas si vous avez une idée je suis quand même preneur
      0  0

  7. #167
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Bonjour Bonjour,

    Voilà je me suis remis un peu sur mon code et j'ai fait quelque chose comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim Tampon As String
     
    Select Case tempo 
    ' dans tempo se trouve le contenu de la cellule excel (col B) que je veux modifier
     
    Case "1", "2", "3" ' comprend les valeurs de col B: 1,2,3.
    Tampon = "CAS 1"
     
    Case Else 
    Tampon = "AUTRE"
    End Select
     
    'requète SQL de remplissage de ma table cible avec les données excel
    cSQL = "insert into [table Cible] ( [A], [b] ) values (" & Chr(34) & oWSht.Cells(i, 1) & Chr(34) & ", Tampon)"
    Cependant cela ne marche pas
    (ceci est un bout de code)

    En fait quand il rencontre le case "1" "2" ou "3" une fenetre s'affiche pour me demander quelle valeur mettre dans Tampon alors que je voudrai qil prenne automatiquement la valeur "CAS 1".

    Bref si quelqu'un comprend...

    merci d'avance
      0  0

  8. #168
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    C'est bon j'ai trouvé la réponse a mon problème

    il fallait mettre ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cSQL = "insert into [table cible] ( [A], [B] ) values (" & Chr(34) & oWSht.Cells(i, 1) & Chr(34) & ", " & Chr(34) & Tampon & Chr(34) & ")"

    Bon ben je reviens pour mon prochain probleme
      0  0

  9. #169
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Bon ben cette fois ci j'ai besoin de votre aide

    je vous explique:
    j'arrive a obtenir une liste dans ma table comme celle la:

    colA colB
    x 11
    x 22
    x 33
    y 22
    b 11
    b 33

    j'aimerai rajouter ou modifier une fction qui me fasse un tri:
    si on a (x ; 11) ,( x ; 22)et (x ; 33) (comme ci dessus) je veux lui dire de ne laisser que la ligne (x ; 11). car 11>22 et 11>33 par exemple.

    Bref faut il l'inclure dans le detecteur de doublon basé sur un Dcount ou faut il ajouter une autre fonction???

    je suis super mega embrouillé la
    merci pour tt aide ou suggestion
      0  0

  10. #170
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    a ce stade mon code est le suivant:

    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
    Private Sub Commande0_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("adresse de mon fichier source excel")
    Set oWSht = oWkb.Worksheets("feuille source dans excel")
     
     
    Dim tB As String
     
     
     'l'importation commence à la ligne 1
    i = 1
     
    'Pas de message d'erreur
    DoCmd.SetWarnings False
     
    'importation tant que la cellule est differente de ""
    While oWSht.Range("A" & i).Value <> ""
     
    'on stocke l'info colB dans une variable temp
    Set temp = oWSht.Cells(i, 9)
     
    'Modification des col B issus du tableau excel
    Select Case temp 
     
        Case "1", "2", "3"
            tB = "11"
     
        Case "4", "5", "6"
            tB = "22"
     
        Case "7","8"
            tB = "33"
     
    End Select
     
     
    'on elimine les doublons
    If DCount("*", "table cible", "[A] LIKE '" & oWSht.Cells(i, 1) & "*' AND [B] LIKE '" & tB & "*'") = 0 Then
     
     
            'requète SQL
            cSQL = "insert into [table cible] ( [A], [B] ) values (" & Chr(34) & oWSht.Cells(i, 1) & Chr(34) & ", " & Chr(34) & tB & Chr(34) & ")"
     
     
     
            DoCmd.RunSQL cSQL
     
     
    End If
     
    'passage a la ligne suivante
    i = i + 1
     
    Wend
     
     
    End Sub
      0  0

  11. #171
    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
    Je te conseille de créer une nouvelle discussion
    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

Discussion fermée
Cette discussion est résolue.
Page 9 sur 9 PremièrePremière ... 56789

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