Remplissage planning Excel via access

Bonjour,

J' ai réussi a remplir mon planning Excel via Access mais le problème est que le temps de remplissage est long.
Auriez vous une solution pour améliorer le code ?

Merci.

Set base = DBEngine.OpenDatabase(chemin_bdd)
enr.MoveFirst

    Dim Cel As Range
    Dim NumPerso As Integer
    Dim DatePerso As Date
    Dim Comm As String

    For Each Cel In Range("J8:AY9")
        NumPerso = Sheets("PLANNING").Cells(Cel.Row, 53).Value
        DatePerso = Sheets("PLANNING").Cells(5, Cel.Column).Value

        Set enr = base.OpenRecordset("SELECT DISTINCT * FROM Tbl_PERMANENCE WHERE DATE_MOTIF BETWEEN #" & Format(DatePerso, "mm/dd/yyyy") & "# AND  #" & Format(DatePerso, "mm/dd/yyyy") & "# ORDER BY DATE_MOTIF ASC", dbOpenDynaset)
        If enr.Fields("N°_PERSONNEL").Value = NumPerso Then
            Cel.Value = enr.Fields("MOTIF").Value
            Comm = enr.Fields("COMMENTAIRE").Value
            If Comm <> "" Then
                Cel.AddComment
                Cel.Comment.Text Text:=Comm
                Comm = ""
            End If
        End If

    Next

Set base = Nothing
Set enr = Nothing

Bonjour,

En effet, rien qu'à la lecture du code ça sent le moisi!

En effet, accéder à la base à chaque cellule de la plage indiquée n'est pas pour aller vite.

Pour accélérer ce code voici ce que je ferai :

1/ UNE seule requête vers Access bien sentie pour récupérer l'ensemble des données requise vers un tableau (T1 par exemple)

2/ Placer la plage dans une variable tableau (T2 par exemple)

3/ Et ensuite boucler sur les lignes de T2 en bouclant sur T1 pour compléter ce qu'il faut là où il faut

4/ Optimisation subsidiaire, pour accélérer la requête Sql :

* un GROUP BY est un poil plus rapide que le DISTINCT

* sélectionner uniquement les champs pertinents (plutôt que le SELECT *) ça gagne aussi qq millisecondes

* au final la requête pourrait être du genre :

SELECT `N°_PERSONNEL`,`Motif`,`Commentaire` FROM [Tbl_PERMANENCE]

WHERE condition_machin

GROUP BY `N°_PERSONNEL`,`Motif`,`Commentaire`

Pierre

Rechercher des sujets similaires à "remplissage planning via access"