Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

macro auto open ACH

14 réponses
Avatar
alain chatellier
cBonjour à tous !
Je veux par macro ouvrir un autre fichier excel; mais
celui-ci execute une macro auto_open .
Comment puis-je ouvrir ce fichier par macro VBA en empechant la macro
auto-open de se lancer...

Cordialement
Alain

4 réponses

1 2
Avatar
lSteph
Sais-tu si auto_open est toujours disponible sous Excel 2007 ?

Là c'est une question pertinente:

Non,
:-) j'utilise Workbook_open depuis xl97 et jusqu'à 2003
aussi même à l'occasion de deux tentatives, "c'est beta",
pas pris le temps de m'intéresser à cette question qui ne se poserait
que dans
un contexte peu probable d'être forcé de passer à 2007.

Cordialement.

lSteph




On 11 avr, 14:37, "MichDenis" wrote:
| Tu nous avais habitué à mieux,

Ce n'est pas obligatoire d'être toujours pertinent ! Et ma réponse
ne s'adressait pas au répondeur et n'était pas destiné à résoud re
sa problématique... As-tu besoin de plus d'explications ?

Ceci étant, si anonymousA t'avait appris à "pécher" tu aurais pu
retrouver ces 2 messages de deux éminents personnages appartenant
à l'historique de ce forum.

;-))

| amha l'auto_open est surtout à oublier au profit de workbook_open

Sais-tu si auto_open est toujours disponible sous Excel 2007 ?

Je suis d'accord avec toi, il faut être catégorique ... après tout
tu sais de quoi tu parles.... à cet effet un message paru sous
la plume de Frédéric Sigonneau ...
'------------------------------------
Sub Discret(fich)
Dim xl As Object, wbk As Workbook
Set xl = CreateObject("Excel.Application")
xl.EnableEvents = False
Set wbk = xl.Workbooks.Open(fich)
wbk.Sheets(1).Range("D1").Value = "discret22"
xl.EnableEvents = True
wbk.Close (True)
xl.Quit
Set wbk = Nothing
Set xl = Nothing
End Sub

Sub Nomdufichier()
Dim NomFichier
NomFichier = Application.GetOpenFilename
Discret NomFichier
' Workbooks.Open Filename:=NomFichier
End Sub

La désactivation des événements d'une instance d'Excel créée pa r Automation
semble être une nouveauté d'Excel 2002. L'instruction que j'avais pos tée
(xl.EnableEventsúlse) n'est donc pas reconnue par Excel 2000.
Il est néanmoins possible (testé aujourd'hui) d'arriver au même r ésultat avec
Excel 2000, à condition de mettre les instructions à exécuter à l 'ouverture du
classeur dans une procédure Auto_Open au lieu d'utiliser l'événement
Workbook_Open. Les procédures Auto_xxx ne sont en effet pas exécuté es,
semble-t-il, lorsqu'Excel 2000 est créé par Automation. Je ne sais pa s ce qu'il
en est, par contre, pour Excel 97, je n'ai pas pu tester.
'------------------------------------

Voici un autre message de Laurent Longre sur le sujet paru aussi sur ce F orum :
'------------------------------------
Si tu veux simplement désactiver sa procédure Workbook_Open :

Application.EnableEvents = False
Workbooks.Open("C:MonClasseur.xls")
Application.EnableEvents = True

(remplace "MonClasseur.xls" par le classeur dont tu veux désactiver les
macros)

Si tu veux désactiver la totalité de ses macros :

- Insère un module de classe ("Classe1") dans le 1er classeur et copie les
lignes suivantes :

Public WithEvents App As Application

Private Sub App_WorkbookActivate(ByVal Wb As Workbook)
On Error Resume Next
If Wb Is Workbooks("MonClasseur.xls") Then _
CommandBars.FindControl(ID:05).Execute
End Sub

- Dans le module ThisWorkbook du 1er classeur :

Dim XLApp As Classe1

Private Sub Workbook_Open()
Set XLApp = New Classe1
Set XLApp.App = Application
End Sub
'------------------------------------


Avatar
lSteph
.. pour complèter:
sous 97 application.enableeventsúlse désactive bien les événements
de niveau classeur
et notament Workbook_open
en revanche , je n'ai pas décelé dans le sujet , ou j'ai loupé un
épisode,
qu'il s'agisse d'une instance CreateObject.

@+

lSteph


On 11 avr, 14:37, "MichDenis" wrote:
| Tu nous avais habitué à mieux,

Ce n'est pas obligatoire d'être toujours pertinent ! Et ma réponse
ne s'adressait pas au répondeur et n'était pas destiné à résoud re
sa problématique... As-tu besoin de plus d'explications ?

Ceci étant, si anonymousA t'avait appris à "pécher" tu aurais pu
retrouver ces 2 messages de deux éminents personnages appartenant
à l'historique de ce forum.

;-))

