Ecrire plusieurs lignes dans un classeur fermé

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Scoobidoo

XLDnaute Occasionnel
Bonjour le forum, bonjour à tous,

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
 
Re : Ecrire plusieurs lignes dans un classeur fermé

Bonjour Boisgontier, le forum

J'ai modifié ce que tu m'indique dans ton message pour le NumCt et ai créé une msgbox dont voici le message récupèré :
"INSERT INTO [Liste des contrats demandés$] VALUES (#10/11/2010#, 789656,'QWRTJ', Scoobidoo)". Cela semble correspondre effectivement à la 1ère ligne que je souhaiterais ajouter dans le classeur 'Envoi des demandes'. Néanmoins, à la ligne de code suivante réapparait le message d'erreur indiqué dans mon message précédent. Je vais regarder ton lien voir si je trouve une autre possibilité que celle-ci d'arriver à mes fins. Encore merci à tous pour l'aide que vous pourrez m'apporter.

Scoobidoo
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour