que faire quand un fichier est utilisé par n perso

  • Initiateur de la discussion Thomas®
  • Date de début
T

Thomas®

Guest
Bonsoir le forum,

j'ai une question .

j'ai créer un USF avec une interface utilisateur (pour 8 personnes)

et un autre USF pour moi qui me permet de faire des modifications dans les saisies faites par les utilisateurs.

ma question est comme il m'est impossible de faire 1 seul fichier pour tout le monde car je serais en lecture seul, comment puis je faire au mieux.

mon 1er choix est 9 fichiers (8 utilisateurs + mois).avec une macro pour recupérer les fichiers générés par les utilisateurs (un peu comme du ACCESS) (difficile pour moi de créer un batch pour actualiser les info chez tout les utilisateurs, et donné non actualisé en temps réél)

mon 2eme choix est de faire 10 fichiers (8 utilisateurs + moi + un fichier source) dans ce cas j'ai pensé que tout ce qui est utile pour la macro serait en local puis pour la lecture et ecriture des infos la macro irait chercher les infos dans le fichier source. (dans ce cas le risque de lecture seul serait réduit sauf si 2 personnes clic en même tps).

alors franchement je ne sais vraiment pas comment faire surtout que ce que je viens d'exposé n'est que ma vision des choses et je ne sais même pas si cela est possible ou si les consequences sont vraiment celle denoncé plus haut.

tout les avis sont les bien venu

D'avance merci
Thomas®
 
T

Thomas

Guest
Re bonjour, le forum,