| amha l'auto_open est surtout à oublier au profit de workbook_open

Sais-tu si auto_open est toujours disponible sous Excel 2007 ?

Je suis d'accord avec toi, il faut être catégorique ... après tout
tu sais de quoi tu parles.... à cet effet un message paru sous
la plume de Frédéric Sigonneau ...
'------------------------------------
Sub Discret(fich)
Dim xl As Object, wbk As Workbook
Set xl = CreateObject("Excel.Application")
xl.EnableEvents = False
Set wbk = xl.Workbooks.Open(fich)
wbk.Sheets(1).Range("D1").Value = "discret22"
xl.EnableEvents = True
wbk.Close (True)
xl.Quit
Set wbk = Nothing
Set xl = Nothing
End Sub

Sub Nomdufichier()
Dim NomFichier
NomFichier = Application.GetOpenFilename
Discret NomFichier
' Workbooks.Open Filename:=NomFichier
End Sub

La désactivation des événements d'une instance d'Excel créée pa r Automation
semble être une nouveauté d'Excel 2002. L'instruction que j'avais pos tée
(xl.EnableEventsúlse) n'est donc pas reconnue par Excel 2000.
Il est néanmoins possible (testé aujourd'hui) d'arriver au même r ésultat avec
Excel 2000, à condition de mettre les instructions à exécuter à l 'ouverture du
classeur dans une procédure Auto_Open au lieu d'utiliser l'événement
Workbook_Open. Les procédures Auto_xxx ne sont en effet pas exécuté es,
semble-t-il, lorsqu'Excel 2000 est créé par Automation. Je ne sais pa s ce qu'il
en est, par contre, pour Excel 97, je n'ai pas pu tester.
'------------------------------------

Voici un autre message de Laurent Longre sur le sujet paru aussi sur ce F orum :
'------------------------------------
Si tu veux simplement désactiver sa procédure Workbook_Open :

Application.EnableEvents = False
Workbooks.Open("C:MonClasseur.xls")
Application.EnableEvents = True

(remplace "MonClasseur.xls" par le classeur dont tu veux désactiver les
macros)

Si tu veux désactiver la totalité de ses macros :

- Insère un module de classe ("Classe1") dans le 1er classeur et copie les
lignes suivantes :

Public WithEvents App As Application

Private Sub App_WorkbookActivate(ByVal Wb As Workbook)
On Error Resume Next
If Wb Is Workbooks("MonClasseur.xls") Then _
CommandBars.FindControl(ID:05).Execute
End Sub

- Dans le module ThisWorkbook du 1er classeur :

Dim XLApp As Classe1

Private Sub Workbook_Open()
Set XLApp = New Classe1
Set XLApp.App = Application
End Sub
'------------------------------------


Avatar
Daniel.j
Oui elle fonctionne encore!
Daniel

--
FAQ MPFE
FAQ du forum microsoft.public.fr.excel
http://dj.joss.free.fr/faq.htm

"lSteph" a écrit dans le message de news:

Sais-tu si auto_open est toujours disponible sous Excel 2007 ?

Là c'est une question pertinente:

Non,
:-) j'utilise Workbook_open depuis xl97 et jusqu'à 2003
aussi même à l'occasion de deux tentatives, "c'est beta",
pas pris le temps de m'intéresser à cette question qui ne se poserait
que dans
un contexte peu probable d'être forcé de passer à 2007.

