Ecrire dans un fichier fermé dans la première cellule vide

jipi06

XLDnaute Junior
Bonjour à toutes et tous

j'essaye de trouver sur le forum une solution pour écrire dans la première cellule vide d'un fichier fermé une nouvelle donnée.

Le but étant de compiler dans ce fichier fermé une action du fichier excel actif (date d'envoi d'un email) et ainsi d'avoir en fait un journal d'évènement.

J'arrive à écrire dans un fichier fermé (le forum est riche d'exemples), j'arrive à écrire sur la première cellule vide d'une colonne mais je n'arrive pas à combiner les deux....

Merci beaucoup de votre aide.

A+

Jipi
 

michel_m

XLDnaute Accro
Re : Ecrire dans un fichier fermé dans la première cellule vide

Bonsoir,

difficille de te répondre sans voir l'architecture de ta cible fichier fermé

En attendant, 2 pistes possibles:
-utiliser INSERT INTO qui ajoute une occurence à la 1° ligne vide
- utiliser SELECT COUNTqui donnera le nombre d'occurence et donc la 1) ligne vide dans la colonne
 

jipi06

XLDnaute Junior
Re : Ecrire dans un fichier fermé dans la première cellule vide

RE

Après qq tribulations...et la précieuse aide d'un post de Simba59 de mars 2006...j'ai résolu mon problème.
Merci beaucoup

ci dessous le code :

Private Sub CommandButton1_Click()
' macro proposée par Simab59
' post https://www.excel-downloads.com/threads/ecrire-dans-un-fichier-ferme.58390/

'necessité d'activer la reference Microsoft ActiveX Data Objects x.x Library
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 & "\FichiersEnvoyés\listefichiers.xls" 'nom du fichier destinataire
Feuille = "listefichiers$" '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

'pour utilisation avec UserForm
' With Rs
' .AddNew
'.Fields(0) = TextBox1 'date
'.Fields(1) = TextBox2 'nom
' .Fields(2) = TextBox3 'prenom
'.Fields(3) = CDbl(TextBox4) 'valeur apport de JC de Lorient
' .Fields(4) = TextBox5 'commentaire
' .Update
' End With
'pour utilisateur avec cellules
With Rs
.AddNew
.Fields(0) = Sheets("Données").Range("nam1") 'nom de la cellule à copier
.Fields(1) = Sheets("Données").Range("nam2")
'et ainsi de suite
.Update
End With
Rs.Close
Cn.Close

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

Discussions similaires

Statistiques des forums

Discussions
312 094
Messages
2 085 240
Membres
102 832
dernier inscrit
kirale