OVH Cloud OVH Cloud

mettre à jour un fichier donné à partir d'un fichier fermé

6 réponses
Avatar
Le Nordiste
Bonjour =E0 toutes et =E0 tous,

J'ai besoin de mettre =E0 jour un fichier donn=E9 =E0 partir d'un autre
sans avoir =E0 ouvrir ce dernier.

Plus explicite :

J'ai un fichier FACTURE reprenant une partie des donn=E9es d'un fichier
CONTRAT.
Chaque ligne des parties communes aux deux fichiers =E0 un num=E9ro
d'identification unique et une date de M=E0J.

Le fichier CONTRAT =E9tant mis =E0 jour par insertions de lignes, je dois
reporter dans le fichier FACTURE ces ajouts - sans avoir =E0 respecter
la position relative des lignes; mettre en bas de table FACTURE est la
solution retenue pour les lignes ins=E9r=E9es dans CONTRAT.

Quelqu'un a t'il d=E9ja travaill=E9 sur un Pb identique ou une solution
=E0 proposer ?

Remerciements anticip=E9s.

6 réponses

Avatar
Oliv'
Bonjour à toutes et à tous,

J'ai besoin de mettre à jour un fichier donné à partir d'un autre
sans avoir à ouvrir ce dernier.

Plus explicite :

J'ai un fichier FACTURE reprenant une partie des données d'un fichier
CONTRAT.
Chaque ligne des parties communes aux deux fichiers à un numéro
d'identification unique et une date de MàJ.

Le fichier CONTRAT étant mis à jour par insertions de lignes, je dois
reporter dans le fichier FACTURE ces ajouts - sans avoir à respecter
la position relative des lignes; mettre en bas de table FACTURE est la
solution retenue pour les lignes insérées dans CONTRAT.

Quelqu'un a t'il déja travaillé sur un Pb identique ou une solution
à proposer ?

Remerciements anticipés.


si tu dois mettre à jour FACTURE il te faudra l'ouvrir !!!
est-ce également un fichier excel ? si oui tu l'ouvres par macro
Workbooks.Open "FACTURE.XLS"

tu recherches la dernière ligne
exemple :
derniere = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Offset(1,
0).Row
Cells(derniere, 1).Select

et tu ajoutes ta ligne.
ActiveSheet.Paste


--
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
les sites références:
Excel :http://www.excelabo.net http://xcell05.free.fr/
http://dj.joss.free.fr/
http://frederic.sigonneau.free.fr/ http://www.excel-vba-francais.com/
Word : http://faqword.free.fr/
Outlook :http://faq.outlook.free.fr/
Sql :http://sqlpro.developpez.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Avatar
Le Nordiste
Je considére que FACTURE est ouvert sur la feuille à mettre à jour.
Et je voudrais éviter d'ouvrir le fichier CONTRAT ; à savoir que
celui ci est protégé par mot de passe.
Avatar
Le Nordiste
Je considére que FACTURE est ouvert sur la feuille à mettre à jour.
Et je voudrais éviter d'ouvrir le fichier CONTRAT ; à savoir que
celui ci est protégé par mot de passe dont je dispose par ailleurs..
Avatar
Oliv'
Je considére que FACTURE est ouvert sur la feuille à mettre à jour.
Et je voudrais éviter d'ouvrir le fichier CONTRAT ; à savoir que
celui ci est protégé par mot de passe dont je dispose par ailleurs..



il y a bien la fonction indirect de laurent LONGRE qui permet de lire dans
un fichier fermé, mais ca ne marche pas je pense si le fichier est protégé.
http://xcell05.free.fr/pages/morefun/indirect.ext.htm

tu ne peux pas lire un fichier si tu n'as pas de mot de passe et encore
moins y écrire des choses.
mais tu peux l'ouvrir en lecture seule , et même sans afficher le fichier à
l'écran si tu sais ce que tu cherches.


--
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
les sites références:
Excel :http://www.excelabo.net http://xcell05.free.fr/
http://dj.joss.free.fr/
http://frederic.sigonneau.free.fr/ http://www.excel-vba-francais.com/
Word : http://faqword.free.fr/
Outlook :http://faq.outlook.free.fr/
Sql :http://sqlpro.developpez.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Avatar
Ange Ounis
Pour lire dans un fichier fermé et protégé tu peux utiliser, par exemple, la
fonction GetValue de J. Walkenbach :

'''''''''''''''''''
Function GetValue(path, file, sheet, ref)
' Retrieves a value from a closed workbook
Dim arg As String
' Make sure the file exists
If Right(path, 1) <> "" Then path = path & ""
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If
' Create the argument
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlR1C1)
' Execute an XLM macro
GetValue = ExecuteExcel4Macro(arg)
End Function
'''''''''''''''''''

Cette fonction utilise la procédure ExecuteExcel4Macro qui se moque comme d'une
guigne de la protection d'un classeur.

----------
Ange Ounis
----------

Je considére que FACTURE est ouvert sur la feuille à mettre à jour.
Et je voudrais éviter d'ouvrir le fichier CONTRAT ; à savoir que
celui ci est protégé par mot de passe dont je dispose par ailleurs..



Avatar
Oliv'
Pour lire dans un fichier fermé et protégé tu peux utiliser, par
exemple, la fonction GetValue de J. Walkenbach :


'''''''''''''''''''
Function GetValue(path, file, sheet, ref)
' Retrieves a value from a closed workbook
Dim arg As String
' Make sure the file exists
If Right(path, 1) <> "" Then path = path & ""
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If
' Create the argument
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlR1C1)
' Execute an XLM macro
GetValue = ExecuteExcel4Macro(arg)
End Function
'''''''''''''''''''

Cette fonction utilise la procédure ExecuteExcel4Macro qui se moque
comme d'une guigne de la protection d'un classeur.


Effectivement si je lance cette fonction par une macro ca me demande le mot
de passe mais si je fais annulé
j'obtiens bien mes données !!
Comment désactiver ou répondre automatiqument à cette boite de dialogue ?

Par contre je n'arrive pas à lancer cette Fonction dans une cellule, que le
fichier soit protégé ou nom
=GetValue("c:temp";"testproteg.xls";"Feuil1";"A1")


--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
les sites références:
Excel :http://www.excelabo.net http://xcell05.free.fr/
http://dj.joss.free.fr/
http://frederic.sigonneau.free.fr/ http://www.excel-vba-francais.com/
Word : http://faqword.free.fr/
Outlook :http://faq.outlook.free.fr/
Sql :http://sqlpro.developpez.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~