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

  1. #1
    Candidat au Club
    Homme Profil pro
    Juriste
    Inscrit en
    septembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Juriste

    Informations forums :
    Inscription : septembre 2019
    Messages : 3
    Points : 4
    Points
    4

    Par défaut Erreur de compilation incompréhensible - membre de méthode ou de données introuvable

    Bonjour,

    J'ai un problème d'exécution de mon code qui a surgi de manière soudaine alors que le code fonctionnait normalement avant.

    Le message d'erreur est le suivant:

    Erreur de compilation
    Membre de méthode ou de données introuvables
    Le message d'erreur s'affiche en surlignant la ligne 165 de code suivante située en fin de code: xlWb.Close.

    Le code concerné est le code ci-dessous:

    Merci d'avance pour votre aide.

    TM

    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
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    Sub Prod_Facture()
    'Déclaration des variables
    Dim xlApp As Excel.Application
    Dim xlWb As Excel.Workbook
    Dim xlSh As Excel.Worksheet
    On Error GoTo err_handler
    Dim iR, jR, lR, mR As Integer
    Dim i, j, k, l, m As Integer
    
    Dim oDoc As Document
    Dim oTbl, oTb2, oTb3 As Table
    Dim stDocName As String
    Dim stPath As String
    Dim plage As Range, resultat As Integer
    Dim User As String
    
    User = "t.molierac"
    
    'Affectation des données aux variables
    Set xlApp = CreateObject("Excel.Application")
    Set xlWb = xlApp.Workbooks.Open("C:\Users\" & User & "\OneDrive - LEXIQUE\RESEAU LEXIQUE\FACTURE\PROD\SGBD_Facture_Production.xlsm")
    Set xlSh1 = xlWb.Worksheets(1)
    Set xlSh2 = xlWb.Worksheets(2)
    Set xlSh5 = xlWb.Worksheets(5)
    'Récupération du nombre de lignes et de colonnes
    iR = xlSh1.UsedRange.Rows.Count
    jR = xlSh2.UsedRange.Rows.Count
    err_handler:
       MsgBox "The code failed at line " & Erl, vbCritical
     
     For i = 41 To 41
            stDocName = "C:\Users\" & User & "\OneDrive - LEXIQUE\RESEAU LEXIQUE\FACTURE\DEF\" & Format(Now, "yyyy_mm_dd_") & xlSh1.Cells(i, 3) & "_" & xlSh1.Cells(i, 4) & "_" & xlSh1.Cells(i, 6) & ".docx"
            Set oDoc = Documents.Add("C:\Users\" & User & "\OneDrive - LEXIQUE\RESEAU LEXIQUE\FACTURE\PROD\Facture_Modèle_Production.docm")
            Set oTbl = oDoc.Tables(1)
            Set oTb2 = oDoc.Tables(2)
            Set oTb3 = oDoc.Tables(3)
     
            oDoc.Bookmarks("S1").Range.Text = xlSh1.Cells(i, 5)
            oDoc.Bookmarks("S2").Range.Text = xlSh1.Cells(i, 7)
            oDoc.Bookmarks("S3").Range.Text = xlSh1.Cells(i, 6)
            oDoc.Bookmarks("S4").Range.Text = xlSh1.Cells(i, 8)
            oDoc.Bookmarks("S5").Range.Text = xlSh1.Cells(i, 9)
            oDoc.Bookmarks("S6").Range.Text = xlSh1.Cells(i, 10)
            oDoc.Bookmarks("S7").Range.Text = xlSh1.Cells(i, 11)
            oDoc.Bookmarks("S8").Range.Text = xlSh1.Cells(i, 12)
            oDoc.Bookmarks("S9").Range.Text = xlSh1.Cells(i, 13)
            oDoc.Bookmarks("S10").Range.Text = xlSh1.Cells(i, 14)
            oDoc.Bookmarks("S0").Range.Text = xlSh1.Cells(i, 4)
            oDoc.Bookmarks("S21").Range.Text = Format(Now, "dd mmmm yyyy")
            oDoc.Bookmarks("SIBAN").Range.Text = xlSh5.Cells(3, 2)
            oTbl.Rows.Add
            oTbl.Rows.Last.Cells(1).Range.Text = xlSh1.Cells(i, 15)
            oTbl.Rows.Last.Cells(1).Range.ParagraphFormat.Alignment = wdAlignParagraphJustify
            oTbl.Rows.Last.Cells(2).Range.Text = xlSh1.Cells(i, 18)
            oTbl.Rows.Last.Cells(3).Range.Text = xlSh1.Cells(i, 19)
            oTbl.Rows.Last.Cells(4).Range.Text = xlSh1.Cells(i, 20)
                
                For k = 2 To 4
                oTbl.Rows.Last.Cells(k).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
                Next k
                
            oTbl.Rows.Last.Range.Font.Bold = False
            
            If xlSh1.Cells(i, 21) = 0 Then
            oTbl.Rows.Add
            oTbl.Rows.Last.Cells(1).Range.Text = "TOTAL"
            oTbl.Rows.Last.Cells(2).Range.Text = xlSh1.Cells(i, 24)
            oTbl.Rows.Last.Cells(3).Range.Text = xlSh1.Cells(i, 25)
            oTbl.Rows.Last.Cells(4).Range.Text = xlSh1.Cells(i, 26)
                For k = 2 To 4
                oTbl.Rows.Last.Cells(k).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
                Next k
            
            oTb3.Delete
            
            Else
            
            oTbl.Rows.Add
            oTbl.Rows.Last.Cells(1).Range.Text = "Frais suivant détail ci-après"
            oTbl.Rows.Last.Cells(1).Range.ParagraphFormat.Alignment = wdAlignParagraphJustify
            oTbl.Rows.Last.Cells(2).Range.Text = xlSh1.Cells(i, 21)
            oTbl.Rows.Last.Cells(3).Range.Text = xlSh1.Cells(i, 22)
            oTbl.Rows.Last.Cells(4).Range.Text = xlSh1.Cells(i, 23)
            oTbl.Rows.Last.Range.Font.Bold = False
            oTbl.Rows.Add
            oTbl.Rows.Last.Cells(1).Range.Text = "TOTAL"
            oTbl.Rows.Last.Cells(2).Range.Text = xlSh1.Cells(i, 24)
            oTbl.Rows.Last.Cells(3).Range.Text = xlSh1.Cells(i, 25)
            oTbl.Rows.Last.Cells(4).Range.Text = xlSh1.Cells(i, 26)
                For k = 1 To 4
                oTbl.Rows.Last.Cells(k).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
                Next k
                   
            For j = 2 To jR
            If xlSh2.Cells(j, 3) = xlSh1.Cells(i, 4) Then
            oTb3.Rows.Add
            oTb3.Rows.Last.Cells(1).Range.Text = xlSh2.Cells(j, 12)
            oTb3.Rows.Last.Cells(2).Range.Text = xlSh2.Cells(j, 5) & " - " & xlSh2.Cells(j, 6)
            oTb3.Rows.Last.Cells(1).Range.ParagraphFormat.Alignment = wdAlignParagraphJustify
            oTb3.Rows.Last.Cells(2).Range.ParagraphFormat.Alignment = wdAlignParagraphJustify
            oTb3.Rows.Last.Cells(3).Range.Text = xlSh2.Cells(j, 9)
            oTb3.Rows.Last.Range.Font.Bold = False
            oTb3.Rows.Last.Cells(3).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
            End If
        
            Next j
                        
            End If
     
    Next i
    
    lR = oDoc.Tables(1).Rows.Count
    
    With oDoc.Tables(1)
        For l = 1 To lR
           
        .Rows(l).Height = CentimetersToPoints(1)
        .Rows(l).Cells.VerticalAlignment = wdAlignVerticalCenter
        Next l
    
    End With
    
    If xlSh1.Cells(i, 21) <> 0 Then
    
    mR = oDoc.Tables(3).Rows.Count
    
    With oDoc.Tables(3)
        For m = 1 To mR
           
        .Rows(m).Height = CentimetersToPoints(1)
        .Rows(m).Cells.VerticalAlignment = wdAlignVerticalCenter
        Next m
    
    End With
    
    End If
    
    oDoc.Tables(1).Rows.Last.Range.Font.Bold = True
    
    If xlSh1.Cells(i, 21) <> 0 Then
    oDoc.Tables(3).Rows.Last.Range.Font.Bold = True
    End If
    
    oTb2.Columns(1).Cells(2).Range.Text = xlSh1.Cells((i - 1), 24)
    oTb2.Columns(2).Cells(2).Range.Text = xlSh1.Cells((i - 1), 27)
    oTb2.Columns(3).Cells(2).Range.Text = xlSh1.Cells((i - 1), 25)
    
    With oDoc.Tables(2)
        For k = 1 To 2
           
        .Columns(k).Cells(k).Height = CentimetersToPoints(1)
        .Rows(k).Cells.VerticalAlignment = wdAlignVerticalCenter
        Next k
     
        .Rows.Last.Cells(1).Range.ParagraphFormat.Alignment = wdAlignParagraphJustify
        
    End With
    
    oDoc.SaveAs stDocName
    
    oDoc.Close
    
    Set oDoc = Nothing
    
    xlWb.Close
    xlApp.Quit
    Set xlSh = Nothing
    Set xlWb = Nothing
    Set xlApp = Nothing
    
    
    End Sub
    Images attachées Images attachées

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    4 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 4 119
    Points : 10 521
    Points
    10 521
    Billets dans le blog
    28

    Par défaut

    Bonjour,

    Mettez déjà un Option Explicit en tête de votre module, faites un débogage et créez les variables manquantes.

    Ces lignes sont bizarrement placées.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    err_handler:
    MsgBox "The code failed at line " & Erl, vbCritical
    Pour la fermeture de votre fichier Excel, complétez avec SaveChanges et l'option choisie.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  3. #3
    Candidat au Club
    Homme Profil pro
    Juriste
    Inscrit en
    septembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Juriste

    Informations forums :
    Inscription : septembre 2019
    Messages : 3
    Points : 4
    Points
    4

    Par défaut erreur de compilation: membre de méthode ou de données introuvable

    Eric,

    Merci pour votre réponse rapide et claire.

    Le problème est résolu.

    Bien à vous,

    TM

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

Discussions similaires

  1. [XL-2016] Erreur de compilation - - Membre de méthode ou de donnée introuvable
    Par Nospam54 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/03/2019, 17h50
  2. [XL-2007] Erreur incompréhensible "Membre de méthode ou de données introuvable"
    Par ted the Ors dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/04/2017, 11h39
  3. [AC-2010] Erreur de compilation membre de méthode ou de données introuvable
    Par mcharmat dans le forum VBA Access
    Réponses: 3
    Dernier message: 12/05/2016, 00h32
  4. Réponses: 2
    Dernier message: 01/10/2010, 16h01
  5. Erreur de compilation: Membre de méthode ou de données introuvable
    Par toniodelavega dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/08/2010, 08h03

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