OVH Cloud OVH Cloud

Comment relié deux macro ?

2 réponses
Avatar
ELDER
Bonjour je retente ma chance mon premier poste est resté sans réponse (
perdu dans les messages contenant des virus )

Bon voilà j'arrive pratiquement à la fin de la réalisation de mon fichier
excel. J'avoue que même si j'ai passé plus d'une centaine d'heure à la
réalisation d'un suivi de production digne d'une véritable entreprise, je le
doit essentiellement à beaucoup d'entre vous qui se sont donné du mal à me
donner des formules et à concevoir des macros.
Pour terminer mon fichier qui gère des données d'un Pocket Pc, j'ai encore
un petit point à éclaircir pour qu'il passe en "tout auto".

Je m'explique, nous saisissons les données sur différentes feuilles excel
sur le PDA et après connexion avec le pc, les données sont importés dans un
fichier centrale qui fait un récapitulatif et un suivi de production en
temps réel. Grâce à différentes formules et quelques macros le fichier se
ferme puis s'ouvre avec la formule suivante ( merci Isabelle ! ) :

Sub EnregistreFermeOuvre()
'Application.ScreenUpdating = False
fichier = ActiveWorkbook.FullName
ActiveWorkbook.Save
ActiveWorkbook.Close
Workbooks.Open Filename:=fichier
'Application.ScreenUpdating = True
End Sub

une fois cette macro lancé, il nous faut lancé la macro suivante pour lancer
l'impression à une heure fixe ( merci Philippe R. ):

Sub LanceImprime13()
'MPFE 07/09/2003
' lance Imprime1 à l'heure voulue
Application.OnTime TimeValue("13:00:00"), "Imprime1", , True
End Sub


Sub Imprime1()
'MPFE 07/09/2003
' imprime la feuille 1 de ce classeur
ThisWorkbook.Sheets("Feuil1").PrintOut
End Sub


On a 2 autres lance imprime reglé sur 5h et sur 21h.

Je souhaiterais donc si cela est possible à l'aide d'un bouton ( jen ai déjà
créé un pour la macro EnregistreFermeOuvre, que lorsque l'on clique sur le
bouton la macro Enregistre ferme ouvre se lance à 12h45 ( defaçon à
récuperer automatiquement les données du PDA en mettant à jour les liaisons
puis 5 ou dix minutes plus tard lance l'impression d'une ou plusieurs
feuilles. Dans la macro Imprime 1 on note qu'il y a Feuil1 à imprimer.
Peut-on mettre plusieurs feuilles à la suite pour imprimer Feuil1,Feuil2
etc...


Voilà, de cette façon en appuyant sur l'icône excel lancerait la macro qui
se déclencherais à l'heure programmé. Le programme serais donc parfaitement
autonome.

J'espère ne pas avoir trop abusé avec mes questions. Merci à tous

2 réponses

Avatar
Philippe.R
Bonsoir ELDER,
J'avais mis ton précédent message de côté avec l'intention d'y répondre dès que je disposerai d'un
moment de libre avec l'esprit encore assez clair pour ne pas raconter trop d'ânerie.

1) tu peux, à la fin d'une macro, en appeler une autre, comme ceci :

Sub EnregistreFermeOuvre()
'Application.ScreenUpdating = False
fichier = ActiveWorkbook.FullName
ActiveWorkbook.Save
ActiveWorkbook.Close
Workbooks.Open Filename:=fichier
'Application.ScreenUpdating = True
LanceImprime13
End Sub

2) tu peux aussi modifier la macro d'impression de chacune des heures en y intégrant la mise à jour
préalable

Sub LanceImprime13maj()
'MPFE 07/09/2003 et le 02/10/2003
'lance la synchronisation PC-PDA à l'heure voulue
Application.OnTime TimeValue("12:45:00"), "EnregistreFermeOuvre", , True
' lance Imprime1 à l'heure voulue
Application.OnTime TimeValue("13:00:00"), "ImprimePlus", , True
End Sub

