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 d'exécution 13 [AC-2013]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 40
    Points : 28
    Points
    28
    Par défaut Erreur d'exécution 13
    Bonjour à tous

    Etant un débutant sur VBA, je demande de l'aide . Je dispose d'un tableau sur Excel que je veux importer sur Access, pour cela, j'ai codé un bouton sur un formulaire Access en vba.
    Avec mon code actuel, j'arrive déjà à copier les valeurs du tableau et à les disposer dans les champs de ma table .

    Mon problème est le suivant : j'aimerai appliquer une formule pour l'une des cellules de mon Excel et écrire le résultat dans un des champs de ma table. Lorsque j'exécute le code, vba m'affiche une erreur : Erreur d'exécution 13 : Incompatibilité de type au niveau de ma formule :

    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Feuil1").Range("I4").Formula = "=IFERROR(VALUE(IFERROR(MID(P3,SEARCH(V$1,P3)+7,SEARCH(" - ",P3,SEARCH(V$1,P3))-(SEARCH(V$1,P3)+7)),"")),"")"

    Comment pour qu'il exécute la formule ?
    Merci d'avance


    voici mon code actuel:
    Code VBA : 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
    Private Sub Commande0_Click()
     
     
        Dim appexcel As Excel.Application
        Dim wbexcel As Excel.Workbook
     
        Dim cn As ADODB.Connection
        Dim rs As ADODB.Recordset
        Dim r As Long
        'Dim db As DAO.Database
        'Dim SQL As String
     
        ' Connexion à la base Access
     
        Set cn = New ADODB.Connection
     
        cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & "Data Source=C:\xxxxxxxx.accdb"
     
        ' Ouvre un recordset
     
        Set rs = New ADODB.Recordset
     
        rs.Open "modifications", cn, adOpenKeyset, adLockOptimistic, adCmdTable
     
     
     
        Set appexcel = CreateObject("Excel.Application")
        appexcel.Visible = False
        Set wbexcel = appexcel.Workbooks.Open("C:\xxxxxxxxxx")
     
        appexcel.Sheets("Feuil1").Select
     
     
      Worksheets("Feuil1").Range("I4").Formula = "=IFERROR(VALUE(IFERROR(MID(P3,SEARCH(V$1,P3)+7,SEARCH(" - ",P3,SEARCH(V$1,P3))-(SEARCH(V$1,P3)+7)),"")),"")"
     
        ' Virtualisation de la table
     
     
     
        r = 4 ' Première ligne du tableau excel ----------------------------------------------------------------------------
     
     
        For r = 4 To Selection.SpecialCells(xlCellTypeLastCell).Row
        ' Réalise la boucle jusqu'à la dernière cellule de la plage utilisé
     
     
            Do Until Len(Range("G" & r).Formula) = 0
            ' Boucle tant que la cellule G n'est pas vide
     
     
     
                With rs
     
                     .AddNew ' Crée un nouvel enregistrement
     
     
                     ' Renseigne les valeurs des champs
     
                     .Fields("titi") = Range("G" & r).Value
     
                     .Fields("toto") = Range("H" & r).Value
     
                     .Fields("truc") = Range("I" & r).Value
     
     
     
                     .Update ' MAJ du nouvel enregistrement
     
     
                 End With
     
                 r = r + 1 ' Ligne suivante
     
     
             Loop
             'fin de la boucle Do until
     
        Next r
        'fin de la boucle For
     
     
        rs.Close
     
        Set rs = Nothing
     
        cn.Close
     
        Set cn = Nothing
        'fermeture du fichier et de la connection à la BD
     
     End Sub

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 263
    Points
    34 263
    Par défaut
    Salut,

    pour les guillemets que tu souhaites garder dans ta formule, il faut les doubler dans ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Feuil1").Range("I4").Formula = "=IFERROR(VALUE(IFERROR(MID(P3,SEARCH(V$1,P3)+7,SEARCH("" - "",P3,SEARCH(V$1,P3))-(SEARCH(V$1,P3)+7)),"""")),"""")"
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre régulier
    Inscrit en
    Mai 2012
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 219
    Points : 94
    Points
    94
    Par défaut
    Tu peux aussi utiliser le caractère ascii si ça fait trop de guillemet :

    & Chr(34)

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    Merci pour vos réponses. Maintenant il ne m'affiche plus d'erreur mais il me donne le mauvais résultat. Il m'affiche à chaque fois 0 alors qu'il devrait m'afficher 2. Pourtant quand je réalise la formule directement sur un Excel ça marche. Des suggestions ?

    Merci d'avance

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    C'est bon j'ai réussit, il y avait simplement une erreur d'espace dans la formule

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

Discussions similaires

  1. [JVM][8.1.7] Erreur d'exécution de initjvm.sql
    Par Escuzze dans le forum Oracle
    Réponses: 4
    Dernier message: 01/07/2005, 15h39
  2. Message d'erreur à l'exécution d'une install
    Par titof dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 22/03/2005, 11h20
  3. [CR8][VB6] Erreur d'exécution 20533
    Par pvava dans le forum SDK
    Réponses: 1
    Dernier message: 01/02/2005, 10h27
  4. Erreurs d'exécution sous delphi 5
    Par nkd dans le forum Langage
    Réponses: 3
    Dernier message: 06/11/2004, 17h25
  5. [Apache Perl] Erreur à l'exécution de mes cgi
    Par GLDavid dans le forum Apache
    Réponses: 4
    Dernier message: 28/08/2004, 20h23

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