Macro ouverture de fichier

tallia64

XLDnaute Occasionnel
Bonsoir je voudrais créer une macro d'ouverture de manière qu'à chaque ouverture il redevienne vierge. Mais je souhaiterais lui faire un test de condition en sachant que si il trouve dans son répertoire d'enregistrement un fichier sous le nom de "ex : "service_general_" & Day(Date) & "_" & Month(Date) & "_" & Year(Date) & ".xls" il s'ouvre sans effectuer mes macros "comboblanc"et "Ablanc" et ainsi les anciennes données sont sauvegardées ou si il ne retrouve pas le fichier à ce moment là il execute la macro comboblanc et Ablanc afin que le fichier redevienne vierge. j'espère que mes explications sont assez claires. Je vous remercie d'avance pour votre aide.
TALLIA:)

J'ai pensé à la macro suivante mais je n'arrive pas à l'adapter avec mes deux autres macros "COMBOBLANC" et "ABLANC"

Sub rechdernierfichier()
'
With Application.FileSearch
.LookIn = "C:\Documents and Settings\HP_Propriétaire\Mes documents\"
.Filename = "service_general_" & Day(Date) & "_" & Month(Date) & "_" & Year(Date) & ".xls"
.Execute
If .FoundFiles.Count <> 0 Then
Workbooks.OpenText Filename:=.FoundFiles(.FoundFiles.Count), _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 4))
End If
End With
ActiveWorkbook.Close
End Sub

que je souhaiterais insérer dans le :

Private Sub Workbook_Open()

COMBOBLANC
Ablanc

End Sub
 

tallia64

XLDnaute Occasionnel
Re : Macro ouverture de fichier

Bonsoir je reviens à nouveau avec mon problème pour créer une macro à l'ouverture d'un fichier. Pouvez vous m'aider s'il vous plait? Ou peut être que c'est impossible à créer ? Je vous remercie d'avance pour vos réponses.
TALLIA
 

ledzepfred

XLDnaute Impliqué
Re : Macro ouverture de fichier

bonsoir tallia,

je resume ta demande : tu as un fichier qui as peut-etre été utilisé et enregistré avec la date du jour.
Lorsque tu l'ouvres à nouveau tu souhaites vérifier cette hypothése et si c'est le ce cas tu veux mettre à blanc le fichier actif (pas le fichier trouvé) grâce aux deux procédures ABLANC et COMBOBLANC.

Dans la macro que tu proposes, tu cherches ce fichier et si tu le trouves, tu l'ouvres puis tu le refermes (ce qui est complètement inutile), il te suffit de dire dans le code : si tu trouves mon fichier alors executes sur celui qui est actif les macros ABLANC et COMBOBLANC

ce qui donnerait :

Private Sub Workbook_Open()
' à placer dans thisworkbook
With Application.FileSearch
.LookIn = "C:\Documents and Settings\HP_Propriétaire\Mes documents\"
.Filename = "service_general_" & Day(Date) & "_" & Month(Date) & "_" & Year(Date) & ".xls"
.Execute
If .FoundFiles.Count > 0 Then call COMBOBLANC : call Ablanc
End With
End Sub

Attention, si tes deux procédures sont placées dans un module cela va fonctionner par contre si ce sont des procédures Private (dans un userform ou un feuillet) il faut les déclarer dans thisworkbook avant la procédure workbook_open du moins je ne sais pas si c'est possible mais je suis pas expert mais a priori si la procédure est privée, elle ne peut être publique (puissant ma remarque)

Maintenant j'ai peut-être rien compris à ton problème

a+
 
Dernière édition:

tallia64

XLDnaute Occasionnel
Re : Macro ouverture de fichier

bonsoir merci pour votre réponse. Et bien oui vous avez trés bien compris mon problème!
Je vais tester le code dès demain matin et je vous enverrais un message .
Je vous remercie beaucoup pour votre aide
bonne soirée TALLIA
 

tallia64

XLDnaute Occasionnel
Re : Macro ouverture de fichier

Bonjour j'ai tester le code malheureusement il m'execute chaque fois les macros mais j'ai compris pourquoi car en relisant votre message c'est le contraire que je voulais désolée j'ai du aveuglée par la fatigue hier soir. En fait quand je recherche le fichier si je le trouve alors je n'execute pas sur celui qui est actif les macros ABLANC et COMBOBLANC. Je vais essayer de modifier le code et je vous enverrais un message. Merci beaucoup pour votre aide
TALLIA
 

tallia64

XLDnaute Occasionnel
Re : Macro ouverture de fichier

rebonjour j'ai essayé de tourner et de retourner le code dans tous les sens j'ai essayé avec un If NOT mais sans succès donc me revoilà revenu à l'état initial ! Pas facile quand on débute. Merci pour votre message je continue mes recherches.
Tallia
 

Pierrot93

XLDnaute Barbatruc
Re : Macro ouverture de fichier

Bonjour Tallia, Ledzepfred

pas tout suivi, mais regarde le code ci-dessous, une autre approche, si cela peut te faire avancer :

Code:
Option Explicit
Sub test()
Dim monfichier As String
monfichier = Dir("C:\Documents and Settings\HP_Propriétaire\Mes documents\" _
    & "service_general_" & Day(Date) & "_" & Month(Date) & "_" & Year(Date) & ".xls")
