Comment connecter MySQL par VBA dans Excel ?

Pour connecter MySQL à Excel en utilisant VBA, vous devez suivre plusieurs étapes. Voici un guide général pour vous aider à établir cette connexion :

Prérequis :

  • Pilote ODBC pour MySQL : Assurez-vous que le pilote ODBC MySQL est installé sur votre système. Vous pouvez le télécharger depuis le site officiel de MySQL.
  • Configurer une source de données ODBC (DSN) :
    • Ouvrez ” Gestionnaire de sources de données ODBC ” sur votre ordinateur.
    • Sous l’onglet ” DSN Système ” ou ” DSN Utilisateur “, cliquez sur ” Ajouter “.
    • Sélectionnez le pilote MySQL que vous avez installé.
    • Suivez les instructions pour configurer votre DSN avec le nom, le serveur, l’utilisateur, le mot de passe, et le nom de la base de données.

Code VBA pour se connecter à MySQL :

Voici un exemple de code VBA pour se connecter à votre base de données MySQL et exécuter une requête :

Sub ConnectToMySQL()

    ' Declare variables
    Dim conn As Object
    Dim rs As Object
    Dim query As String
    Dim connStr As String

    ' Create a new ADODB connection
    Set conn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")

    ' Connection string to MySQL
    ' Make sure to replace YOUR_DSN_NAME, YOUR_USERNAME, YOUR_PASSWORD with your details
    connStr = "DSN=YOUR_DSN_NAME;UID=YOUR_USERNAME;PWD=YOUR_PASSWORD;"
    
    ' Open the connection
    On Error GoTo ErrHandler
    conn.Open connStr
    
    ' Define your SQL query
    query = "SELECT * FROM your_table_name"
    
    ' Open the recordset
    rs.Open query, conn

    ' Loop through the recordset and append data to Excel sheet
    Dim i As Integer
    i = 1
    Do While Not rs.EOF
        Sheet1.Cells(i, 1).Value = rs.Fields(0).Value
        Sheet1.Cells(i, 2).Value = rs.Fields(1).Value
        ' Continue for other fields if necessary
        rs.MoveNext
        i = i + 1
    Loop

    ' Close the recordset and the connection
    rs.Close
    conn.Close

    Exit Sub

ErrHandler:
    MsgBox "An error occurred: " & Err.Description
    If Not rs Is Nothing Then If rs.State = 1 Then rs.Close
    If Not conn Is Nothing Then If conn.State = 1 Then conn.Close

End Sub

Explications :

  • DSN, UID, PWD : Remplacez les valeurs par votre DSN, nom d’utilisateur et mot de passe MySQL.
  • query : Remplacez `your_table_name` par le nom de la table que vous souhaitez interroger.
  • Sheet1.Cells(i, 1) : Cela spécifie où les données seront placées dans Excel. Ajustez en fonction de vos besoins.
  • Gestion des erreurs : Le code inclut une gestion d’erreurs de base pour fermer proprement la connexion et afficher un message en cas d’échec.

Assurez-vous d’activer la bibliothèque `Microsoft ActiveX Data Objects Library` (ADO) dans l’éditeur VBA sous `Outils` > `Références…`.

En suivant ces étapes, vous devriez pouvoir vous connecter à une base de données MySQL directement depuis Excel en utilisant VBA.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project