et tu procèdes de la même manière pour les deux autres

3) il te suffit d'ajouter les feuilles de cette manière :

Sub ImprimePlus()
'MPFE 02/10/2003
' imprime la feuille 1 et la feuille 2 de ce classeur
ThisWorkbook.Sheets("Feuil1").PrintOut
ThisWorkbook.Sheets("Feuil2").PrintOut
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"ELDER" a écrit dans le message de news:bl9hqe$el5$
Bonjour je retente ma chance mon premier poste est resté sans réponse (
perdu dans les messages contenant des virus )

Bon voilà j'arrive pratiquement à la fin de la réalisation de mon fichier
excel. J'avoue que même si j'ai passé plus d'une centaine d'heure à la
réalisation d'un suivi de production digne d'une véritable entreprise, je le
doit essentiellement à beaucoup d'entre vous qui se sont donné du mal à me
donner des formules et à concevoir des macros.
Pour terminer mon fichier qui gère des données d'un Pocket Pc, j'ai encore
un petit point à éclaircir pour qu'il passe en "tout auto".

Je m'explique, nous saisissons les données sur différentes feuilles excel
sur le PDA et après connexion avec le pc, les données sont importés dans un
fichier centrale qui fait un récapitulatif et un suivi de production en
temps réel. Grâce à différentes formules et quelques macros le fichier se
ferme puis s'ouvre avec la formule suivante ( merci Isabelle ! ) :

Sub EnregistreFermeOuvre()
'Application.ScreenUpdating = False
fichier = ActiveWorkbook.FullName
ActiveWorkbook.Save
ActiveWorkbook.Close
Workbooks.Open Filename:=fichier
'Application.ScreenUpdating = True
End Sub

une fois cette macro lancé, il nous faut lancé la macro suivante pour lancer
l'impression à une heure fixe ( merci Philippe R. ):

Sub LanceImprime13()
'MPFE 07/09/2003
' lance Imprime1 à l'heure voulue
Application.OnTime TimeValue("13:00:00"), "Imprime1", , True
End Sub

Sub Imprime1()
'MPFE 07/09/2003
' imprime la feuille 1 de ce classeur
ThisWorkbook.Sheets("Feuil1").PrintOut
End Sub

On a 2 autres lance imprime reglé sur 5h et sur 21h.

Je souhaiterais donc si cela est possible à l'aide d'un bouton ( jen ai déjà
créé un pour la macro EnregistreFermeOuvre, que lorsque l'on clique sur le
bouton la macro Enregistre ferme ouvre se lance à 12h45 ( defaçon à
récuperer automatiquement les données du PDA en mettant à jour les liaisons
puis 5 ou dix minutes plus tard lance l'impression d'une ou plusieurs
feuilles. Dans la macro Imprime 1 on note qu'il y a Feuil1 à imprimer.
Peut-on mettre plusieurs feuilles à la suite pour imprimer Feuil1,Feuil2
etc...

Voilà, de cette façon en appuyant sur l'icône excel lancerait la macro qui
se déclencherais à l'heure programmé. Le programme serais donc parfaitement
autonome.

J'espère ne pas avoir trop abusé avec mes questions. Merci à tous


Avatar
ELDER
Merci, justement j'avais des petits soucis avec la fonction Ontime,
maintenant ça devrait rentrer dans l'ordre.

Merci Philippe ;-)


"Philippe.R" a écrit dans le message de news:
bli4d5$r93$
Bonsoir ELDER,
J'avais mis ton précédent message de côté avec l'intention d'y répondre
dès que je disposerai d'un

moment de libre avec l'esprit encore assez clair pour ne pas raconter trop
d'ânerie.


1) tu peux, à la fin d'une macro, en appeler une autre, comme ceci :

