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 :

Un grand classique : erreur '1004' la methode de l'objet a échoué [AC-2000]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 20
    Points : 15
    Points
    15
    Par défaut Un grand classique : erreur '1004' la methode de l'objet a échoué
    Bonjour à tous,

    Je travaille actuellement sur une BDD access qui importe des fichiers excel sur des tables.

    Avant ces importations j'ai rédigé quelques lignes de codes qui permettent de trier et supprimer des colonnes inutiles.

    Je rencontre un problème d'éxecution lorsque je passe du traitement d'un classeur excel à un autre. En me renseignant sur cette erreur, je me suis rendu compte que c'etait un classique mais n'ai pas réussi à la contourner.

    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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    Private Sub Commande1_Click()
     
    'FAX
    'Ouverture de l'application
    'et Ouverture d 'un fichier Excel
    Dim i As Integer
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Excel.Workbook 'Classeur Excel
    Dim wsExcel As Excel.Worksheet 'Feuille Excel
     
     
    'Ouverture de l'application
    'et Ouverture d 'un fichier Excel
    Set appExcel = CreateObject("Excel.Application")
    Set wbExcel = appExcel.Workbooks.Open("C:\BOBBY\DO\2010 01\FDA_TROPIC_ExtrJan2010_FAX.xls")
    Set wbExcel = appExcel.ActiveWorkbook
    appExcel.Visible = True
     
     
    'suppression des colonne
     
    Worksheets(1).Activate
     
    Sheets(1).Select
    Range("AU:AX").Select
    Selection.Delete Shift:=xlToLeft
    Range("AD:AS").Select
    Selection.Delete Shift:=xlToLeft
    Range("S:AB").Select
    Selection.Delete Shift:=xlToLeft
    Range("K:Q").Select
    Selection.Delete Shift:=xlToLeft
    Range("G:G").Select
    Selection.Delete Shift:=xlToLeft
    Range("C:E").Select
    Selection.Delete Shift:=xlToLeft
    Range("A:A").Select
    Selection.Delete Shift:=xlToLeft
     
     
    'sauvegarde du fichier d'extraction sur le chemion souhaité
    ActiveWorkbook.SaveAs Filename:= _
    "C:\Documents and Settings\656893\Desktop\ExtractionFAX.xls", _
    FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
     
    ActiveWorkbook.Close
     
    '''''
    '''''
     
     
     
    'SWIFT
    'Ouverture de l'application
    'et Ouverture d 'un fichier Excel
    Set appExcel = CreateObject("Excel.Application")
    Set wbExcel = appExcel.Workbooks.Open("C:\BOBBY\DO\2010 01\FDA_TROPIC_ExtrJan2010_SWIFT.xls")
    Set wbExcel = appExcel.ActiveWorkbook
    appExcel.Visible = True
     
     
    'suppression des colonnes
     
     
    'Sheets("suivi matériel").Select
    'essaie
    ' ThisWorkbook.Worksheets("suivi matériel").Select
     
     
     
    wbExcel.Activate
     
    Worksheets(1).Activate
    Range("AU:AX").Select
    Selection.Delete Shift:=xlToLeft
    Range("AD:AS").Select
    Selection.Delete Shift:=xlToLeft
    Range("S:AB").Select
    Selection.Delete Shift:=xlToLeft
    Range("K:Q").Select
    Selection.Delete Shift:=xlToLeft
    Range("G:G").Select
    Selection.Delete Shift:=xlToLeft
    Range("C:E").Select
    Selection.Delete Shift:=xlToLeft
    Range("A:A").Select
    Selection.Delete Shift:=xlToLeft
     
     
    'sauvegarde du fichier d'extraction sur le chemion souhaité
    ActiveWorkbook.SaveAs Filename:= _
    "C:\Documents and Settings\656893\Desktop\ExtractionSWIFT.xls", _
    FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
     
    End Sub
    l'erreru se déclanche au niveau du 2eme "Worksheets(1).Activate" et le débug ne veut passer aucune instruction.
    Mon premier fichier est donc bien traité. Le second s'ouvre mais ne veut rien entendre...


    Merci par avance.

    Drama

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Bonjour,

    Pourquoi travailler avec la sélection (Select ?)
    Pourquoi ouvrir deux fois un objet Excel.Application ?
    Les objets ne sont pas fermé ni détruits

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Alors pour l'utilisation de select, je ne vois manière plus simple pour selectionner puis supprimer des colonnes.

    Pour la création en double, je veux après la fermeture du premier classeur, réinitialiser les variables pour traiter le second classeur.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par Tofalu Voir le message
    Bonjour,

    Pourquoi travailler avec la sélection (Select ?)
    Pourquoi ouvrir deux fois un objet Excel.Application ?
    Les objets ne sont pas fermé ni détruits
    Alors en effet supprimer le doublon objet Excel.Application me permet de traiter les deux fichiers.

    Cependant, cette erreur est souvent récurrente lorsque je lance ce genre de traitements via access. Dans la plupart des cas, je dois fermer le fichier excel puis lancer à nouveau l'execution pour qu'elle ne se mette pas en debug.

    Est-ce causé par l'utilisation de la méthode Select?

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

Discussions similaires

  1. Erreur 1004 : la methode Paste de la classe Worksheet a échoué
    Par jambonland dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/08/2013, 10h29
  2. [XL-2007] Erreur 1004 : la methode Paste de la classe Worksheet a échoué
    Par bricko dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/06/2013, 01h53
  3. [AC-2010] ERREUR : La méthode 'item' de l'objet 'Forms' à échoué
    Par Blanco68 dans le forum VBA Access
    Réponses: 2
    Dernier message: 05/05/2013, 09h48
  4. [AC-2010] ERREUR : La méthode 'item' de l'objet 'Forms' à échoué
    Par Blanco68 dans le forum IHM
    Réponses: 0
    Dernier message: 03/05/2013, 17h13
  5. Erreur 1004 La methode copy de la classe Worksheet a echoué
    Par Bernard67 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 09/04/2008, 16h39

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