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

XL 2016 base de données Access depuis un fichier Excel.

gothc

XLDnaute Occasionnel
Bonjour le forum j'ai un probleme avec mon fichier quand il demarre j'ai une erreur

erreur de compilation projet ou bibliothèque introuvable
Set BD_Employes = DAO.OpenDatabase(ActiveWorkbook.Path & "\BD_Employés.mdb", False, False)

j'ai bien mon dossier EMPLOYES avec mon fichier excel et mon fichier access BD_Employés.mdb
Merci de votre aide



VB:
Private Sub Workbook_Open()
    Dim Base_Analyse As Database
    Dim Table_ANALYSE As Recordset
   
    Application.EnableEvents = True
   
   
    Sheets("Employés").EMP_liste_rubriques.Clear

Sheets("Employés").EMP_liste_rubriques.AddItem "Col. Sélectionnées"
Sheets("Employés").EMP_liste_rubriques.AddItem "TOUT"
Sheets("Employés").EMP_liste_rubriques.AddItem "TELEPHONIE"
Sheets("Employés").EMP_liste_rubriques.AddItem "RENSEIGNEMENTS_GENERAUX"
Sheets("Employés").EMP_liste_rubriques.AddItem "CACES"
Sheets("Employés").EMP_liste_rubriques.AddItem "PERMIS"
Sheets("Employés").EMP_liste_rubriques.AddItem "HABILITATIONS"
Sheets("Employés").EMP_liste_rubriques.AddItem "SECOURISME"
Sheets("Employés").EMP_liste_rubriques.AddItem "MEDICAL"



        Set BD_Employes = DAO.OpenDatabase(ActiveWorkbook.Path & "\BD_Employés.mdb", False, False)
        Set Table_employes = BD_Employes.OpenRecordset("SELECT Employés.* " & _
        "FROM Employés " & _
        "ORDER BY Employés.Nom ASC", dbOpenDynaset)
       
        If Table_employes.RecordCount = 0 Then GoTo 888
        Table_employes.MoveFirst
        Table_employes.MoveLast
        aa = Table_employes.RecordCount
       
        Sheets("Fiche individuelle").fi_liste_employes.Clear
        Table_employes.MoveFirst
        ligne = 1
            Sheets("Fiche individuelle").fi_liste_employes.AddItem
       
        For bb = 0 To aa - 1
       
            Sheets("Fiche individuelle").fi_liste_employes.AddItem
            Sheets("Fiche individuelle").fi_liste_employes.List(ligne, 0) = Table_employes.Fields("N°_Enr").Value
            On Error Resume Next
            Sheets("Fiche individuelle").fi_liste_employes.List(ligne, 1) = Table_employes.Fields("Nom").Value
            On Error Resume Next
            Sheets("Fiche individuelle").fi_liste_employes.List(ligne, 2) = Table_employes.Fields("Prénom").Value
            Table_employes.MoveNext
           
            ligne = ligne + 1
       
        Next bb
       
       
888:
        Table_employes.Close
        Set Table_employes = Nothing
       
    BD_Employes.Close
    Set BD_Employes = Nothing
   
    Sheets("Employés").Activate
    Sheets("Employés").ScrollRow = 10
   
BD_Aniv_Saint.Show
 

gothc

XLDnaute Occasionnel
Merci pour le code
j'ai une erreur sur la ligne en jaune je sais pas pourquoi
c_en_c = ActiveCell.Column



VB:
Sub MAJ_BD_Employes()
Dim Base_Analyse As Database
Dim Table_ANALYSE As Recordset
[COLOR=rgb(250, 197, 28)]l_en_c = ActiveCell.Row[/COLOR]
c_en_c = ActiveCell.Column
Chemin = ActiveWorkbook.Path
Sheets("Employés").Activate

            On Error Resume Next
            ActiveSheet.ShowAllData
            ActiveSheet.AutoFilter.Sort.SortFields.Clear

    xx = ActiveSheet.Cells.Find("*", [A1], xlFormulas, , xlByRows, xlPrevious).Row
   
   
    If xx < 10 Then GoTo 100
        Sheets("Employés").Unprotect
        Sheets("Employés").Range("A12:CQ" & xx).ClearContents
        Sheets("Employés").Range("A10:CQ10").ClearContents
100:
        Set Base_Analyse = DAO.OpenDatabase(ActiveWorkbook.Path & "\BD_Employés.mdb", False, False)
        Set Table_ANALYSE = Base_Analyse.OpenRecordset("SELECT * " & _
            "FROM Employés " & _
            "ORDER BY Employés.Nom ASC;", DAO.dbOpenSnapshot)
                'Copie le résultat à partir de la cellule A1 de la feuille Excel
                    For ii = 0 To Table_ANALYSE.Fields.Count - 1
                        ActiveSheet.Cells(9, ii + 2).Value = Table_ANALYSE.Fields(ii).Name
                        ActiveSheet.Cells(1, ii + 2).Value = Table_ANALYSE.Fields(ii).Type
                    Next ii

                Range("B12").CopyFromRecordset Table_ANALYSE

        Table_ANALYSE.Close
        Set Table_ANALYSE = Nothing
       
    Base_Analyse.Close
    Set Base_Analyse = Nothing
           

    Range("A11").Select
   
Cells(l_en_c, c_en_c).Select

'    Sheets("Employés").Protect
           
End Sub
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @gothc , @dysorthographie , le Forum

Bizarre ça, à mon avis il bat la campagne en surlignant cette ligne... referme tout et redémarre ...

VB:
Sub test()
c_en_c = ActiveCell.Column
MsgBox c_en_c
End Sub

Même sans déclarer c_en_c (donc variant) celà doit fonctionner...

C'est un leurre, la vérité est ailleurs, n'est-ce pas Scully ?

Bonne soirée
@+Thierry
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re

ah ben voilà tu as trouvé... La vérité était bien ailleurs !!!!



Sur 365 pas mal de DLL / OCX ne sont pas disponibles apparemment à ce que je vois...

Bon courage
@+Thierry
 

gothc

XLDnaute Occasionnel
J'ai reçu une réponse du forum Microsoft mais je n'ai pas chance je suis en version 64 bit
Bonjour,



Les fichiers MSCAL.OCX et MSCOMCT2.OCX ont en effet disparu avec Windows 10, ils me semble. Ils ne fonctionnent qu'avec les versions 32 bits d'Office. Si c'est ton cas, je peux te faire parvenir les fichiers. Il faudra les inscrire dans le registre comme expliqué ici :



https://answers.microsoft.com/fr-fr...onthview/31a291de-3d2a-4fd0-93c8-12415c3814a7



Tu peux aussi utiliser le calendrier de Ron de Bruin en installant sa macro complémentaire. C'est expliqué ici en anglais, mais il suffit de télécharger la macro complémentaire, de l'installer et de personnaliser le contrôle (langue...) :



https://www.rondebruin.nl/win/addins/datepicker.htm



Cordialement.



Daniel
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…