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 :

Erreur dans Import Excel


Sujet :

VBA Access

  1. #1
    Invité
    Invité(e)
    Par défaut Erreur dans Import Excel
    bon... désolé j'ai cloturé trop vite mon post precedent !


    j'ai une erreur dexecution 9 , L'indice n'appartient pas à la selection.

    dans 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
    Private Sub Commande108_Click()
    DoCmd.SetWarnings False
    Dim oApp  As Excel.Application
    Dim oWkb  As Excel.Workbook
    Dim oWSht As Excel.Worksheet
    Dim  Sql, NomTable , CheminFichier, Feuille As String
    Feuille = Forms!FormUpdate!ChoixFeuille & "!"
    NomTable = Forms!FormUpdate!ChoixQualite.Column(1)
    Set oApp = CreateObject("Excel.application")
    Set oWkb = oApp.Workbooks.Open(CheminFichier) 'chemin vers fichier Excel
    Set oWSht = oWkb.Worksheets(Feuille) ' nom de la feuille Excel ### GRISE ICI ###
     
    i = 2                                    'première ligne ou commence l'import
    While oWSht.Range("I" & i).Value <> ""   'tant qu'on ne rencontre pas une case vide
    dans la ligne concernant le workbook.Open la chaine de caractere est bien prise en compte, mmais dans la ligne Worksheets la chaine ne passe pas. Si j'entre directement l'intitule de la feuille, à savoir "Feuil1" ça ne passe pas non plus alors que c'est bien le nom de la feuille.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Qui y a-t-il dans tes variables Chemin et feuilles ?

    De plus pas de ! à feuille dans ta concaténation.
    Tes variables sont bien déclarés en String ?

    Philippe

  3. #3
    Invité
    Invité(e)
    Par défaut
    rebonjour Philippe,

    ok j'ai simplifie :

    CheminFichier contient le chemin d'enregistrement du fichier recupere dans un champ texte , ça, ça passe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuille = Forms!FormUpdate!ChoixFeuille & "!"
    initialement j'importais le fichier excel en entier en tant que table, et la variable "feuille" etait issue d'une combo, j'ai conservé ce systeme pour selectionner la feuille.

    Je ne sais plus pourquoi mais dans ce code initial j'avais besoin du "!" à la fin de la string sinon ça plantait.
    Là dans ma nouvelle procédure, je l'ai supprimé, et apparament, le code passe maintenant sans problème sur la ligne worksheets !
    Je continue donc de modifier le reste du code pour inserer les données dans ma table.
    Dernière modification par Invité ; 08/04/2009 à 17h11. Motif: Ajout des balises codes (Sélection du code + # dans la fenêtre de rédaction des messages)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Je ne vois pas pourquoi il te fallait un !, cela peut-être utile lorsque l'on intègre des formules et que l'on se rapporte à des cellules d'une autre feuille.

    Si tout est OK n'oublie pas de cliquer sur le bouton , sinon on continue.

    Philippe

  5. #5
    Invité
    Invité(e)
    Par défaut
    Rebonjour Philippe,

    voilà où j'en suis, j'ai simplifié au maxi le code pour éviter les sources d'erreurs .
    Dans le code ci dessous, seule la premiere ligne du tableau excel est importée.

    Et si je réactive le While/Wend rien n'est importé. Je ne vois pas l'erreur...

    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
    Private Sub Commande108_Click()
    DoCmd.SetWarnings False
    Dim oApp  As Excel.Application
    Dim oWkb  As Excel.Workbook
    Dim oWSht As Excel.Worksheet
    Dim Sql, NomTable, Feuille As String
     
    Feuille = Forms!FormUpdate!ChoixFeuille
    NomTable = Forms!FormUpdate!ChoixQualite.Column(1)
     
    Set oApp = CreateObject("Excel.application")
    Set oWkb = oApp.Workbooks.Open(Chemin)
    Set oWSht = oWkb.Worksheets(Feuille)
     
    Sql = "Delete * from " & NomTable
    DoCmd.RunSQL Sql
     
    i = 1
     
    'While oWSht.Range("I" & i).Value <> ""   'tant qu'on ne rencontre pas une case vide
     
    'requète SQL (avec en paramètre la ligne i et le numéro de la colonne comme précisé au-dessus)
    Sql = "insert into " & NomTable & "( [Identite], [Qualite] , [Precision] ) 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) & ");"
    'ici, on ne prend que les colonnes A (=1) et B (=2) et C (=3).
    DoCmd.RunSQL Sql
     
    'on incrémente la variable i pour passer à la ligne suivante
    i = i + 1
     
    'Wend
     
    Sql = "INSERT INTO TableUpdateUsagers ( Identite, Qualite, Precision, DateMAJ ) SELECT Identite, Qualite, Precision, DateMAJ FROM " & NomTable
    DoCmd.RunSQL Sql
    RecordSource = "select * from TableUpdateUsagers order by identite"
    End Sub

Discussions similaires

  1. Erreur dans vba excel
    Par rihab92 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/02/2015, 11h36
  2. Message d'erreur sur importation Excel
    Par abdelkarim_1987 dans le forum Macros Access
    Réponses: 7
    Dernier message: 03/07/2013, 09h36
  3. problème d'importation excel dans access
    Par Badboy62cfp dans le forum Access
    Réponses: 6
    Dernier message: 09/05/2006, 16h17
  4. [SQL Server 2000] erreur lors importation fichier excel
    Par Abydos Business Group dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/03/2006, 09h24
  5. Erreur d'import Excel -> Delphi
    Par Homer dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 05/07/2004, 10h07

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