Bonjour le forum, bonjour à tous,
J'ai récupérer le code suivant de Silkyroad pour écrire dans un classeur fermé.
J'ai tenté de l'adapter à mes besoins cad que dans mon fichier de "départ", il y a plusieurs lignes que je souhaite écrire dans mon classeur fermé. Malheureusement et je dirais même évidemment, je n'y parviens pas. C'est pourquoi je m'en retourne une nouvelle fois vers vous afin que vous puissiez m'éclairer afin d'y parvenir. Ci après le code avec mes modifications
Pour info, j'ai un message d'erreur sur la ligne 'Cn.Execute strSQL' :
Erreur d'exécution '-2147217900(80040e14)' : Erreur Automation !!!
Je reste à votre disposition si vous avez besoin d'éléments complémentaires pour comprendre.
Merci d'avance à tous.
Scoobidoo
J'ai récupérer le code suivant de Silkyroad pour écrire dans un classeur fermé.
Code:
Sub ajoutEnregistrement()
Dim Cn As ADODB.Connection
Dim Fichier As String, Feuille As String, strSQL As String
Dim LaDate As Date
Dim PrixUnit As Integer
Dim leNom As String, lePrenom As String
Fichier = "C:\Base.xls"
Feuille = "Feuil1"
'Les données à insérer:
LaDate = CDate("26/05/2006")
leNom = "NomTest"
lePrenom = "PrenomTest"
PrixUnit = 40
Set Cn = New ADODB.Connection
With Cn
.Provider = "MSDASQL"
.ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
"DBQ=" & Fichier & "; ReadOnly=False;"
.Open
End With
'Les données doivent être indiquées dans le même ordre que les champs dans la base de données.
strSQL = "INSERT INTO [" & Feuille & "$] " _
& "VALUES (#" & LaDate & "#, " & _
"'" & leNom & "', " & _
"'" & lePrenom & "', " & _
PrixUnit & ")"
Cn.Execute strSQL
Cn.Close
Set Cn = Nothing
End Sub
J'ai tenté de l'adapter à mes besoins cad que dans mon fichier de "départ", il y a plusieurs lignes que je souhaite écrire dans mon classeur fermé. Malheureusement et je dirais même évidemment, je n'y parviens pas. C'est pourquoi je m'en retourne une nouvelle fois vers vous afin que vous puissiez m'éclairer afin d'y parvenir. Ci après le code avec mes modifications
Code:
Sub ajoutEnregistrement()
Dim Cn As ADODB.Connection
Dim Fichier As String, Feuille As String, strSQL As String
Dim LaDate As Date
Dim Demandeur As String
Dim NumCt As String, NomCt As String
Fichier = "Q:\Envoi des demandes.xls"
Feuille = "Liste des contrats demandés"
Set wbSour = ThisWorkbook
Set wsSour = wbSour.Worksheets("Contrats")
Set Plage = wsSour.Range("Liste")
'Les données à insérer:
LaDate = CDate(Date)
For Each Cell In Plage
If Cell.Offset(0, 0).Value <> "" Then
NumCt = UCase(Cell.Offset(0, 0).Value)
NomCt = UCase(Cell.Offset(0, 1).Value)
Demandeur = Application.UserName
End If
Next Cell
Set Cn = New ADODB.Connection
With Cn
.Provider = "MSDASQL"
.ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
"DBQ=" & Fichier & "; ReadOnly=False;"
.Open
End With
'Les données doivent être indiquées dans le même ordre que les champs dans la base de données.
strSQL = "INSERT INTO [" & Feuille & "$] " _
& "VALUES (#" & LaDate & "#, " & _
"'" & NumCt & "', " & _
"'" & NomCt & "', " & _
Demandeur & ")"
Cn.Execute strSQL
Cn.Close
Set Cn = Nothing
End Sub
Pour info, j'ai un message d'erreur sur la ligne 'Cn.Execute strSQL' :
Erreur d'exécution '-2147217900(80040e14)' : Erreur Automation !!!
Je reste à votre disposition si vous avez besoin d'éléments complémentaires pour comprendre.
Merci d'avance à tous.
Scoobidoo