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

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4744081
Bonjour,

Remplacer par auto_open() ' dans un module

JB
http://boisgontierjacques.free.fr

On 20 sep, 16:08, "HD"
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


HD
Le #4744071
Remplacer par auto_open() ' dans un module


Remplacer quoi par auto_open ? et dans quel module ?

JFrancois QC
Le #4744021
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





HD
Le #4744001
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.


JB
Le #4743811
La macro auto_open fonctionne sur Excel 2007.

JB
http://boisgontierjacques.free.fr

On 20 sep, 17:02, "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_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.




JB
Le #4743791
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)};DBQ­OExcel3.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
La macro auto_open fonctionne sur Excel 2007.

JBhttp://boisgontierjacques.free.fr

On 20 sep, 17:02, "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'Of fice
97 à Office 2007.- Masquer le texte des messages précédents -


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





HD
Le #4743591
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... :-(

Damien Kergosien
Le #4743061
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







Publicité
Poster une réponse
Anonyme