Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 20/07/2005, 15h31   #1 (permalink)
DOM
Guest
 
Messages: n/a
Par défaut ECRIRE DANS FICHIER FERMÉ

Bonjour forum

COmment vas tu ce midi?
CE fil fait en quelques sorte suite a la la recherche de solution au pb évoqué dans le fil http://www.excel-downloads.com/forum...seur.htm#53167.

Je souhaite etablir les liens entre mon fichier actif et un fichier fermé ou au moins copié les valeurs dans ce dernier.

Le groupe de cellule que je souhaite copier se trouve dans playa. Ce st des cellules qui se trouvent a des endroits distincts dans le classeur.
je souhaiterai que ces 11 valeurs viennent s ajouter sur une meme ligne de la cellule b5 a la cellule L 5 de mon fichier fermé.
J ai regardé les quelques de demos de michel et du web et j avoue etre un peu perdu avec ces recordset et command text.. notamment dans la définition de l endroit exact du classeur ou je vais copier et la manière de copier les valeurs.

Voici un esquisse de mon code

Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Fichier As String, Cible As String, Feuille As String
Dim n As Byte
Dim valeur As Integer

‘union sous le nom « Playa » des cellule de mon classeur actif que je souhaite copier dans mon fichier fermer
Set playa = Application.Union(Worksheets(« PM »).Range(« C41 »),Worksheets(« donnee »).Range(« D20 »), Worksheets(« Outils »).Range(« E27 »); Worksheets(« PM »).Range(« C41 »), Worksheets(« PM »).Range(« I6 »), Worksheets(« PM »).Range(« av104 »), Worksheets(« Etat »).Range(«E12”), Worksheets(« Etat »).Range(«g50”), Worksheets(« Etat »).Range(«G52”), Worksheets(« Etat »).Range(«I50”), Worksheets(« Etat »).Range(«H50'))
‘utilisation d´un redim pour faciliter la copie
Redim Valeur(11)
For each cell in Playa
Valeur(n) = Cell.formula ’ attribution du lien
N=n+1
Next

Fichier = “X:\\Models\\Plan\\Etat_plan.xls”
Feuille = 'Etat$' '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;''
Set Cd = New ADODB.Command
Cd.activeConnection = Cn
Cd.commandText = 'SELECT * from `Etat!$A1:A1`' ‘ je ne sais pas trop ce que ca veut dire je suppose que c est la case d origine
Set Rst = New ADODB.Recordset
Rst.Open Cd, , adOpenKeyset, adLockOptimistic
For n=0 to 11
Rst(0).Value = Valeur(n) je n ai pas trouvé assez d info sur le recordset mais j imagine que c est les valeurs qu on souhaite transféréRst.Update
Cn.Close
Set Cn = Nothing
Set Cd = Nothing
Set Rst = Nothing
End Sub



Je sais que ce code est un peu long masi je remercie tout ce qui auront pris le soin de le lirre

DOM
  Réponse avec citation
ANNONCES
Vieux 20/07/2005, 15h53   #2 (permalink)
Deedo
Guest
 
Messages: n/a
Par défaut Re:ECRIRE DANS FICHIER FERMÉ

bonjour DOM

pfew il est clair que lire depuis un fichier fermé est plus aisé...

j'ai fait mes petites recherches sur le net. Je ne sais pas si tu as fait un tour sur cette URL mais peut être qu'elle pourra t'aider

http://www.excelabo.net/xl/fichiers....riresansouvrir

(oui je sais honte à moi, je suis allée 'lurker' le forum d'un concurrent holallalalalalalaaaa!! )
  Réponse avec citation
Vieux 20/07/2005, 19h14   #3 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 816
Par défaut Re:ECRIRE DANS FICHIER FERMÉ

bonjour Dom , bonjour Deedo

tu trouveras aussi quelques exemples dans ce lien

http://www.excel-downloads.com/compo.../id,9498/#9498


bonne soiree
MichelXld
MichelXld est déconnecté   Réponse avec citation
Vieux 20/07/2005, 20h28   #4 (permalink)
DOM
Guest
 
Messages: n/a
Par défaut Re:ECRIRE DANS FICHIER FERMÉ

MERCI DE VOS INFOS

Va falloir que je vbase en puissance....

Bonne soirée

DOM
  Réponse avec citation
Vieux 21/07/2005, 19h03   #5 (permalink)
DOM
Guest
 
Messages: n/a
Par défaut Re:ECRIRE DANS FICHIER FERMÉ

Bonjour Forum, Bonjour Michel


Comment ca va? CA vbase en puissance???

J´espère que tu ne passeras pas à côté de ce fil... et que tu pourras lire ma question...

Je suis entrain de découvrir les objets ADODB..
Et j ´avoue que ca devient du haut niveau.. c´est sûrement pour ca que je m´embrouille beaucoup...

Que de programmes je viens regarder des dizaines d´exemples et j avoue que c´est le tien qui me paraît le plus maniable...

Je veux insérer ma macro 'transfert_ds fichier fermé' dans plusieurs fichiers 'projets' distincts... Le fichier fermé en question sera donc le fichier 'bilan' de tous ces projets en quelques sortes...

ds le code suivant ou tu passes par un USF (classeurSaisie . fil : http://www.excel-downloads.com/forum...e-classeur.htm)

Comment as tu attribué at on Recordset:

Field(0) -> Range('a1') du fichier fermé
' ' (1) -> '' ('a2') ' '
' ' (2) -> '' ('a3') ' '
' ' (3) -> '' ('a4') ' '

Je souhaiterai passer directement par des cellules au lieu d usf

un peu ds ce genre

With Rs
.AddNew
.Fields(0) = Range('d40') 'date
.Fields(1) = Range('f35') 'nom
.Fields(2) = Range('h10') 'prenom
.Fields(3) = Range('l3') 'valeur
.Fields(4) = Range('j3') 'commentaire
.Update

End With

Peux tu m´éclairer???
MERCI d avance

A+

DOM
  Réponse avec citation
Vieux 21/07/2005, 19h20   #6 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 816
Par défaut Re:ECRIRE DANS FICHIER FERMÉ

bonjour Dom

Ce n'est pas facile de répondre sans voir tes classeurs , mais la synthaxe que tu utilises semble correcte et devrait fonctionner


bonne soiree
MichelXld
MichelXld est déconnecté   Réponse avec citation
Vieux 26/07/2005, 13h30   #7 (permalink)
DOM
Guest
 
Messages: n/a
Par défaut Re:ECRIRE DANS FICHIER FERMÉ

bonjour forum bonjour michel

comment allez vous?

j ai joint 2 fichiers pour mieux te rendre coompte de l application que je veux mettre en place...

Si tu peux y jeter un coup d oeil....

Meric d avance

bonne journée

DOM [file name=ecrire_ds_fichier_ferme.zip size=17379]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ecrire_ds_fichier_ferme.zip[/file]
Fichiers attachés
Type de fichier : zip ecrire_ds_fichier_ferme.zip (17,0 Ko, 7 affichages)
  Réponse avec citation
Vieux 26/07/2005, 16h13   #8 (permalink)
XLDnaute Accro
 
Date d'inscription: février 2005
Localisation: Aubenas
Version Excel : Excel 2000 (PC)
Messages: 1 126
Par défaut Re:ECRIRE DANS FICHIER FERMÉ

Bonjour Dom, Michel

Dom,

J'ai repris ton idée de playa et j'ai nommé les cellules de départ ainsi que la destination dans classeur fermé. Cela simplifie l'écriture de la macro 'ecrire'( 'nommer' permet de ne pas tenir compte des adresses de feuilles et de cellules) et te permet d'envoyer plus facilement tes données à transfèrer.
J'ai mis des petites notes pour tenter d'expliquer le pourquoi du comment.n'hésites pas à poster si tu doutes

En espèrant que cela répondra à ton pb

Le deuxième Michel

Michel_M [file name=Dom_xld.zip size=24170]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Dom_xld.zip[/file]
__________________
A+
Michel_M

Dernière modification par michel_m ; 21/07/2007 à 00h53.
michel_m est déconnecté   Réponse avec citation
Vieux 26/07/2005, 21h06   #9 (permalink)
DOM
Guest
 
Messages: n/a
Par défaut Re:ECRIRE DANS FICHIER FERMÉ

Merci Bcp The Michels

Je viens de tester ton code.. et ca marche très bien.. je m en réjouis enormement car j ai pas mal galéré avec ce truc.. Il fallait que ca passe entre les mains d un expert... ;-) :whistle:

Il me reste juste une question je souhaiterai inserer la formule ou liaison de la cellule a transférer au format (u autre)

Fields(0)= '='X:\\Modeles\\projets\\[' & Workbook.FullName & ']playa(0)'

Une fiche projet ('fichier ouvert') par projet

Le 'fichier fermé'pourra me renseigner sur l etat de chacune des fiches projets ('fichier ouvert') en cours.

Copier les valeurs des cellules de playa dans le fichier fermé implique une activation régulière de la macro pour mettre a jour l etat du projet.

Le fait d´insérer les liaisons aux cellules au lieu de seulement copier les valeurs me limiterait le nombre d activation de la macro a une fois en début de projet (ou de remplissage du fichier ouvert)..
L´actualisation se ferait ensuite lors de l ouverture du fichier fermé.

C est faisable tu crois?
Si je ne suis pas clair, tu me le dis?

Merci pour ton aide dans tous les cas...


Bonne soiréee
DOM [file name=Dom_xld_20050726200635.zip size=25634]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Dom_xld_20050726200635.zip[/file]
Fichiers attachés
Type de fichier : zip Dom_xld_20050726200635.zip (25,0 Ko, 5 affichages)
  Réponse avec citation
Vieux 27/07/2005, 00h36   #10 (permalink)
XLDnaute Accro
 
Date d'inscription: février 2005
Localisation: Aubenas
Version Excel : Excel 2000 (PC)
Messages: 1 126
Par défaut Re:ECRIRE DANS FICHIER FERMÉ

Re,

OK, je crois avoir compris ce que tu veux; confirme ou infirme le

Tu crées P+q projets et à chaque nouveau tu inscris les celules voulues dans une nouvelle ligne de 'classeur fermé';

Ensuite si des valeurs changent dans un des projets créés tu voudrais que les changements soient reportés dans 'classeur fermé' d'où ta demande sur l'inscription de formules inter-classeurs.

C'est ty ça?

Petite question peut-être inutile: les classeurs 'projets' sont ils toujours les mêmes (même adresse des cellules 'source')?

J'essaierai demain , quand? je sais pas, mais je ne garantis rien car je n'ai jamais essayé de mettre une formule dans un champ. enfin, on verra.

A+
Michel_M
__________________
A+
Michel_M
michel_m est déconnecté   Réponse avec citation
Vieux 27/07/2005, 11h18   #11 (permalink)
DOM
Guest
 
Messages: n/a
Par défaut Re:ECRIRE DANS FICHIER FERMÉ

Salut michel..

COMMENT VA TU?

C´est exactement ce que je compte faire...

Pour ce qui est de ta question, oui le format des fiches projets est le meme..
C´est un peu comme un formulaire.. Donc toutes les informations determinant l etat d un projet se trouvent au même en droit.

Mon but est de la faire utiliser le moins de fois possible cette macro.. Comme les fiches projets se situent dans le réseau.. Certaines personnes (hors de la centrale) se trouvent deja penaliser par la lenteur de celui ci...
Je voudrai les pénaliser le moins possible en limitant au max la taille de mon fichier (donc eviter les macros inutiles)...


Voilà je suis a t a dispo si t as d autres question bien entendu...

Bonne journée
DOM
  Réponse avec citation
Vieux 27/07/2005, 14h12   #12 (permalink)
XLDnaute Accro
 
Date d'inscription: février 2005
Localisation: Aubenas
Version Excel : Excel 2000 (PC)
Messages: 1 126
Par défaut Re:ECRIRE DANS FICHIER FERMÉ

Salut Dom, Michel et le forum

Ouf! Sacrés pièges dans le fait de mettre une formule dans une base de données construite par ADO! ca m'a bouffé la matinée (pas grave je suis en vacances mais ca va 'encore' raler parce que le ménage n'est pas fait, question d'habitude!)

Dans fichier fermé la formule était bien écrite mais en tant que texte! Ce que je redoutais…

J'ai donc bricolé une usine à gaz qui reconvertit le texte en formule et qui est lancé par un Workbook_open

J'ai installé 3 fichiers projets;

IMPORTANT:Quand tu auras fini tes essais, active les lignes de la macro cachant le bouton écrire (juste avant End sub), sinon tes utilisateurs s'amuseront pas mal...

Playa est maintenant inutile.

J'espère que ca marche: toutefois comme tu es sur réseau, la mise à jour des liens peut être très longue en utilisateur 'fichier fermé' si tu as beaucoup de projets.Pour aller vite, il faudrait faire alors une 2° macro ADO dans l'autre sens...

tiens moi au courant.
cet après midi, c'est promis, je fais le ménage!

A+
Michel_M
[file name=Dom_XLD2.zip size=47700]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Dom_XLD2.zip[/file]
__________________
A+
Michel_M

Dernière modification par michel_m ; 21/07/2007 à 00h53.
michel_m est déconnecté   Réponse avec citation
Vieux 27/07/2005, 19h47   #13 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 816
Par défaut Re:ECRIRE DANS FICHIER FERMÉ

bonjour Dom , Deedo et Michel

Michel , Excellent ta solution pour insérer des formules dans un classeur fermé . Cela faisait plusieurs semaines que je cogitais sur le meme theme sans y arriver


encore merci et bonne soirée
MichelXld
MichelXld est déconnecté   Réponse avec citation
Vieux 27/07/2005, 20h55   #14 (permalink)
XLDnaute Accro
 
Date d'inscription: février 2005
Localisation: Aubenas
Version Excel : Excel 2000 (PC)
Messages: 1 126
Par défaut Re:ECRIRE DANS FICHIER FERMÉ

Bonsoir

Merci Michel

Michel_M
__________________
A+
Michel_M
michel_m est déconnecté   Réponse avec citation
Vieux 27/07/2005, 22h55   #15 (permalink)
dom
Guest
 
Messages: n/a
Par défaut Re:ECRIRE DANS FICHIER FERMÉ

Salut Michel

Je viens d´étudier ton chef d oeuvre.. je suis vraiment épater..
Ca marche très bien
Je te remercie vraiment de m´avoir encore accorder de ton temps et laisser de côté tes tâches ménagères.

je vois que tu es un passionné même si le ménage c´est pas ce qu on met en priorité généralement.. en tout cas pour moi...

J´ai mis en place le module dans mon fichier atomique..
Mais j avais juste omis un détail...

C´est que les fichier ouvert et fermé ne se situent pas dans le même repertoire...
LE fichier ouvert peut se ranger dans 2 repertoires différents en fonction du contenu de la range('39').

donc j´ai modifié le code de la manière suivante...

!= slash car ca passe pas
.Fields(0) = '= 'X:!Modele!Plan!' & Range('C39') & '![' & classeur & ']Cel1'

le transfert se passe bien mais le contenu de mes cellules m affiche la formule de la liaison et non le contenu de la cellule avec laquelle elle est liée..

Si tu as un idée?

n´hésite pas


Merci encore

j ai avancé enormément grace a toi

Bonne soirée
A dem

dom
  Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 15h15.


(C) 2006 Excel Downloads