Cordialement.

lSteph




On 11 avr, 14:37, "MichDenis" wrote:
| Tu nous avais habitué à mieux,

Ce n'est pas obligatoire d'être toujours pertinent ! Et ma réponse
ne s'adressait pas au répondeur et n'était pas destiné à résoudre
sa problématique... As-tu besoin de plus d'explications ?

Ceci étant, si anonymousA t'avait appris à "pécher" tu aurais pu
retrouver ces 2 messages de deux éminents personnages appartenant
à l'historique de ce forum.

;-))

| amha l'auto_open est surtout à oublier au profit de workbook_open

Sais-tu si auto_open est toujours disponible sous Excel 2007 ?

Je suis d'accord avec toi, il faut être catégorique ... après tout
tu sais de quoi tu parles.... à cet effet un message paru sous
la plume de Frédéric Sigonneau ...
'------------------------------------
Sub Discret(fich)
Dim xl As Object, wbk As Workbook
Set xl = CreateObject("Excel.Application")
xl.EnableEvents = False
Set wbk = xl.Workbooks.Open(fich)
wbk.Sheets(1).Range("D1").Value = "discret22"
xl.EnableEvents = True
wbk.Close (True)
xl.Quit
Set wbk = Nothing
Set xl = Nothing
End Sub

Sub Nomdufichier()
Dim NomFichier
NomFichier = Application.GetOpenFilename
Discret NomFichier
' Workbooks.Open Filename:=NomFichier
End Sub

La désactivation des événements d'une instance d'Excel créée par
Automation
semble être une nouveauté d'Excel 2002. L'instruction que j'avais postée
(xl.EnableEventsúlse) n'est donc pas reconnue par Excel 2000.
Il est néanmoins possible (testé aujourd'hui) d'arriver au même résultat
avec
Excel 2000, à condition de mettre les instructions à exécuter à
l'ouverture du
classeur dans une procédure Auto_Open au lieu d'utiliser l'événement
Workbook_Open. Les procédures Auto_xxx ne sont en effet pas exécutées,
semble-t-il, lorsqu'Excel 2000 est créé par Automation. Je ne sais pas ce
qu'il
en est, par contre, pour Excel 97, je n'ai pas pu tester.
'------------------------------------

Voici un autre message de Laurent Longre sur le sujet paru aussi sur ce
Forum :
'------------------------------------
Si tu veux simplement désactiver sa procédure Workbook_Open :

Application.EnableEvents = False
Workbooks.Open("C:MonClasseur.xls")
Application.EnableEvents = True

(remplace "MonClasseur.xls" par le classeur dont tu veux désactiver les
macros)

Si tu veux désactiver la totalité de ses macros :

- Insère un module de classe ("Classe1") dans le 1er classeur et copie les
lignes suivantes :

Public WithEvents App As Application

Private Sub App_WorkbookActivate(ByVal Wb As Workbook)
On Error Resume Next
If Wb Is Workbooks("MonClasseur.xls") Then _
CommandBars.FindControl(ID:05).Execute
End Sub

- Dans le module ThisWorkbook du 1er classeur :

Dim XLApp As Classe1

Private Sub Workbook_Open()
Set XLApp = New Classe1
Set XLApp.App = Application
End Sub
'------------------------------------


Avatar
LSteph
Bonjour

Faut-il reformuler:

Sais-tu...?



Non,


si auto_open est toujours disponible sous Excel 2007 ?



..ne se poserait
que dans
un contexte peu probable d'être forcé de passer à 2007.


et en fait le seul pb qui se poserait serait
plutôt pour moi si WorkBook_Open disparaissait.

;-)

