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 de compilation argument nommé introuvable [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 67
    Points : 46
    Points
    46
    Par défaut Erreur de compilation argument nommé introuvable
    Bonjour, J’ai un classeur Excel qui contient plusieurs feuilles dans les mêmes champs.
    Je désire faire la mise ne page à parti d’un feuille modèle.
    Afin de trouver le code, je crée une macro. Lorsque je l’exécute dans Excel ça fonctionne. Je transpose le code dans Acces et j’obtiens le message d’erreur :
    Erreur de compilation argument nommé introuvable

    Voici le détail du code (Bouton) En rouge la partie en 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
    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
    Private Sub Commande92_Click()
    
    Dim vStatusBar As String
        Application.SetOption "Show Status Bar", True
    
       vStatusBar = SysCmd(acSysCmdSetStatus, "Mise en page des feuilles EXCEL ... veuillez patienter.")
        
     Dim xlApp As Excel.Application
     Dim xlSheet1 As Excel.Worksheet
     Dim xlBook As Excel.Workbook
     Dim sSheet As String, Rep1 As String, LaDate As String, MoisDate As String, StTarget As String, Sql1 As String
     Dim thedb As DAO.Recordset
    
    LaDate = Now()
    MoisDate = Format(LaDate, "ddmm")
    
    Rep1 = "F:\PELO\PELO 2018-2019\FichiersInscriptionParent\"
    Sql1 = "SELECT DISTINCT tblEcole.Abvr, tblEcole.NomEcole FROM tblEcole;"
    
    StTarget = Rep1 & "EcolePELO" & "_" & MoisDate & ".xlsm"
        
    
    Set xlBook = GetObject(StTarget)
    'filename is the string with the link to the file ("C:/....blahblah.xls")
    
    Set xlApp = GetObject(, "Excel.Application")
    On Error GoTo 0
    If xlApp Is Nothing Then
      Set xlApp = CreateObject("Excel.Application")
    End If
    
    'Make sure excel is visible on the screen
    xlApp.Visible = True
    xlBook.Windows(1).Visible = True
    
    'xl.ActiveWindow.Zoom = 75
                      
     sSheet = thedb(0)
                      
    'Define the sheet in the Workbook as XlSheet1
    Set xlSheet1 = xlBook.Worksheets(1)
                      
            
            
        With xlSheet1
         '.Name = "Modele"
          .Select "Modele"
          .Rows("1:2").Select
          .Copy
          .Name = sSheet
          .Select sSheet
          .Rows("1:1").Select
          ''''
          ' Bloc ici
          ''''
          .PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
           SkipBlanks:=True, Transpose:=False
          .Range("B3").Select
          .Application.CutCopyMode = False
          .Selection.Copy
          .Range("B1:N1").Select
          .ActiveSheet.Paste
          .Range("A3:B266").Select
          .Application.CutCopyMode = False
          .App
      
        End With
           
           xlSheet1.aActiveSheet.Sheet (1)
          ' xlApp.ActiveSheet.Name = "Modele"
           xlSheet1.Sheets("Modele").Select
           xlSheet1.Application.ActiveWindow.SelectedSheets.Delete , True
           xlBook.Save , True
           xlBook.Close
           xlApp.Quit
              
      
    
    Err_MCommande92_Click:
        vStatusBar = SysCmd(acSysCmdClearStatus)
        MsgBox Err.Number & " - " & Err.Description
        Resume Exit_Commande92_Click
        
            
    Exit_Commande92_Click:
    vStatusBar = SysCmd(acSysCmdClearStatus)
    
    End Sub
    Merci pour votre aide !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Ici tu fais appel à une des constant Excel! Access connait pas!

    Il faut créer un enumérateur pour las constantes excel!

    Déjà il faut les répertorier! Dans Excel vba, ouvres la fenêtre d'exécution, raccourci clavier [Ctrl] + [g].

    Écris ?xlPasteColumnWidths et appuis sur [Entrer]

    Code exemple : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Enum ConstXls
    xlPasteColumnWidths=10 'par exemple
    xlNone = -1'pareil
    End enum
     
    Sub test()
    Debug.print xlPasteColumnWidths
    End sub
    Dernière modification par Invité ; 02/02/2018 à 19h02.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    Bon matin,

    j'ai crée un module de classe avec les valeurs Enum.

    Dans Excel je trouve les valeurs pour les champs xlPasteColumnWidths = 8 et xlNone = -4142

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Option Compare Database
    Option Explicit
    Public Enum eConstXls
        xlPasteColumnWidths = 8
        xlNone = -4142
    End Enum
    J'obtiens toujours le même message d'erreur.

    Est-ce que je dois appeler les constantes d'une certaine manières ?

    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    un genre truc ....

    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
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    Option Compare Database
     
     
     
    Public Enum eConstXls
        xlPasteColumnWidths = 8
        xlNone = -4142
    End EnumPrivate 
    Sub Commande92_Click()
     
     
    Dim vStatusBar As String
        Application.SetOption "Show Status Bar", True
     
     
       vStatusBar = SysCmd(acSysCmdSetStatus, "Mise en page des feuilles EXCEL ... veuillez patienter.")
     
     Dim xlApp As Object '' Excel.Application
     Dim xlSheet1 As Object ' Excel.Worksheet
     Dim xlBook As Object ' Excel.Workbook
     Dim sSheet As String, Rep1 As String, LaDate As String, MoisDate As String, StTarget As String, Sql1 As String
     Dim thedb As DAO.Recordset
     
     
    LaDate = Now()
    MoisDate = Format(LaDate, "ddmm")
     
     
    Rep1 = "F:\PELO\PELO 2018-2019\FichiersInscriptionParent\"
    Sql1 = "SELECT DISTINCT tblEcole.Abvr, tblEcole.NomEcole FROM tblEcole;"
     
     
    StTarget = Rep1 & "EcolePELO" & "_" & MoisDate & ".xlsm"
    StTarget = "E:\Users\rdurupt.GENARISGROUP\Desktop\Classeur1.xls"
     
     
    Set xlBook = GetObject(StTarget)
    'filename is the string with the link to the file ("C:/....blahblah.xls")
     
     
    Set xlApp = GetObject(, "Excel.Application")
    On Error GoTo 0
    If xlApp Is Nothing Then
      Set xlApp = CreateObject("Excel.Application")
    End If
     
     
    'Make sure excel is visible on the screen
    xlApp.Visible = True
    xlBook.Windows(1).Visible = True
     
     
    'xl.ActiveWindow.Zoom = 75
     
     sSheet = thedb(0)
     
    'Define the sheet in the Workbook as XlSheet1
    Set xlSheet1 = xlBook.Worksheets(1)
     
     
     
        With xlSheet1
         .Name = "Modele"
          .Select ' "Modele"
          .Rows("1:2").Select
          .copy
          .Name = sSheet
          .Select sSheet
          .Rows("1:1").Select
          ''''
          ' Bloc ici
          ''''
          .Rows("1:1").PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
           SkipBlanks:=True, Transpose:=False
          .Range("B3").Select
          .Application.CutCopyMode = False
          .Selection.copy
          .Range("B1:N1").Select
          .ActiveSheet.Paste
          .Range("A3:B266").Select
          .Application.CutCopyMode = False
          .App
     
        End With
     
           xlSheet1.aActiveSheet.Sheet (1)
          ' xlApp.ActiveSheet.Name = "Modele"
           xlSheet1.Sheets("Modele").Select
           xlSheet1.Application.ActiveWindow.SelectedSheets.Delete , True
           xlBook.Save , True
           xlBook.Close
           xlApp.Quit
     
     
     
     
    Err_MCommande92_Click:
        vStatusBar = SysCmd(acSysCmdClearStatus)
        MsgBox Err.Number & " - " & Err.Description
        Resume Exit_Commande92_Click
     
     
    Exit_Commande92_Click:
    vStatusBar = SysCmd(acSysCmdClearStatus)
     
     
    End Sub

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    J'ai enlevé le module classe et ajouter la référence Enum dans le command94

    J'ai une erreur de compilation sur Public Enum eConstXls.


    je ne vois pas où se situe le problème !!

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Enlèves Public

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    Cela ne change rien. !!

    J'ai regardé du côté du tutoriel de pilotage Excel, il me semble que mon code est correct.

    Je ne comprend pas où ça bloque.

    Quelqu'un a une idée ?


    Merci

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    Bon,

    Je vais changer de façon de faire.

    Merci quand même pour votre aide.

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

Discussions similaires

  1. Erreur de compilation, Argument non facultatif
    Par solongo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/08/2014, 18h19
  2. argument nommé introuvable
    Par manue22 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 06/11/2007, 11h43
  3. AllowFormattingCells : Argument nommé introuvable
    Par greg64 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/10/2007, 16h30
  4. erreur de compilation: argument non facultatif
    Par MCarole dans le forum Access
    Réponses: 10
    Dernier message: 21/07/2006, 13h32
  5. [VB6] erreur de compilation:Méthode ou membre de données introuvable
    Par fouf_01 dans le forum VB 6 et antérieur
    Réponses: 22
    Dernier message: 07/06/2006, 16h34

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