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 :

Le code ne marche pas et je reçois ce message d'erreur: "Compile error: Argument not optional" [AC-2010]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Mai 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 70
    Par défaut Le code ne marche pas et je reçois ce message d'erreur: "Compile error: Argument not optional"
    Bonjour à tous,

    comme indiqué dans le titre ci-dessus, je n'arrive pas à definer le problem auquel je suis confronté:
    Voici mon code, il est censé parametrer l'importation de données depuis MS Excel 2010.

    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
    Private Sub cmdImportR_Click()
    
    On Error GoTo err_import
    MyFile = "\\soa-msb-fs\Rations Invoice & Budget\Database\Ration.xlsx"
    Set Mysh = MyFile.LaRequisition
    Set tb = [Commande Client]
    Call Importdata
    err_import:
    MsgBox Err.Description
    Resume Next
    
    End Sub
    
    Public Function Importdata(MyFile As Excel.Workbook, Mysh As Excel.Worksheet, tb As Table)
    On Error GoTo err_import
    'Dim MyFile As New Excel.Application
    'Dim tb As New Table
    'Dim MaPlage As Excel.Range
    'Set Mysh = MyFile.Worksheet
    DoCmd.TransferSpreadsheet acImport, , tb, MyFile.Mysh, True
    err_import:
    MsgBox Err.Description
    Resume Next
    
    End Function
    NB. Je ne suis pas trop confortable en VBA.

  2. #2
    Membre actif
    Inscrit en
    Mai 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 70
    Par défaut Nouveau message d'erreur apres quelques modifications du code
    Le nouveau message qui s'affiche est maintenant: Object Variable or With block variable not set
    après que j'ai modifié le code comme suite:

    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 cmdImportR_Click()
     
    On Error GoTo err_import
    Dim db As DAO.Database
    Dim MaTable As DAO.Recordset
    Dim MonFichier As Excel.Workbook
    Dim MaFeuille As Excel.Worksheet
    Set db = CurrentDb
    MonFichier = "\\soa-msb-fs\Rations Invoice '&' Budget\Database\Ration.xls"
    MaFeuille = MonFichier.LaRequisition
    Set MaTable = db.OpenRecordset("Commande Client")
    Call Importdata(MonFichier, MaFeuille, MaTable)
    err_import:
    'MsgBox Err.Description
    Resume Next
     
    End Sub
     Public Function Importdata(MyFile As Excel.Workbook, Mysh As Excel.Worksheet, tb As Table)
     On Error GoTo err_import
     'Dim MyFile As New Excel.Application
     'Dim tb As New Table
     'Dim MaPlage As Excel.Range
     'Set Mysh = MyFile.Worksheet
     DoCmd.TransferSpreadsheet acImport, , tb, MyFile.Mysh, True
     err_import:
     MsgBox Err.Description
     Resume Next
     
     End Function

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 69
    Par défaut
    Bonjour,

    Effectivement, tu n'avais pas mis les paramètres au début dans ton Call.

    Pour ce qui est de ta nouvelle erreur, as tu essayé de mettre des set pour définir ta feuille et ton fichier? Car l'erreur te dit qu'il manque des set.

    Essaye par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set MonFichier = "\\soa-msb-fs\Rations Invoice '&' Budget\Database\Ration.xls"
    Set MaFeuille = MonFichier.LaRequisition
    Après je ne suis pas un spécialiste mais en tâtonnant, on finit par trouver.

  4. #4
    Membre actif
    Inscrit en
    Mai 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 70
    Par défaut Merci
    Merci a toi,
    J'ai essaye cela sans success.
    Par contre, j'ai proceder a des changements dans 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
    Public Function ImportData(ByVal MaTable As Variant, ByVal MyFile As Variant, ByVal Mysh As Variant)
    On Error GoTo err_import
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, MaTable, MyFile, True, Mysh
    err_import:
    MsgBox Err.Description
    Resume Next
    
    End Function
    
    Private Sub cmdImportD_Click()
    On Error GoTo err_import
    Dim tb As Variant
    Dim MonFichier As Variant
    Dim MaFeuille As Variant
    tb = "Delivery Details"
    MaFeuille = 2
    MonFichier = "R:\RATIONS INVOICE & BUDGET\Database\Ration"
    Call ImportData(tb, MonFichier, MaFeuille)
    err_import:
    'MsgBox Err.Description
    Resume Next
    End Sub
    Et maintenant, j'ai comme l'impression que j'ai rate quelquechose dans la description de l'emplacement de mon fichier.

    Nouveau message (ci-joint)
    Images attachées Images attachées  

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 69
    Par défaut
    Si tu es sûr du chemin que tu as écrit, tu peux essayer de mettre ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MonFichier = """R:\RATIONS INVOICE & BUDGET\Database\Ration"""
    Il est fort probable que ce soit les espaces qui gênent.

    Si ça ne marche pas comme je t'ai proposé ou en modifiant les espaces par des "_", dis moi.

  6. #6
    Membre actif
    Inscrit en
    Mai 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 70
    Par défaut
    Merci pour ton soutien, je ne crois pas que cela marche: je suis plutot en train de me demander si les restrictions d'acces au serveur peuvent influencer l'execution du code.
    NB. J'y suis accepte en tant que utilisateur ordinaire mais j'ai acces a tous les fichiers s'y trouvant.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/05/2010, 11h50
  2. code ne marche pas
    Par zakaroh dans le forum C#
    Réponses: 7
    Dernier message: 18/07/2008, 11h11
  3. videoroll vogroll code ne marche pas
    Par crikooo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 07/12/2007, 08h57
  4. je ne sais pas pourquoi ce code ca marche pas
    Par debutantasp dans le forum ASP
    Réponses: 14
    Dernier message: 23/11/2007, 17h10
  5. [VBA-E] mon code ne marche pas sur un autre PC
    Par yannph dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/01/2006, 21h03

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