If monfichier <> "" Then
    Workbooks.Open monfichier
    'code a executer si fichier présent
Else
    MsgBox "fichier inéxistant"
    'code a executer si fichier absent
End If
End Sub

bonne fin d'après midi.
+
 

ledzepfred

XLDnaute Impliqué
Re : Macro ouverture de fichier

re...


essayes ceci

Private Sub Workbook_Open()
' à placer dans thisworkbook
With Application.FileSearch
.LookIn = "C:\Documents and Settings\HP_Propriétaire\Mes documents\"
.Filename = "service_general_" & Day(Date) & "_" & Month(Date) & "_" & Year(Date) & ".xls"
.Execute
On Error Resume Next
If .execute= 0 Then call COMBOBLANC : call Ablanc
End With
End Sub

en gros cela veut dire si la recherche du fichier ne donne rien, alors déclenche les procédures comboblanc puis ablanc

La méthode de pierrot que je salue est très bien également

bon test

a+
 
Dernière édition:

tallia64

XLDnaute Occasionnel
Re : Macro ouverture de fichier

bonsoir merci beaucoup pour votre aide je vais tester le code dans la soirée car je m'absentais et je laisserais un message sur le forum.
Encore un grand merci ainsi qu'à pierrot93
bonne soirée à toute à l'heure Tallia
 

tallia64

XLDnaute Occasionnel
Re : Macro ouverture de fichier

rebonsoir aprés maintes recherches et adaptation du code je n'arrive pas à trouver une solution à mon problème peut être que j'ai mal énuméré. En fait quand il trouve dans mes documents le fichier service general à la date du jour je souhaiterais qu'il ouvre mon application BESSAIFORM_Base_Service_General sans activer les macros pour conserver ces anciennes donnéeS et par contre si il ne retrouve pas le fichier service general il ouvre quand même mon application BESSAIFORM_Base_Service_General et là il effectue les macros. J'espère avoir été plus claire. J'ai essayé beaucoup de choses et j'ai même planté mon excel mais bon j'ai réparé tout va bien. Je vous remercie d'avance pour votre aide.
A demain bonne nuit TALLIA
 

kjin

XLDnaute Barbatruc
Re : Macro ouverture de fichier

Bonsoir,
J'ai parcouru le fil jusqu'ici, et je n'ai peut-être pas bien lu mais...
En fait quand il trouve dans mes documents le fichier service general à la date du jour...
Jusque là les codes proposés par ledzepfred et Pierrot devrait convenir...
...je souhaiterais qu'il ouvre mon application BESSAIFORM_Base_Service_General...
Là c'est déjà moins clair
Qu'est ce que tu appelles application ?
Où est-elle située ? comment la lance t-on ?
...sans activer les macros pour conserver ces anciennes données...
Quelles macros et où sont-elles situées ?
...et par contre si il ne retrouve pas le fichier service general il ouvre quand même mon application BESSAIFORM_Base_Service_General et là il effectue les macros...
Si on a la réponse aux questions précédentes, on aura la réponse ici aussi je pense
A+
kjin
 

tallia64

XLDnaute Occasionnel
Re : Macro ouverture de fichier

Bonjour merci pour votre aide. En fait j'ai deux fichiers excel qui se trouve C:\Documents and Settings\HP_Propriétaire\Mes documents. Le 1er sur lequel je rentre des données c'est pour cela que je l'appellais mon application est BESSAIFORM_Base_Service_General.xls à la fermeture de celui-ci automatiquement il fait une extraction de ses données dans mon autre fichier service_general_" & Day(Date) & "_" & Month(Date) & "_" & Year(Date) & ".xls afin d'effectuer une sauvegarde des données.Généralement quand je reouvre mon fichier BESSAIFORM_Base_Service_General.xls il y a deux macros qui sont dans le thisworkbook
dont COMBOBLANC et Ablanc qui se déclenchent. Mais je voudrais qu'elles se déclenchent sous une condition " Si à l'ouverture de BESSAIFORM_Base_Service_General.xls il trouve dans C:\Documents and Settings\HP_Propriétaire\Mes documents le fichier service_general_" & Day(Date) & "_" & Month(Date) & "_" & Year(Date) & "(à la date du jour).xls il s'ouvre sans effectuer les macros par contre s'il trouve le service_general à une date différente à celle du jour là il s'ouvre en effectuant les macros. J'espère avoir été assez claire un grand merci.
TALLIA
 

kjin

XLDnaute Barbatruc
Re : Macro ouverture de fichier

Bonjour,
C'est très clair maintenant :)
Testes peut-être comme ceci
Code:
'...
Rep = "C:\Documents and Settings\HP_Propriétaire\Mes documents\"
Fichier1 = Dir(Rep & service_general_" & Day(Date) & "_" & Month(Date) & "_" & Year(Date) & ".xls")
Fichier2 = Rep & "BESSAIFORM_Base_Service_General.xls"
If Fichier1 [COLOR="Red"]<>[/COLOR] "" then
Application.EnableEvents = False
Workbooks.Open Fichier2
Application.EnableEvents = True
Else
Workbooks.Open Fichier2
End If
'....
Edit : J'avais inversé le teste (= au lieu de <> ), sans doute à cause la position de ma tête ce matin
A+
kjin
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
162

Statistiques des forums

Discussions
314 450
Messages
2 109 730
Membres
110 553
dernier inscrit
loic55