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

Copie de feuille

4 réponses
Avatar
Flac
Bonjour,
Excel 2000,
Dans la macro suivante, comment faire en sorte que les feuilles du nouveau
classeur ne comprennent pas les macros "Evenements de feuille"?

Sub test()
Dim Rg As Range, Chemin As String
Chemin = ThisWorkbook.FullName & "\"
Set Rg = ThisWorkbook.Worksheets("Menu").Range("A1")
Application.ScreenUpdating = False
Sheets(Array("Résumé litres", "Litres", "millage réel", _
"Kilométrages", "Formule Gouvernement")).Copy
With ActiveWorkbook
.SaveAs Chemin & Rg & ".xls"
'Si nécessaire
.Close False
End With
End Sub

Merci

Flac

4 réponses

Avatar
isabelle
bonjour Flac,

si c'est pour détruire tout les codes,
remplacer :

.Close False

par

DeleteAllVBA
.Close True

Sub DeleteAllVBA()
'Source : Chip Pearson
'http://www.cpearson.com/excel/vbe.htm

Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks("Classeur7").VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 1, 2, 3
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub

isabelle

Flac a écrit :
Bonjour,
Excel 2000,
Dans la macro suivante, comment faire en sorte que les feuilles du nouveau
classeur ne comprennent pas les macros "Evenements de feuille"?

Sub test()
Dim Rg As Range, Chemin As String
Chemin = ThisWorkbook.FullName & ""
Set Rg = ThisWorkbook.Worksheets("Menu").Range("A1")
Application.ScreenUpdating = False
Sheets(Array("Résumé litres", "Litres", "millage réel", _
"Kilométrages", "Formule Gouvernement")).Copy
With ActiveWorkbook
.SaveAs Chemin & Rg & ".xls"
'Si nécessaire
.Close False
End With
End Sub

Merci

Flac




Avatar
Flac
Bonjour et merci Isabelle,
Pourrais-tu m'expliquer comment je pourrais changer le
nom "classeur7" de la macro DeleteALLVBA

La macro bogue sur cette ligne (sauf si le classeur porte le nom de
"classeur7")

J'ai modifié avec (Activeworkbook) mais ça ne fonctionne pas. Quelle
syntaxe devrais-je utiliser pour
appliquer la macro au classeur actif

Merci à l'avance

Flac
"isabelle" a écrit dans le message de news:
u1$
bonjour Flac,

si c'est pour détruire tout les codes,
remplacer :

.Close False

par

DeleteAllVBA
.Close True

Sub DeleteAllVBA()
'Source : Chip Pearson
'http://www.cpearson.com/excel/vbe.htm

Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks("Classeur7").VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 1, 2, 3
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub

isabelle

Flac a écrit :
Bonjour,
Excel 2000,
Dans la macro suivante, comment faire en sorte que les feuilles du
nouveau classeur ne comprennent pas les macros "Evenements de feuille"?

Sub test()
Dim Rg As Range, Chemin As String
Chemin = ThisWorkbook.FullName & ""
Set Rg = ThisWorkbook.Worksheets("Menu").Range("A1")
Application.ScreenUpdating = False
Sheets(Array("Résumé litres", "Litres", "millage réel", _
"Kilométrages", "Formule Gouvernement")).Copy
With ActiveWorkbook
.SaveAs Chemin & Rg & ".xls"
'Si nécessaire
.Close False
End With
End Sub

Merci

Flac





Avatar
isabelle
bonjour flac,

c'est cette ligne qu'il faut modifier :

Set VBComps = Workbooks("Classeur7").VBProject.VBComponents

par :

Set VBComps = ActiveWorkbook.VBProject.VBComponents

isabelle

Flac a écrit :
Bonjour et merci Isabelle,
Pourrais-tu m'expliquer comment je pourrais changer le
nom "classeur7" de la macro DeleteALLVBA

La macro bogue sur cette ligne (sauf si le classeur porte le nom de
"classeur7")

J'ai modifié avec (Activeworkbook) mais ça ne fonctionne pas. Quelle
syntaxe devrais-je utiliser pour
appliquer la macro au classeur actif

Merci à l'avance

Flac
"isabelle" a écrit dans le message de news:
u1$
bonjour Flac,

si c'est pour détruire tout les codes,
remplacer :

.Close False

par

DeleteAllVBA
.Close True

Sub DeleteAllVBA()
'Source : Chip Pearson
'http://www.cpearson.com/excel/vbe.htm

Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks("Classeur7").VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 1, 2, 3
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub

isabelle

Flac a écrit :
Bonjour,
Excel 2000,
Dans la macro suivante, comment faire en sorte que les feuilles du
nouveau classeur ne comprennent pas les macros "Evenements de feuille"?

Sub test()
Dim Rg As Range, Chemin As String
Chemin = ThisWorkbook.FullName & ""
Set Rg = ThisWorkbook.Worksheets("Menu").Range("A1")
Application.ScreenUpdating = False
Sheets(Array("Résumé litres", "Litres", "millage réel", _
"Kilométrages", "Formule Gouvernement")).Copy
With ActiveWorkbook
.SaveAs Chemin & Rg & ".xls"
'Si nécessaire
.Close False
End With
End Sub

Merci

Flac








Avatar
Flac
Merci, ça fonctionne.

Flac



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

bonjour flac,

c'est cette ligne qu'il faut modifier :

Set VBComps = Workbooks("Classeur7").VBProject.VBComponents

par :

Set VBComps = ActiveWorkbook.VBProject.VBComponents

isabelle

Flac a écrit :
Bonjour et merci Isabelle,
Pourrais-tu m'expliquer comment je pourrais changer le
nom "classeur7" de la macro DeleteALLVBA

La macro bogue sur cette ligne (sauf si le classeur porte le nom de
"classeur7")

J'ai modifié avec (Activeworkbook) mais ça ne fonctionne pas. Quelle
syntaxe devrais-je utiliser pour
appliquer la macro au classeur actif

Merci à l'avance

Flac
"isabelle" a écrit dans le message de news:
u1$
bonjour Flac,

si c'est pour détruire tout les codes,
remplacer :

.Close False

par

DeleteAllVBA
.Close True

Sub DeleteAllVBA()
'Source : Chip Pearson
'http://www.cpearson.com/excel/vbe.htm

Dim VBComp As Object
Dim VBComps As Object
Set VBComps = Workbooks("Classeur7").VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 1, 2, 3
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub

isabelle

Flac a écrit :
Bonjour,
Excel 2000,
Dans la macro suivante, comment faire en sorte que les feuilles du
nouveau classeur ne comprennent pas les macros "Evenements de feuille"?

Sub test()
Dim Rg As Range, Chemin As String
Chemin = ThisWorkbook.FullName & ""
Set Rg = ThisWorkbook.Worksheets("Menu").Range("A1")
Application.ScreenUpdating = False
Sheets(Array("Résumé litres", "Litres", "millage réel", _
"Kilométrages", "Formule Gouvernement")).Copy
With ActiveWorkbook
.SaveAs Chemin & Rg & ".xls"
'Si nécessaire
.Close False
End With
End Sub

Merci

Flac