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