personne pour me conseiller :(

je pense que la meilleur solution est ma 2eme donc il faut que j'arrive à appeler le fichier distant pour récupérer les infos et le refermer direct (si je peux le laisser fermer ce serait mieux?)

j'ai deja fait appel a d'autre fichier et celui ci allé ouvrir le fichier en question.

est il possible de le faire sans l'ouvrir?

si oui meme en ecriture?

cette solution ne risque pas de rendre longue la recherche?

dans mon fichier actuel je recupere des info sur un comobox et j'ai dans des texts box les info correspondant (sur la meme ligne) que ce choisi dans mon conbobox.

de cette facon j'utilise mon fichier en temps réel.

si je procede avec un fichier distant je pense que la syncronisation apres chaque utilisation d'une combobox sera tres long.

je ne sais pas si le mieu est de copier les feuil de mon classeur distant avec un bouton actualiser??

sinon j'ai entendu dire que si j'utilise un tablo (non visible pour stocker les infos en memoir) ce qui serait peut etre plus rapide??

cordialement
Thomas
 

michel_m

XLDnaute Accro
Bonjour Thomas,

J'avais lu ton fil ce matin, mais ta demande manque un peu de précision et donc, il est hasardeux d'évaluer et/ou d'adopter une solution.

question de base: tes fichiers utilisateurs sont situés où ? sur un serveur ou sur chaque poste ?

s'ils sont sur le serveur, sont ils dans le m^me dossier ?

la masse des données est elle importante et quel est le 'poids' prévu du classeur 'source' et 'utilisateurs'; la structure des fichiers est elle identique ?

quel est la fréquence prévue de tes mises à jour ?

version Excel et système ?

En bref, écris 'un mini cahier des charges'

Pour complèter et essayer de t'aider, une pièce jointe avec des extraits de fichier serait la bienvenue


A+
Michel
 
T

Thomas®

Guest
Bonjour michel, le forum,

merci pour ta reponse.

voilà je te join mon fichier version utilisateur.

je n'ai pas encore créé le mien mais la structure des fichiers sera la même.

pour ce qui est de la localisation j'ai pensé tous dans un même dossier sur un lecteur reseau.

je fichier source fera environ 5 ou 6 MO grand maxi.


excel 97 sous windows XP.

dans mon fichier joint j'ai sup plein de chose afin que celui ci puisse passer sur le site

dans le fichier la macro ecrit dans ses feuils

D'avance merci pour votre aide.
 

michel_m

XLDnaute Accro
Re,

OK, c'est la 2° solution qu'il faudra certainement utiliser...

Le fichier source étant 'énorme' ( 5 ou 6 Mo sur un réseau, bonjour les attentes et sauvegardes !, tes utilisateurs et toi aurez le temps d'aller boire un café et papoter avec de charmantes secrétaires); on travaillera donc en fichier fermé (microsoft jet avec ADO)

Maintenant, pour envoyer ton fichier, il ne doit pas dépasser 50ko zippé et pas d'espace ni d'accents dans le titre

Je ne sais pas quand je pourrai regarder (attente d'un coup de fil important)

A+
Michel
 
T

Thomas®

Guest
Oups!! à 53ko ca passe pas

j'espere qu'il prend les rar [file name=tom_20050505164042.zip size=48108]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/tom_20050505164042.zip[/file]
 

Pièces jointes

  • tom_20050505164042.zip
    47 KB · Affichages: 11

michel_m

XLDnaute Accro
re

non, XLd ne prend pas les RAR

ADO est une technique qui permet d'interroger et écrire dans des bases de données séquentielle indexées.
On se connecte à la base de données sans 'ouvrir physiquement': on peut ainsi travailler sur des classeurs excel sans les ouvrir; l'action est très rapide en utilisant le langage SQL

Michel
 

michel_m

XLDnaute Accro
Re

en Pj petite démo sur ADO sans les parties Access et Word

Bonne soirée

Michel [file name=fichiersfermes_20050505193929.zip size=35038]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/fichiersfermes_20050505193929.zip[/file]
 
Dernière édition:
T

Thomas

Guest
Merci,

je regarde ca tout de suite.

car j'ai telechargé une de tes demo 'adodemo' c'est génial mais là on entre dans une autre dimension.

je pens que tu as raison dans mon cas je n'ai pas besoin de table access.

mais pour ma culture peux tu me dire l'avantage de faire transiter les fichiers vers access avant de les recup dans un autre fichier excel

Bonne soirée et encore merci
Thomas
 
T

Thomas

Guest
Bonjour, Michel, le forum

merci pour l'intérét que tu portes à ma demande.

au travail je tourne avec excel 97 et de ce fait je n'arrive pas à rapatrier les plage du fichier fermé mais uniquement une cellule isolé.

j'ai voulu transformé la macro :

Sub chercher_xl4()
' auteur présumé: John Walkenbach
Dim chemin As String
chemin = ''' & ActiveWorkbook.Path
Range('cible') = ExecuteExcel4Macro(chemin & '\\Source.xls'!AVRIL')
End Sub


(j'ai mis une plage pour cible de même taille que AVRIL (les 2 dans insertion nom)

et j'ai x fois la 1er valeur de ma plage AVRIL qui ce répéte dans cible!!

sais tu si il est possible de preceder de la sorte?

Merci
Thomas
 

MichelXld

XLDnaute Barbatruc
bonjour Thomas , bonjour mon ami Michel


suite à ton dernier message tu peux essayer

Code:
Sub chercher_V01()
Dim Chemin As String
Dim Cell As Range

Chemin = '='' & ActiveWorkbook.Path
'
'dans cette macro l'emplacement de la plage nommée 'Cible'
'doit correspondre à la plage recherchée dans le classeur fermé
'par exemple A1:E10 dans les 2 classeurs
'
'les données du classeur fermé sont dans la feuille nommée 'Feuil1'
For Each Cell In Range('Cible')
With Cell
.Formula = Chemin & '\\[Source.xls]Feuil1'!' & Cells(Cell.Row, Cell.Column).Address
.Value = Cell
End With

Next
End Sub


pour le reste , je n'ai pas bien compris ce que cherches à obtenir



bonne journée
MichelXld
 
T

Thomas

Guest
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
 

Discussions similaires

Réponses
3
Affichages
553
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 392
Messages
2 088 004
Membres
103 695
dernier inscrit
acimi