OVH Cloud OVH Cloud

référence à ThisWorkbook dans XLA

3 réponses
Avatar
gabo
Bonjour,

j'ai créé une macro qui ouvre un fichier, copie une feuille de ce fichier
dans mon fichier actuel, puis le referme.

Sub copiefeuille()
Application.ScreenUpdating = False
Dim Actuel As Workbook
Set Actuel = ThisWorkbook
Dim Source As Workbook
Set Source = Workbooks.Open("c:\fichier.xls", 3, True)
Source.Sheets("Mafeuille").Copy Before:=Actuel.Sheets(1)
Source.Close (False)
Application.ScreenUpdating = True
End Sub

(+ macro pour créer un menu supplémentaire)

J'ai essayé de transformer cette macro en macro complémentaire, mais bien
évidemment ThisWorkbook fait alors référence au fichier xla. Comment faire
référence à mon fichier en cours, sans que celui-ci contienne une macro ?

D'avance merci aux guruxls.

Gaëtan

3 réponses

Avatar
Philippe.R
Bonjour,
Sans avoir testé, peut être déclarer static la variable Actuel et l'affecter à ActiveWorkbook.
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002

"gabo" <egonospamgabodavid.com> a écrit dans le message de
news:e8utcT%
Bonjour,

j'ai créé une macro qui ouvre un fichier, copie une feuille de ce fichier
dans mon fichier actuel, puis le referme.

Sub copiefeuille()
Application.ScreenUpdating = False
Dim Actuel As Workbook
Set Actuel = ThisWorkbook
Dim Source As Workbook
Set Source = Workbooks.Open("c:fichier.xls", 3, True)
Source.Sheets("Mafeuille").Copy Before:¬tuel.Sheets(1)
Source.Close (False)
Application.ScreenUpdating = True
End Sub

(+ macro pour créer un menu supplémentaire)

J'ai essayé de transformer cette macro en macro complémentaire, mais bien
évidemment ThisWorkbook fait alors référence au fichier xla. Comment faire
référence à mon fichier en cours, sans que celui-ci contienne une macro ?

D'avance merci aux guruxls.

Gaëtan




Avatar
isabelle
bonjour Gaëtan,

remplace
Set Actuel = ThisWorkbook
par
Set Actuel = ActiveWorkbook

isabelle


Bonjour,

j'ai créé une macro qui ouvre un fichier, copie une feuille de ce fichier
dans mon fichier actuel, puis le referme.

Sub copiefeuille()
Application.ScreenUpdating = False
Dim Actuel As Workbook
Set Actuel = ThisWorkbook
Dim Source As Workbook
Set Source = Workbooks.Open("c:fichier.xls", 3, True)
Source.Sheets("Mafeuille").Copy Before:¬tuel.Sheets(1)
Source.Close (False)
Application.ScreenUpdating = True
End Sub

(+ macro pour créer un menu supplémentaire)

J'ai essayé de transformer cette macro en macro complémentaire, mais bien
évidemment ThisWorkbook fait alors référence au fichier xla. Comment faire
référence à mon fichier en cours, sans que celui-ci contienne une macro ?

D'avance merci aux guruxls.

Gaëtan


Avatar
gabo
Cela fonctionne... merci infiniment.

Gaëtan

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

bonjour Gaëtan,

remplace
Set Actuel = ThisWorkbook
par
Set Actuel = ActiveWorkbook

isabelle


Bonjour,

j'ai créé une macro qui ouvre un fichier, copie une feuille de ce
fichier


dans mon fichier actuel, puis le referme.

Sub copiefeuille()
Application.ScreenUpdating = False
Dim Actuel As Workbook
Set Actuel = ThisWorkbook
Dim Source As Workbook
Set Source = Workbooks.Open("c:fichier.xls", 3, True)
Source.Sheets("Mafeuille").Copy Before:¬tuel.Sheets(1)
Source.Close (False)
Application.ScreenUpdating = True
End Sub

(+ macro pour créer un menu supplémentaire)

J'ai essayé de transformer cette macro en macro complémentaire, mais
bien


évidemment ThisWorkbook fait alors référence au fichier xla. Comment
faire


référence à mon fichier en cours, sans que celui-ci contienne une macro
?



D'avance merci aux guruxls.

Gaëtan