Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Coordonées cellules dans fichier fermé

ChuBaKa

XLDnaute Nouveau
Bonjour à tout le forum.

J'ai récupéré sur le forum il y a quelques temps un code permettant d'écrire dans un fichier Excel fermé à partir d'un autre fichier excel. Son auteur voudra bien m'excuser, mais je ne me souviens plus de son nom (Lien supprimé. Le code est le suivant (adapté à mes besoins) :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'necessite d'activer la reference Microsoft ActiveX Data Objects x.x Library
Dim a As Integer
a = Selection.Row

Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Fichier As String, Cible As String, Feuille As String
Dim i As Byte

Fichier = ThisWorkbook.Path & "\tex.xls"
Feuille = "Sheet1$" 'attention a ne pas oublier le "$"
Set Cn = New ADODB.Connection
Cn.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _
"data source=" & Fichier & ";" & _
"extended properties=""Excel 8.0;"""

Cible = "SELECT * FROM [" & Feuille & "];"

Set Rs = New Recordset
Rs.Open Cible, Cn, adOpenKeyset, adLockOptimistic

With Rs
'.AddNew
.Fields(15) = 1


.Update
End With



Rs.Close
Cn.Close

'For iCols = 0 To Rs.Fields.Count - 1
' ws.Cells(1, iCols + 1).Value = Rs.Fields(iCols).Name
'Next
'ws.Range(ws.Cells(1, 1), _
'ws.Cells(1, Rs.Fields.Count)).Font.Bold = True
'ws.Range("A2").CopyFromRecordset Rs



'For i = 1 To 5
'Me.Controls("TextBox" & i) = ""
'Next i
End Sub



Mais j'ai un problème de compréhension du code (je pense d'ailleurs que la réponse à ma question se trouve dans le code mais bon...). Dans la boucle 'With RS ....' j'ai inhibé le champ .AddNew car je voudrais pouvoir positionner la valeur que j'envoi dans le fichier fermé (en l'occurrence 1) dans une cellule de mon choix de ce fichier fermé. En agissant sur le champ .Field(15) je peux envoyer ma valeur dans la colonne de mon choix. Par contre, je n'arrive pas à trouver la syntaxe pour agir sur le numéro de la ligne. J'ai essayé .Row , .Rowfield mais cela ne fonctionne pas. En résumé, mon but est de pouvoir écrire dans une cellule de mon choix d'un fichier Excel fermé.
Si quelqu'un à une suggestion, merci d'avance.
 

MichelXld

XLDnaute Barbatruc
Re : Coordonées cellules dans fichier fermé

bonjour

Cet exemple écrit dans la cellule G30 de la feuille nommée "Feuil1" d'un classeur fermé

Code:
Sub exportDonneeDansCelluleClasseurFerme()
    Dim Cn As ADODB.Connection
    Dim Cd As ADODB.Command
    Dim Rst As ADODB.Recordset
    Dim Fichier As String
    
    Fichier = "C:\Documents and Settings\mimi\dossier\LeClasseur.xls"
    
    Set Cn = New ADODB.Connection
    Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & Fichier & ";" & _
        "Extended Properties=""Excel 8.0;HDR=No;"";"
    
    Set Cd = New ADODB.Command
    Cd.ActiveConnection = Cn
    Cd.CommandText = "SELECT * FROM [Feuil1$G30:G30]"
    
    Set Rst = New ADODB.Recordset
    Rst.Open Cd, , adOpenKeyset, adLockOptimistic
    Rst(0).Value = "Donnée test"
    Rst.Update
    
    Cn.Close
    Set Cn = Nothing
    Set Cd = Nothing
    Set Rst = Nothing
End Sub


Bonne soirée
MichelXld
 

ChuBaKa

XLDnaute Nouveau
Re : Coordonées cellules dans fichier fermé

Merci pour cette information.
C'est sur ce forum que j'ai appris ce que je sais du VBA et je vois qu'on y trouve toujours réponse à ces questions. Merci à MichelXLD et tous ceux qui font la richesse (et la convivialité) de ce forum.

Bonne soirée.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…