Bonjour Michel & Michel , le forum,
Merci pour ta reponse cela fonctionne mais c'est super long.
je vais te rééxposer mon problème.
en fait je dois mettre en place un system qui puisse permetre à plusieurs personne de saisir ou modifier des données depuis un formulaire vers un fichier source.
mon problème est que si je procede de maniere classique je risque d'être souvent en lecture seul.
c'est pour cela que michel m'a parlé de ADO (alors cela fonctionne bien chez moi en 2003) mais au travail sous 97 cela ne marche plus avec ta macro j'arrive à recupérer les info mais cela me prend 4 à 5 minute d'attente.
alors que sur 2003 c'est presque instantané. est ce du au fait que là maintenant il ne cherche plus dans une plage défini dans 'insertion nom'?.
j'ai vu de nombreuse macro que tu as faite ainsi qu'une à ce sujé qui permet d'écrire à la suite dans un fichier fermé (c'est ce code que je souhaite utiliser pour écrire dans mon fichier distant).
ta macro fonctionne sous 97 mais quand je l'ai adapté à mon cas cela a doublé la taille de mon fichier et l'a rendu inacessible (j'ai du le sup).
au debut du poste j'ai mis la macro que j'utilise pour écrire et lire dans mon fichier et ce que je cherche à faire c'est la meme chose mais plus dans mon fichier même mais dans un autre appelé source.
D'avance merci
Thomas
Sub exemple()
'necessite 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 & '\\Source.xls'
Feuille = VarMois2 & '$' '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(0) = '' 'date
.Fields(1) = Format(Prenom, 'dd-mmm')
.Fields(2) = Application.Proper(Statut)
.Fields(3) = Application.Proper(Declar)
.Fields(4) = Format(Appz)
.Fields(5) = Application.Proper(Lieu)
.Fields(6) = Format(Domaine)
.Fields(7) = Dossier
.Fields(8) = Application.Proper(Adresse)
.Fields(9) = ''
.Fields(10) = Ville
.Update
End With
Rs.Close
Cn.Close
End Sub