Amicordialement.

lSteph


Sais-tu si auto_open est toujours disponible sous Excel 2007 ?

Là c'est une question pertinente:

Non,
:-) j'utilise Workbook_open depuis xl97 et jusqu'à 2003
aussi même à l'occasion de deux tentatives, "c'est beta",
pas pris le temps de m'intéresser à cette question qui ne se poserait
que dans
un contexte peu probable d'être forcé de passer à 2007.

Cordialement.

lSteph




On 11 avr, 14:37, "MichDenis" wrote:
| Tu nous avais habitué à mieux,

Ce n'est pas obligatoire d'être toujours pertinent ! Et ma réponse
ne s'adressait pas au répondeur et n'était pas destiné à résoudre
sa problématique... As-tu besoin de plus d'explications ?

Ceci étant, si anonymousA t'avait appris à "pécher" tu aurais pu
retrouver ces 2 messages de deux éminents personnages appartenant
à l'historique de ce forum.

;-))

| amha l'auto_open est surtout à oublier au profit de workbook_open

Sais-tu si auto_open est toujours disponible sous Excel 2007 ?

Je suis d'accord avec toi, il faut être catégorique ... après tout
tu sais de quoi tu parles.... à cet effet un message paru sous
la plume de Frédéric Sigonneau ...
'------------------------------------
Sub Discret(fich)
Dim xl As Object, wbk As Workbook
Set xl = CreateObject("Excel.Application")
xl.EnableEvents = False
Set wbk = xl.Workbooks.Open(fich)
wbk.Sheets(1).Range("D1").Value = "discret22"
xl.EnableEvents = True
wbk.Close (True)
xl.Quit
Set wbk = Nothing
Set xl = Nothing
End Sub

Sub Nomdufichier()
Dim NomFichier
NomFichier = Application.GetOpenFilename
Discret NomFichier
' Workbooks.Open Filename:=NomFichier
End Sub

La désactivation des événements d'une instance d'Excel créée par Automation
semble être une nouveauté d'Excel 2002. L'instruction que j'avais postée
(xl.EnableEventsúlse) n'est donc pas reconnue par Excel 2000.
Il est néanmoins possible (testé aujourd'hui) d'arriver au même résultat avec
Excel 2000, à condition de mettre les instructions à exécuter à l'ouverture du
classeur dans une procédure Auto_Open au lieu d'utiliser l'événement
Workbook_Open. Les procédures Auto_xxx ne sont en effet pas exécutées,
semble-t-il, lorsqu'Excel 2000 est créé par Automation. Je ne sais pas ce qu'il
en est, par contre, pour Excel 97, je n'ai pas pu tester.
'------------------------------------

Voici un autre message de Laurent Longre sur le sujet paru aussi sur ce Forum :
'------------------------------------
Si tu veux simplement désactiver sa procédure Workbook_Open :

Application.EnableEvents = False
Workbooks.Open("C:MonClasseur.xls")
Application.EnableEvents = True

(remplace "MonClasseur.xls" par le classeur dont tu veux désactiver les
macros)

Si tu veux désactiver la totalité de ses macros :

- Insère un module de classe ("Classe1") dans le 1er classeur et copie les
lignes suivantes :

Public WithEvents App As Application

Private Sub App_WorkbookActivate(ByVal Wb As Workbook)
On Error Resume Next
If Wb Is Workbooks("MonClasseur.xls") Then _
CommandBars.FindControl(ID:05).Execute
End Sub

- Dans le module ThisWorkbook du 1er classeur :

Dim XLApp As Classe1

Private Sub Workbook_Open()
Set XLApp = New Classe1
Set XLApp.App = Application
End Sub
'------------------------------------






1 2