Automatiser l ouverture des fichiers excel

jabrane

XLDnaute Nouveau
Bonjour;
Je vous demande ,svp, comment je pourrais ouvrir des fichiers Excel dand un chemin bien specifié dans un serveur(windows server 2003)?
J'ai crée une macro qui declanche a l ouverture de chaque fichier excel , alors a chaque fois j'aurais des nouveaux fichiers excel dans une repertoire du serveur , mais , le probleme reste a ouvrir ces fichiers la. Y at il une solution pour pouvoir ouvrir ces classeurs automatiquement ?? Si c possible , veuillez svp m 'expliquer la procedure ; j en ai besoin seulement d ouvrir ces fichiers à chaque update du repertoire , c a d , à chaque existance des nouveaux document Excel ?? Si c pas possible , alors , Ouvrir les fichiers existant toutes les 20 mn apres avoir supprimer les anciens fichiers pour ne pas les traiter une 2 eme fois par la macro . Merci
 

camarchepas

XLDnaute Barbatruc
Re : Automatiser l ouverture des fichiers excel

Bonjour Jabrane,

Des phrases tres lourdes et complexe ne servent à rien pour t'aider .
Il faut classer tes idées par ordre, et une idée par ligne.
Car là , l'on y comprend pas grand chose.
Si tu veux tu peux déplacer les fichiers traités dans un autre répertoire comme cela tu as la traçabilité , et pas l'embarras .
bon , une scrutation toutes les 20 mn me parait plutot une bonne solution.
Mes que fais tu avec ces fichiers , si tu les ouvres c'est pour une raison , non .
 

jabrane

XLDnaute Nouveau
Re : Automatiser l ouverture des fichiers excel

Bonjour camarchepas;
La seul rasion d ouvrir ces fichiers la, C'est que je voudrais declancher une macro, à l'ouverture de n importe quel fichier excel selon des conditions.
Le fait de pouvoir declancher ma macro , j'en ai plus besoin des fichiers Excel.
La structuration toutes les 2à mn , c'est une solution puisque chaque 20 mn j'aurais des nouveaux fichiers ajoutées dans le repertoire.
Merci
 

camarchepas

XLDnaute Barbatruc
Re : Automatiser l ouverture des fichiers excel

Jabrane ,

Je ne pourrais pas t'aider si tu ne précise pas ce que doit faire cette macro . pourquoi aller ouvrir une macro dans un classeur .
Autant avoir cette macro dans un classeur de traitement général. N'ayant pas assez d'élément je n'ai donc aucune solution à te proposer.
 

jabrane

XLDnaute Nouveau
Re : Automatiser l ouverture des fichiers excel

Bonjour,
je v'ai vous expliquer par detail ce que ma macro doit faire:
Pour n importe quel fichier excel ouvert , ma macro se declanche automatiquement, celon des condition sur le nom du fichier ( si le nom du fichier = Class*.xls), traite le document, parcour la feuille ligne par ligne et pour chaque ligne : la macro copie les données dans un nouveau documen WORD( un model Word dont les données doivent etre enregistrés) , enregistre le nouveau document word , puis l envoi par mail pour une destination marqué dans une cellule precise du fichier excel .

Le declanchement du macro se fait pour chaque fichier excel ouvert , meme si plusieurs fichiers sont ouvert , la macro les traite un par un .
Mais le probleme reste , comment ouvrir ces fichiers la automatiquement?? ces fichiers sont enregistré sur un serveur d application et tout le traitement va etre réalisé sur ce serveur.Chaque 20 mn on obtient dans la meme repertoires des nouveaux fichiers excel que je veut les traitées tous par ma macro .Est ce que j'ai bien expliquer l utilité de ma macro ?? Merci

Private WithEvents App As Application
Private Sub Workbook_Open()
Set App = Application
End Sub

Private Sub App_WorkbookOpen(ByVal wb As Workbook)
Call MacroAutoJB
End Sub


Sub MacroAutoJB()

Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim oWdApp As Object

Dim i As Byte
Dim sChemin As String
Dim wb As Workbook

Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String

On Error Resume Next
Dim nom As String
Dim sName As String
Dim sPath As String

On Error Resume Next
Dim j As Integer
j = ActiveSheet.UsedRange.Rows.Count
Dim n As Byte
n = Cells(1, Columns.Count).End(xlToLeft).Column

If ActiveWorkbook.Name Like "Class*.xls" Then

user = Environ("username")
sName = ActiveWorkbook.Name
sPath = "C:\Documents and Settings\" & user & "\My Documents\"
sName = Replace(sName, ".xls", "_Word")
MkDir sName
For j = 2 To j

Set WordApp = CreateObject("word.application") 'ouvre session word
nom = Sheets(1).Cells(j, 2)
mail = Sheets(1).Cells(2, n)

