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

[VBA] Ouvrir un classeur Excel sans exécuter sa macro d'ouverture

8 réponses
Avatar
HD
Bonjour,

Je dois récupérer des données d'un classeur Excel dans Word, j'utilise pour
cela ce code :
Function RECUP(Fichier As String, Feuille As String, Ligne As Long, Col As
Integer) As String
Dim R As String
Dim Cls As Workbooks
Dim Cl As Workbook
Dim F As Worksheet
Dim Cel As Excel.Range

Set Cls = CreateObject("Excel.Application").Workbooks
Cls.Application.DisplayAlerts = False
Cls.Application.EnableEvents = False
Cls.Application.ScreenUpdating = False
Cls.Application.AskToUpdateLinks = False
Set Cl = Cls.Open(Fichier, 0)
Set F = Cl.Worksheets(Feuille)
Set Cel = F.Cells(Ligne, Col)
R = Cel.Text
Cl.Close False
RECUP = R
End Function

Or mon problème est qu'à l'ouverture d'Excel la macro Workbook_Open
s'exècute... Comment peut on ouvrir un classeur Excel en désactivant toute
macro ?

Merci d'avance pour votre aide
--
@+
HD

8 réponses

Avatar
JB
Bonjour,

Remplacer par auto_open() ' dans un module

JB
http://boisgontierjacques.free.fr

On 20 sep, 16:08, "HD" wrote:
Bonjour,

Je dois récupérer des données d'un classeur Excel dans Word, j'util ise pour
cela ce code :
Function RECUP(Fichier As String, Feuille As String, Ligne As Long, Col As
Integer) As String
Dim R As String
Dim Cls As Workbooks
Dim Cl As Workbook
Dim F As Worksheet
Dim Cel As Excel.Range

Set Cls = CreateObject("Excel.Application").Workbooks
Cls.Application.DisplayAlerts = False
Cls.Application.EnableEvents = False
Cls.Application.ScreenUpdating = False
Cls.Application.AskToUpdateLinks = False
Set Cl = Cls.Open(Fichier, 0)
Set F = Cl.Worksheets(Feuille)
Set Cel = F.Cells(Ligne, Col)
R = Cel.Text
Cl.Close False
RECUP = R
End Function

Or mon problème est qu'à l'ouverture d'Excel la macro Workbook_Open
s'exècute... Comment peut on ouvrir un classeur Excel en désactivant toute
macro ?

Merci d'avance pour votre aide
--
@+
HD


Avatar
HD
Remplacer par auto_open() ' dans un module


Remplacer quoi par auto_open ? et dans quel module ?

Avatar
JFrancois QC
Bonjour je te suggère d'utiliser ADO pour récupérer tes données
va voir sur http://www.excelabo.net/excel/fichiersfermer.php


Bonjour,

Je dois récupérer des données d'un classeur Excel dans Word, j'utilise pour
cela ce code :
Function RECUP(Fichier As String, Feuille As String, Ligne As Long, Col As
Integer) As String
Dim R As String
Dim Cls As Workbooks
Dim Cl As Workbook
Dim F As Worksheet
Dim Cel As Excel.Range

Set Cls = CreateObject("Excel.Application").Workbooks
Cls.Application.DisplayAlerts = False
Cls.Application.EnableEvents = False
Cls.Application.ScreenUpdating = False
Cls.Application.AskToUpdateLinks = False
Set Cl = Cls.Open(Fichier, 0)
Set F = Cl.Worksheets(Feuille)
Set Cel = F.Cells(Ligne, Col)
R = Cel.Text
Cl.Close False
RECUP = R
End Function

Or mon problème est qu'à l'ouverture d'Excel la macro Workbook_Open
s'exècute... Comment peut on ouvrir un classeur Excel en désactivant toute
macro ?

Merci d'avance pour votre aide
--
@+
HD





Avatar
HD
Remplacer par auto_open() ' dans un module
Remplacer quoi par auto_open ? et dans quel module ?



