Bonjour à tous,

Pour info, j'utilise actuellement un classeur avec l'extension .XLSB avec un modèle de données PowerPivot relié à une base de données SQL Server 2008 R2.
Ce classeur récupère des informations de ma base de données puis utilise ces données pour créer un tableau simple avec une liste d'articles et de temps dans une nouvelle feuille.

Mon problème est le suivant, je souhaiterais envoyer les données de ce tableau vers ma BDD SQL Server via une requête UPDATE.

Pour ce faire, j'utilise une macro liée à un bouton sur la feuille concernée.
Pour chaque ligne de mon tableau (nommé "Données"), je voudrais exécuter une requête UPDATE avec les paramètres récupérés sur la ligne.
Après quelques recherches et une petite révision de VBA, voici ce que j'ai produis :

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
Sub EnvoiDonnéesBDD()
    'Déclaration des variables de connexion
    Dim connexion As New ADODB.Connection
    Set connexion = New Connection
 
    'Définition de la chaine de connexion - Chaine de connexion utilisée par PowerPivot
    connexionChaine = "Provider=SQLOLEDB; " & _
                      "Data Source=SHV-PMISGBDR; " & _
                      "Persist Security Info=false; " & _
                      "Integrated Security=SSPI; " & _
                      "Initial Catalog=TEST"
 
    'Ouverture de la base de données
    connexion.Open connectionChaine
 
    With ThisWorkbook.Worksheets(3)
        Dim article, temps, composant As String
        Dim I As Integer
        Dim tableau As Range
        Set tableau = Range("Données")
        I = 3
 
        'Boucle qui parcoure chaque ligne du tableau
        For Each ligne In tableau.Rows
            'Affectation des variables pour la requête
            article = ThisWorkbook.ActiveSheet.Range("B" & I).Value
            temps = ThisWorkbook.ActiveSheet.Range("D" & I).Value
            composant = ThisWorkbook.ActiveSheet.Range("F" & I).Value
 
            'Création de la requête UPDATE
            requete = "UPDATE NOMENCLATURE SET TEMPS = " & temps & " WHERE SOCIÉTÉ = '100' AND ARTICLE = " & article & " AND COMPOSANT = " & composant
            connexion.Execute requete
            I = I + 1
        Next ligne
        connexion.Close
        Set connexion = Nothing
        Exit Sub
    End With
End Sub

Il s'avère que ce code ne fonctionne pas car le fournisseur de la connexion n'est pas pris en charge par Excel.
J'avoue ne pas être suffisamment calé en VBA pour déterminer comment résoudre mon problème.
De plus, utilisant PowerPivot, je me doute (ou du moins j'espère) qu'il doit y avoir une meilleure manière de faire le traitement que je recherche.

Je m'en remet donc à vos connaissances pour m'aider dans cette tâche.

Merci d'avance.