Dans un module, VBA place ce qui est en gras
Dans le menu outils/références de VBA, selectionne Mircrosoft ActiveX Data Objets 2.? Library ou le ? depends de ce que tu as sur ton PC
Les 2 procedures ci-dessous, parcourt la feuille passer en parametre dans
call Exporte_SQL("feuill1").
Cela ecrit dans SQL les tranchesa et tranchesB des salaires ainsi que le nom d'utilisateur selon les trimestres ( c'est du code que j'avais tapé, donc c'est juste pour exemple )
Private DataBase_Commande As String 'COMMANDE A EFFECTUER SUR LA BASE DE DONNNES
Private DataBase_Connection As ADODB.Connection 'CONNECTION A LA BASE DE DONNEES
Private DataBase_ConnectionString As String 'CHAINE DE CONNECTION A LA BASE DE DONNEES
Private DataBase_ResultatCommande As ADODB.Recordset 'TABLEAU DE DONNEES RENVOYEES PAR LA REQUETE
Public Sub Exporte_SQL(Feuille As Worksheet)
Dim Ligne As Long
Ligne = 2
Do Until Feuille.Cells(Ligne, 20).Value = "" 'exporte jusqu'a ce que la cellule de la colonne 20 soit vide
Call Recap_SQL(Feuille.Cells(Ligne, 20).Value, Feuille.Name, Feuille.Cells(Ligne, 18).Value, Feuille.Cells(Ligne, 19).Value) 'exporte les cellules des colonnes 20,18,19 de la ligne en cours
Ligne = Ligne + 1
Loop
MsgBox "Exportation Terminée", vbInformation, "Nicolas : Information"
End Sub
Public Sub Recap_SQL(Fk_Employe As Integer, Periode As String, Tranche_A As Double, Tranche_B As Double)
Dim Requete As String
DataBase_ConnectionString = "Provider=SQLOLEDB.1;Password=motdepasse;Persist Security Info=True;User ID=sa;Initial Catalog=database;Data Source=serveur"
Select Case Periode
'-----------------------------
'-----------------------------
Case "1er Trim 2008"
Requete = "UPDATE Tb_Employe SET Trim_01_Tranche_A =" & Replace(Tranche_A, ",", ".") & ", Trim_01_Tranche_B =" & Replace(Tranche_B, ",", ".") & " WHERE Fk_Employe =" & Fk_Employe & " AND (Periode = 'DU 01/01/2008 AU 31/12/2008')"
Case "2 Trim 2008"
Requete = "UPDATE Tb_Employe SET Trim_02_Tranche_A =" & Replace(Tranche_A, ",", ".") & ", Trim_02_Tranche_B =" & Replace(Tranche_B, ",", ".") & " WHERE Fk_Employe =" & Fk_Employe & " AND (Periode = 'DU 01/01/2008 AU 31/12/2008')"
Case "3 Trim 2008"
Requete = "UPDATE Tb_Employe SET Trim_03_Tranche_A =" & Replace(Tranche_A, ",", ".") & ", Trim_03_Tranche_B =" & Replace(Tranche_B, ",", ".") & " WHERE Fk_Employe =" & Fk_Employe & " AND (Periode = 'DU 01/01/2008 AU 31/12/2008')"
Case "4 Trim 2008"
Requete = "UPDATE Tb_Employe SET Trim_04_Tranche_A =" & Replace(Tranche_A, ",", ".") & ", Trim_04_Tranche_B =" & Replace(Tranche_B, ",", ".") & " WHERE Fk_Employe =" & Fk_Employe & " AND (Periode = 'DU 01/01/2008 AU 31/12/2008')"
'-----------------------------
'-----------------------------
Case "1er Trim 2009"
Requete = "UPDATE Tb_Employe SET Trim_01_Tranche_A =" & Replace(Tranche_A, ",", ".") & ", Trim_01_Tranche_B =" & Replace(Tranche_B, ",", ".") & " WHERE Fk_Employe =" & Fk_Employe & " AND (Periode = 'DU 01/01/2009 AU 31/12/2009')"
Case "2 Trim 2009"
Requete = "UPDATE Tb_Employe SET Trim_02_Tranche_A =" & Replace(Tranche_A, ",", ".") & ", Trim_02_Tranche_B =" & Replace(Tranche_B, ",", ".") & " WHERE Fk_Employe =" & Fk_Employe & " AND (Periode = 'DU 01/01/2009 AU 31/12/2009')"
Case "3 Trim 2009"
Requete = "UPDATE Tb_Employe SET Trim_03_Tranche_A =" & Replace(Tranche_A, ",", ".") & ", Trim_03_Tranche_B =" & Replace(Tranche_B, ",", ".") & " WHERE Fk_Employe =" & Fk_Employe & " AND (Periode = 'DU 01/01/2009 AU 31/12/2009')"
Case "4 Trim 2009"
Requete = "UPDATE Tb_Employe SET Trim_04_Tranche_A =" & Replace(Tranche_A, ",", ".") & ", Trim_04_Tranche_B =" & Replace(Tranche_B, ",", ".") & " WHERE Fk_Employe =" & Fk_Employe & " AND (Periode = 'DU 01/01/2009 AU 31/12/2009')"
'-----------------------------
'-----------------------------
End Select
Set DataBase_Connection = New ADODB.Connection 'NOUVELLE CONNECTION A LA BASE DE DONNEES
On Error Resume Next 'MISE EN PLACE DE LA GESTION D'ERREUR
With DataBase_Connection 'TRAVAILLE DIRECTEMENT AVEC LA CONNECTION
.ConnectionTimeout = 5 'DELAI DE DECONNECTION SI ERREUR
.ConnectionString = DataBase_ConnectionString 'CHAINE DE CONNECTION A LA BASE DE DONNEES D'INTERFACE
.Open 'OUVRE LA CONNECTION
End With 'ARRETE DE TRAVAILLER DIRECTEMENT AVEC LA CONNECTION
If Err.Number = 0 Then 'SI ERREUR LORS DE LA CONNECTION A LA BASE DE DONNEES
Call DataBase_Connection.Execute(Requete) 'RESULAT DE LA COMMANDE
If Err.Number = 0 Then 'SI ERREUR
DataBase_Connection.Close
Set DataBase_Connection = Nothing
Else
DataBase_Connection.Close
Set DataBase_Connection = Nothing
MsgBox Err.Description, vbExclamation, "Nicolas : Avertissement"
End If
Else
DataBase_Connection.Close
Set DataBase_Connection = Nothing
MsgBox Err.Description, vbExclamation, "Nicolas : Avertissement"
End If
On Error GoTo 0 'ARRET DE LA GESTION D'ERREUR
End Sub
et voila...
Le succès, c'est la hauteur à laquelle vous rebondissez quand vous avez touché le fond.