Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Type défini par l'utilisateur non défini

Marwa Chefii

XLDnaute Nouveau
Bonjour,

J'ai un souci sur ma requête VBA qui importe des données ACCESS dans EXCEL, la compilation me renvoie le message d'erreur : "Type défini par l'utilisateur non défini"



Tout en sachant que les références ci dessous sont cochés:



VB:
Option Explicit
Sub Bouton_Actualiser_ACCESS()
    
    Application.ScreenUpdating = False
    
    On Error Resume Next
    Dim chemin_bd As String
    Dim ligne As Range
    Dim SQL As String
    Dim enr As Recordset
    Dim Date_Vue As Recordset
    Dim base As Database
    Dim Classeur As Workbook, Source As Worksheet, PPH As Worksheet, PARAMETRES As Worksheet
    Dim Intermédiaire As Integer
    
    Set Classeur = ActiveWorkbook
    Set Source = Classeur.Worksheets("SOURCE PPH")
    Set PPH = Classeur.Worksheets("PERSONNES PHYSIQUES")
    Set PARAMETRES = Classeur.Worksheets("PARAMETRES")
    
    Set ligne = Source.Range("A" & Source.UsedRange.Rows.Count + 1)
    Intermédiaire = PPH.Range("C7").Value
    SQL = "SELECT * FROM SOURCE_PPH WHERE INTERMEDIAIRE_FIAB = " & Intermédiaire
    chemin_bd = PARAMETRES.Range("C4").Value & PARAMETRES.Range("C6").Value
    
    Set base = DBEngine.OpenDatabase(chemin_bd)
    Set Date_Vue = base.OpenRecordset("SELECT MAX(DATE_DE_VUE) as MAX_VUE FROM SOURCE_PPH GROUP BY DATE_DE_VUE", dbOpenDynaset)
    
    Déprotéger
    
    PPH.Range("C5").CopyFromRecordset Date_Vue
    
    If PPH.Range("D5").Value = "NON" Then
    
    Set enr = base.OpenRecordset(SQL, dbOpenDynaset)
    ligne.CopyFromRecordset enr
    
    enr.Close
    base.Close
    
    Set enr = Nothing
    Set base = Nothing


    Source.Range("Y2").Select
    Selection.AutoFill Destination:=Range("Y2:Y" & Source.UsedRange.Rows.Count)
    
    PPH.Activate
    
    PPH.AutoFilterMode = False
    
    Dim PL1 As Range
    Set PL1 = Application.Union(Range("G12:O" & PPH.UsedRange.Rows.Count), Range("U12:V" & PPH.UsedRange.Rows.Count), Range("X12:X" & PPH.UsedRange.Rows.Count))
    PL1.Locked = True
    
    PPH.Range("B11").Select
    Selection.AutoFilter
    PPH.Range("$B$11:$AD" & PPH.UsedRange.Rows.Count).AutoFilter Field:=1, Criteria1:="Actuelle"
    
    Dim PL As Range
    Set PL = Application.Union(Range("G12:O" & PPH.UsedRange.Rows.Count), Range("U12:V" & PPH.UsedRange.Rows.Count), Range("X12:X" & PPH.UsedRange.Rows.Count))
    PL.Locked = False
    
    'PPH.Range("F4").Value = ""
    'PPH.Shapes.Range(Array("Groupe 3")).Visible = False
    
    Protéger

    MsgBox "FICHIER ACTUALISE AVEC SUCCES!"
    
    Exit Sub
    
    Else:
    
    Protéger
    
    MsgBox "ATTENTION ... FICHIER DEJA ACTUALISE!"
    
    Exit Sub
    
    End If
    
    Application.ScreenUpdating = True
    
End Sub


Merci d'avance pour votre aide
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
433
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…