Set WordDoc = WordApp.Documents.Open("C:\Documents and Settings\" & user & "\ClassJb.doc")
Set oWdApp = CreateObject("Word.Application")
Set WordDoc = oWdApp.Documents.Open("C:\Documents and Settings\" & user & "\ClassJb.doc")

For i = 1 To n - 1
'les signets du document Word sont nommés Sig1 , Sig2 , Sig3
WordDoc.Bookmarks("Sig" & i).Range.Text = Cells(j, i) ' enregistre la ligne selectionné
Next i
WordDoc.Bookmarks("Signet").Range.Text = Cells(j, 2)
WordDoc.Bookmarks("Sigmail").Range.Text = Cells(j, n)
On Error Resume Next
nom = Replace(nom, ":", "") ' eliminer les caracteres speciaux dans les nom des DOC pour l enregistrement
nom = Replace(nom, """", "")
nom = Replace(nom, "/", "")
nom = Replace(nom, "\", "")
nom = Replace(nom, "*", "")
nom = Replace(nom, "?", "")
nom = Replace(nom, "<", "")
nom = Replace(nom, ">", "")
nom = Replace(nom, "|", "")


WordDoc.SaveAs Filename:=sPath & sName & "\" & nom & ".doc"
WordApp.Visible = False 'affiche le document Word

oWdApp.Quit
ActiveDocument.Close True
WordApp.Quit

Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = nom
objMessage.From = "Server@domain.com"
objMessage.To = mail
objMessage.AddAttachment (sPath & sName & "\" & nom & ".doc")
objMessage.TextBody = "Bonjour" & "" & vbNewLine & " Le document que vous souhaiter l'exporter en document WORD a été envoyer le " & Now & vbNewLine & _
"Ce mail est généré automatiquement" & vbNewLine & _
"" & vbNewLine & _

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "10.168.55.150"

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update

objMessage.Send

Next j
ActiveWorkbook.Close

End Sub
 

camarchepas

XLDnaute Barbatruc
Re : Automatiser l ouverture des fichiers excel

OK ,

Mais ce serveur est-il dédié à cette tache , car si tu veux que chacuns des fichiers soit automone , tu va créer des bombes à retardement ,
le mieux est quand même un fichier centralisant le traitement.

En utilisant par exemple l'événementiel On timer de Excel qui déclenche une macro selon l'heure désirée ou le gestionnaire de tache windows.
 

jabrane

XLDnaute Nouveau
Re : Automatiser l ouverture des fichiers excel

Bonjour Nono;
En utilisant par exemple l'événementiel On timer de Excel qui déclenche une macro selon l'heure désirée ou le gestionnaire de tache windows

veuilez , svp, m expliquer la fonction ON Timer d'excel?? Cette fonction peut elle se declancher automatiquement , avec aucun intervention de l utilisateur pour ouvrir Excel??
Merci
 

jabrane

XLDnaute Nouveau
Re : Automatiser l ouverture des fichiers excel

Bonjour camarchepas ;
J'ai resolu le probleme; mais je tient compte à modifier mon Code macro pour des raison d optimisation :
Ma macro , crée pour chaque ligne du fichier excel un nouveau document puis l enregistre sous le nom de la 2 eme colonne du ligne j .. et comme resultat j 'obtient pour un fichier excel contenant 5 lignes , 5 document word et avec plusieurs utilisateurs le nombre devient enoorme !! Alors , je tient à assembler les document word en 1 seul , cad, au lieu de crée pour chaque ligne un nouveau document , la macro doit créer une nouvelle page dans un seul document , et comme resultat j obtint 1 seul document word avec 5 pages pour un fichier excel de 5 ligne .. est - il possible svp??
 

jabrane

XLDnaute Nouveau
Re : Automatiser l ouverture des fichiers excel

Voiçi mon Code MAcro que je doit l optimiser ou le rendre compatible avec mes besoins:

Sub MacroAutoJB()

Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim oWdApp As Object

Dim i As Byte
Dim sChemin As String
Dim wb As Workbook

Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String

On Error Resume Next
Dim nom As String
Dim sName As String
Dim sPath As String

On Error Resume Next
Dim j As Integer
j = ActiveSheet.UsedRange.Rows.Count 'count number of lines used in the file

Dim n As Byte
n = Cells(1, Columns.Count).End(xlToLeft).Column

If ActiveWorkbook.Name Like "WPaie*.xls" Then

user = Environ("username")
sName = ActiveWorkbook.Name
sPath = "C:\Documents and Settings\" & user & "\My Documents\"
sName = Replace(sName, ".xls", "_Word")
MkDir sName

For j = 2 To j 'start the loop the opeation until the next will be for each line used in the file

Set WordApp = CreateObject("word.application")
nom = Sheets(1).Cells(j, 2)
mail = Sheets(1).Cells(2, n)

Set oWdApp = CreateObject("Word.Application")
Set WordDoc = oWdApp.Documents.Open("C:\Documents and Settings\" & user & "\Class.doc")

For i = 1 To n - 1
WordDoc.Bookmarks("Sig" & i).Range.Text = Cells(j, i)
Next i

WordDoc.Bookmarks("Signet").Range.Text = Cells(j, 2)
WordDoc.Bookmarks("Sigmail").Range.Text = Cells(j, n)

WordDoc.SaveAs Filename:=sPath & sName & "\" & nom & ".doc"
WordApp.Visible = False
oWdApp.Quit
ActiveDocument.Close True
WordApp.Quit

Next j
ActiveWorkbook.Close
 

Discussions similaires

Réponses
36
Affichages
1 K

Statistiques des forums

Discussions
312 081
Messages
2 085 160
Membres
102 800
dernier inscrit
NOTZ