Saisie valeur textbox dans un autre classeur sans l'ouvrir

Bonjour cher forum,

Je vous sollicite car je n'ai pas réussi à mettre la main à ce problème

Pour faire simple, j'ai un fichier principal qui va aller alimenter des fichiers secondaires à partir d'Userforms.

1. Les contraintes :

- Les fichiers secondaires se trouvent sur le sharepoint (pour le chemin, ce n'est pas un problème, par contre, ces fichiers sortent en lecture seule...)

- Les fichiers secondaires ne doivent pas s'ouvrir

2. Fonctionnement :

J'ouvre mon fichier principal, je saisis mes données dans les textboxs d'un Usf qui va alimenter UN des fichiers secondaires spécifique sans l'ouvrir puis va imprimer un document présent dans ce fichier secondaire.

3. Voici un code que j'ai trouvé qui me paraît le + proche de ce que je veux (après bien sûr à adapter avec mes textbox, etc.):

J'ai bien ajouté la référence 2.8 Activex mais un message d'erreur apparaît "Mise à jour impossible. La base de données ou l'objet est en lecture seule."

Sub ExportData_Plage_De_Cellules()
'Requiert la référence suivante :
'"Microsoft Activex Data Objects 2.8 library"

Dim Conn As New ADODB.Connection
Dim Rst As New ADODB.Recordset

Dim NomFeuilSource As String
Dim AdrPlgSource As String

Dim NomFichier As String
Dim FilePathDest As String
Dim NomFeuilDest As String
Dim AdrPlgDest As String

Dim Requete As String
Dim C As Range

'*********** Variable à renseigner**************
NomFeuilSource = "Feuil1"
AdrPlgSource = Range("A1:A3").Address(True, True)

'Fichier de destination
NomFichier = "ABook1.xls"
'Chemin de mon fichier de destination
FilePathDest = "C:\denis\"
'Feuille de destination
NomFeuilDest = "Sheet3"
'Plage de destination
AdrPlgDest = "G1:G3"

'************************************************

Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & FilePathDest & NomFichier & _
     ";" & "Extended Properties=""Excel 8.0;HDR=NO;IMEX=2"""

Requete = "SELECT * from [" & NomFeuilDest & "$" & AdrPlgDest & "]"
Rst.Open Requete, Conn, adOpenKeyset, adLockOptimistic

'Dans le classeur où est écrit la macro
With ThisWorkbook
    With .Worksheets(NomFeuilSource)
        'Pour chacune des cellules que l'on veut exporter les données
        For Each C In .Range(AdrPlgSource)
            'insertion de la valeur
            Rst(0) = CDate(C.Value)
            'Mise à jour de la ligne d'enregistrement
            Rst.Update
            'Passe à l'autre ligne du recordset
            Rst.MoveNext
        Next
    End With
End With
'Fermeture de la connexion et recordset
Rst.Close
Conn.Close
'Libération de l'espace occupé par les objets
Set Rst = Nothing
Set Conn = Nothing

End Sub

Si ce n'est pas le bon code, n'hésitez pas à me le dire...

Je peux créer des fichiers tests si besoin, pour cette demande, j'ai pensé qu'il n'y aurait pas d'utilité (je peux me tromper)

Si besoin de plus d'explications, n'hésitez pas aussi

Merci beaucoup pour votre aide

Bonne soirée

Bonjour cher forum,

Est-ce que la demande est difficile ou bien j'ai mal défini ? (afin que je clôture ou non)

Merci pour votre retour

Bonne journée

Bonjour cher forum,

Pourriez-vous m'aider svp?

(Je sais que je suis insistant, je m'en excuse d'avance...)

Belle journée à vous

Bonjour,

tu peux tourner les choses comme tu veux, pour écrire dans un fichier il faut l'ouvrir et il faut pouvoir écrire dedans. Or le message d'erreur que tu reçois (ADO) indique qu'il est en mode lecture seule ...

Bonjour h2so4,

Merci pour ton retour :)

D'accord, j'essaie de creuser un peu + pour voir s'il n'y a pas d'alternative

Rechercher des sujets similaires à "saisie valeur textbox classeur ouvrir"