Sub EnregistreFermeOuvre()
'Application.ScreenUpdating = False
fichier = ActiveWorkbook.FullName
ActiveWorkbook.Save
ActiveWorkbook.Close
Workbooks.Open Filename:=fichier
'Application.ScreenUpdating = True
LanceImprime13
End Sub

2) tu peux aussi modifier la macro d'impression de chacune des heures en y
intégrant la mise à jour

préalable

Sub LanceImprime13maj()
'MPFE 07/09/2003 et le 02/10/2003
'lance la synchronisation PC-PDA à l'heure voulue
Application.OnTime TimeValue("12:45:00"), "EnregistreFermeOuvre", , True
' lance Imprime1 à l'heure voulue
Application.OnTime TimeValue("13:00:00"), "ImprimePlus", , True
End Sub

et tu procèdes de la même manière pour les deux autres

3) il te suffit d'ajouter les feuilles de cette manière :

Sub ImprimePlus()
'MPFE 02/10/2003
' imprime la feuille 1 et la feuille 2 de ce classeur
ThisWorkbook.Sheets("Feuil1").PrintOut
ThisWorkbook.Sheets("Feuil2").PrintOut
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"ELDER" a écrit dans le message de
news:bl9hqe$el5$

Bonjour je retente ma chance mon premier poste est resté sans réponse (
perdu dans les messages contenant des virus )

Bon voilà j'arrive pratiquement à la fin de la réalisation de mon
fichier


excel. J'avoue que même si j'ai passé plus d'une centaine d'heure à la
réalisation d'un suivi de production digne d'une véritable entreprise,
je le


doit essentiellement à beaucoup d'entre vous qui se sont donné du mal à
me


donner des formules et à concevoir des macros.
Pour terminer mon fichier qui gère des données d'un Pocket Pc, j'ai
encore


un petit point à éclaircir pour qu'il passe en "tout auto".

Je m'explique, nous saisissons les données sur différentes feuilles
excel


sur le PDA et après connexion avec le pc, les données sont importés dans
un


fichier centrale qui fait un récapitulatif et un suivi de production en
temps réel. Grâce à différentes formules et quelques macros le fichier
se


ferme puis s'ouvre avec la formule suivante ( merci Isabelle ! ) :

Sub EnregistreFermeOuvre()
'Application.ScreenUpdating = False
fichier = ActiveWorkbook.FullName
ActiveWorkbook.Save
ActiveWorkbook.Close
Workbooks.Open Filename:=fichier
'Application.ScreenUpdating = True
End Sub

une fois cette macro lancé, il nous faut lancé la macro suivante pour
lancer


l'impression à une heure fixe ( merci Philippe R. ):

Sub LanceImprime13()
'MPFE 07/09/2003
' lance Imprime1 à l'heure voulue
Application.OnTime TimeValue("13:00:00"), "Imprime1", , True
End Sub

Sub Imprime1()
'MPFE 07/09/2003
' imprime la feuille 1 de ce classeur
ThisWorkbook.Sheets("Feuil1").PrintOut
End Sub

On a 2 autres lance imprime reglé sur 5h et sur 21h.

Je souhaiterais donc si cela est possible à l'aide d'un bouton ( jen ai
déjà


créé un pour la macro EnregistreFermeOuvre, que lorsque l'on clique sur
le


bouton la macro Enregistre ferme ouvre se lance à 12h45 ( defaçon à
récuperer automatiquement les données du PDA en mettant à jour les
liaisons


puis 5 ou dix minutes plus tard lance l'impression d'une ou plusieurs
feuilles. Dans la macro Imprime 1 on note qu'il y a Feuil1 à imprimer.
Peut-on mettre plusieurs feuilles à la suite pour imprimer Feuil1,Feuil2
etc...

Voilà, de cette façon en appuyant sur l'icône excel lancerait la macro
qui


se déclencherais à l'heure programmé. Le programme serais donc
parfaitement


autonome.

J'espère ne pas avoir trop abusé avec mes questions. Merci à tous