Je viens de chercher des infos sur le Net et... il semblerait que auto_open
soit à abandonner... et il ne semble pas fonctionner sur Excel 2007. Car
c'est bien là mon problème, que ma macro est sensé fonctionnée avec des
fichiers Word et Excel en mode compatible pour des versions allant d'Office
97 à Office 2007.


Avatar
JB
La macro auto_open fonctionne sur Excel 2007.

JB
http://boisgontierjacques.free.fr

On 20 sep, 17:02, "HD" wrote:
Remplacer par auto_open() ' dans un module
Remplacer quoi par auto_open ? et dans quel module ?



Je viens de chercher des infos sur le Net et... il semblerait que auto_op en
soit à abandonner... et il ne semble pas fonctionner sur Excel 2007. Car
c'est bien là mon problème, que ma macro est sensé fonctionnée av ec des
fichiers Word et Excel en mode compatible pour des versions allant d'Offi ce
97 à Office 2007.




Avatar
JB
Pour récupérer un tableau avec ADO:

http://boisgontierjacques.free.fr/pages_site/ado.htm#Import


'Microsoft ActiveX dataobject doit être coché
Sub Essai()
ChDir ActiveWorkbook.Path
Dim rs As ADODB.Recordset
Set Cnn = New ADODB.Connection
Cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQOExcel3.XLS"
Set rs = Cnn.Execute("SELECT nom,service FROM MaListe")
Range("A65000").End(xlUp).Offset(1, 0).CopyFromRecordset rs
End Sub

JB

On 20 sep, 20:46, JB wrote:
La macro auto_open fonctionne sur Excel 2007.

JBhttp://boisgontierjacques.free.fr

On 20 sep, 17:02, "HD" wrote:



Remplacer par auto_open() ' dans un module
Remplacer quoi par auto_open ? et dans quel module ?



Je viens de chercher des infos sur le Net et... il semblerait que auto_ open
soit à abandonner... et il ne semble pas fonctionner sur Excel 2007. Car
c'est bien là mon problème, que ma macro est sensé fonctionnée avec des
fichiers Word et Excel en mode compatible pour des versions allant d'Of fice
97 à Office 2007.- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -





Avatar
HD
La macro auto_open fonctionne sur Excel 2007.


Ce qu'il y'a c'est que mes classeurs Excel sur lesquels doivent être
récupérés les données sont très nombreux et que du coup je ne pourrais faire
la modif' que pour les prochains fichiers... les anciens eux auront encore
le Workbook_open... :-(

Avatar
Damien Kergosien
Bonjour JFrancois QC
Je dis peut-êtr une bétise mais quand j'ai à ouvrir des classeurs excel
contenant des macros dans le module Workbook, je place dans la macro du
classeur de traitrement l'instruction :
Application.enanleEvents = False

ne pas oublier de remettre à true à la fin
Bonne soirée
Damien

Bonjour je te suggère d'utiliser ADO pour récupérer tes données
va voir sur http://www.excelabo.net/excel/fichiersfermer.php


Bonjour,

Je dois récupérer des données d'un classeur Excel dans Word, j'utilise pour
cela ce code :
Function RECUP(Fichier As String, Feuille As String, Ligne As Long, Col As
Integer) As String
Dim R As String
Dim Cls As Workbooks
Dim Cl As Workbook
Dim F As Worksheet
Dim Cel As Excel.Range

Set Cls = CreateObject("Excel.Application").Workbooks
Cls.Application.DisplayAlerts = False
Cls.Application.EnableEvents = False
Cls.Application.ScreenUpdating = False
Cls.Application.AskToUpdateLinks = False
Set Cl = Cls.Open(Fichier, 0)
Set F = Cl.Worksheets(Feuille)
Set Cel = F.Cells(Ligne, Col)
R = Cel.Text
Cl.Close False
RECUP = R
End Function

Or mon problème est qu'à l'ouverture d'Excel la macro Workbook_Open
s'exècute... Comment peut on ouvrir un classeur Excel en désactivant toute
macro ?

Merci d'avance pour votre aide
--
@+
HD