Bonjour à tous,
Je souhaite à partir d'une macro d'un fichier excel construire un nouveau
classeur de 3 feuilles en y intégrant du code qui lancera l'impression de
la feuille active après un double click.
Quelqu'un peut il m' aider
D'avance merci
cordialement
andré
Bonjour à tous,
Je souhaite à partir d'une macro d'un fichier excel construire un nouveau
classeur de 3 feuilles en y intégrant du code qui lancera l'impression de
la feuille active après un double click.
Quelqu'un peut il m' aider
D'avance merci
cordialement
andré
Bonjour à tous,
Je souhaite à partir d'une macro d'un fichier excel construire un nouveau
classeur de 3 feuilles en y intégrant du code qui lancera l'impression de
la feuille active après un double click.
Quelqu'un peut il m' aider
D'avance merci
cordialement
andré
Bonjour à tous,
Je souhaite à partir d'une macro d'un fichier excel construire un nouveau
classeur de 3 feuilles en y intégrant du code qui lancera l'impression de
la feuille active après un double click.
Quelqu'un peut il m' aider
D'avance merci
cordialement
andré
Bonjour à tous,
Je souhaite à partir d'une macro d'un fichier excel construire un nouveau
classeur de 3 feuilles en y intégrant du code qui lancera l'impression de
la feuille active après un double click.
Quelqu'un peut il m' aider
D'avance merci
cordialement
andré
Bonjour à tous,
Je souhaite à partir d'une macro d'un fichier excel construire un nouveau
classeur de 3 feuilles en y intégrant du code qui lancera l'impression de
la feuille active après un double click.
Quelqu'un peut il m' aider
D'avance merci
cordialement
andré
salut ,
J'ai plein d'archives venant de MPFE à ce propos ...
dont ce qui ce trouve à la fin du msg...
Pour avoir utilisé ces méthodes il y a qq temps, je sais qu'il peut y
avoir un pb de version sur
la bibliothèque Microsoft Visual Basic For Applications Extensibility (
VBIDE)
qui est indispensable pour ce type de manip
et dont il faut éventuellement forcer le chargement avant ...
( excel97 et excel2000 n'ont pas la même version et donc cela nécessite
des tests préalables concernants
les références présentes ...
Je ne me souviens plus de la méthode pour traiter proprement le pb...
Cela dépend de ta situation , ( version, ..., ...)
situation dont on ne sait pas grand chose :o)
Je ne doute pas que des "balèzes" ,
qui pullulent ici,
ne t'aident dès que l'on saura exactement ce qui te convient.
Bon courage et ... patience
HubertB
---------------quelques procédures en vrac----------
--------------- rien que du vieux---------------------
----------------rien n'est de moi !--------------------
'créer un module dans un classeur
'(Stéphane Royer, mpfe)
Sub test()
'crée un module standard nommé "TestModule" dans le classeur actif
CreateNewModule ActiveWorkbook, 1, "TestModule"
End Sub
Sub CreateNewModule _
(ByVal wb As Workbook, _
ByVal ModuleTypeIndex As Integer, _
ByVal NewModuleName As String)
'nécessite que la bibliothèque
'Microsoft Visual Basic For Applications Extensibility 5.x
'soit cochée
' creates a new module of ModuleTypeIndex
'(1=standard module, 2=class module, 3=userform) in wb
' renames the new module to NewModuleName (if possible)
Dim VBC As VBComponent, mti As Integer
Set VBC = Nothing
mti = 0
Select Case ModuleTypeIndex
Case 1: mti = vbext_ct_StdModule ' standard module
Case 2: mti = vbext_ct_ClassModule ' class module
Case 3: mti = vbext_ct_MSForm ' userform
End Select
If mti <> 0 Then
On Error Resume Next
Set VBC = wb.VBProject.VBComponents.Add(mti)
If Not VBC Is Nothing Then
If NewModuleName <> "" Then
VBC.Name = NewModuleName
End If
End If
On Error GoTo 0
Set VBC = Nothing
End If
End Sub
-------------------------------
'créer un module de code
'(un module de code "se travaille" comme un fichier texte)
Sub CreateBasFile()
'Chip Pearson, mpep
Dim FNum As Integer
Dim FName As String
FName = "D:modTestModule.bas"
If Dir(FName) <> "" Then Kill FName
FNum = FreeFile
Open FName For Output Access Write As #FNum
'sans cette ligne, l'importation attribue un nom par défaut
'au module (comme Module1), quel que soit le nom et l'extension
'du fichier source
Print #FNum, "Attribute VB_Name = ""modTestModule"""
Print #FNum, ""
Print #FNum, "Option Explicit"
Print #FNum, ""
Print #FNum, "Sub TestMacro()"
Print #FNum, " MsgBox ""Hello World"""
Print #FNum, "End Sub"
Close FNum
ThisWorkbook.VBProject.VBComponents.Import Filename:=FName
Kill FName
End Sub
--------------------------------------------------
'créer un classeur avec une feuille de calcul
'et ajouter du code dans le module de cette feuille de calcul
Sub AddSheet()
'Patrick Molloy, mpep
Dim wb As Workbook
Dim ws As Worksheet
' add a new book with a single sheet
Set wb = Workbooks.Add(xlWBATWorksheet)
Set ws = wb.ActiveSheet
ws.Name = "MyNewSheet"
'create a code module
' Open "MyModule" For Output As #1
' Print #1, "Private Sub Worksheet_BeforeDoubleClick" _
' & "(ByVal Target As Range, Cancel As Boolean)"
' Print #1, " MsgBox ActiveSheet.Name,,Activeworkbook.name"
' Print #1, "End Sub"
' Close #1
'autre méthode (fs) (évite le fichier temporaire "MyModule")
Code = "Private Sub Worksheet_BeforeDoubleClick" _
& "(ByVal Target As Range, Cancel As Boolean)" & vbLf
Code = Code & " MsgBox ActiveSheet.Name,,Activeworkbook.name" & vbLf
Code = Code & "End Sub"
'load the code into the new wb
' wb.VBProject.VBComponents.Item(2).CodeModule.AddFromFile "MyModule"
wb.VBProject.VBComponents.Item(2).CodeModule.AddFromString Code
Set ws = Nothing
Set wb = Nothing
End Sub
------------------------------------
'copier le code d'un module dans un autre d'un autre classeur
'ajouter le code d'une module dans le module d'une feuille
'd'un nouveau classeur
Sub AddCode()
'fs
Dim S As String, Wbk As Workbook
With ThisWorkbook.VBProject.VBComponents("Module1").CodeModule
S = .Lines(1, .CountOfLines)
End With
Set Wbk = Workbooks.Add
With Wbk.VBProject.VBComponents("Feuil1").CodeModule
.AddFromString S
End With
End Sub 'fs
'recopier le code d'un module dans un autre classeur
'(en ajoutant d'abord un module dans cet autre classeur)
Sub CopieCodeModule()
'fs
Dim S As String, Wbk As Workbook
With ActiveWorkbook.VBProject.VBComponents("Module1").CodeModule
S = .Lines(1, .CountOfLines)
End With
Set Wbk = Workbooks("Classeur2.xls") 'à adapter
Wbk.VBProject.VBComponents.Add(1).Name = "MonModule"
With Wbk.VBProject.VBComponents("MonModule").CodeModule
.AddFromString S
End With
End Sub 'fs
'mettre à jour le code d'un module existant dans un autre classeur
Sub MAJCodeModule()
Dim S As String, Wbk As Workbook
'module à copier
With ActiveWorkbook.VBProject.VBComponents("Module1").CodeModule
S = .Lines(1, .CountOfLines)
End With
Set Wbk = Workbooks("Perso.xls")
'détruire le module à mettre à jour s'il existe
On Error Resume Next
With Wbk.VBProject.VBComponents
.Remove .Item("MonModule")
End With
On Error GoTo 0
'ajouter un nouveau module et copier le code
Wbk.VBProject.VBComponents.Add(1).Name = "MonModule"
With Wbk.VBProject.VBComponents("MonModule").CodeModule
.AddFromString S
End With
End Sub 'fs
----------------------------------
salut ,
J'ai plein d'archives venant de MPFE à ce propos ...
dont ce qui ce trouve à la fin du msg...
Pour avoir utilisé ces méthodes il y a qq temps, je sais qu'il peut y
avoir un pb de version sur
la bibliothèque Microsoft Visual Basic For Applications Extensibility (
VBIDE)
qui est indispensable pour ce type de manip
et dont il faut éventuellement forcer le chargement avant ...
( excel97 et excel2000 n'ont pas la même version et donc cela nécessite
des tests préalables concernants
les références présentes ...
Je ne me souviens plus de la méthode pour traiter proprement le pb...
Cela dépend de ta situation , ( version, ..., ...)
situation dont on ne sait pas grand chose :o)
Je ne doute pas que des "balèzes" ,
qui pullulent ici,
ne t'aident dès que l'on saura exactement ce qui te convient.
Bon courage et ... patience
HubertB
---------------quelques procédures en vrac----------
--------------- rien que du vieux---------------------
----------------rien n'est de moi !--------------------
'créer un module dans un classeur
'(Stéphane Royer, mpfe)
Sub test()
'crée un module standard nommé "TestModule" dans le classeur actif
CreateNewModule ActiveWorkbook, 1, "TestModule"
End Sub
Sub CreateNewModule _
(ByVal wb As Workbook, _
ByVal ModuleTypeIndex As Integer, _
ByVal NewModuleName As String)
'nécessite que la bibliothèque
'Microsoft Visual Basic For Applications Extensibility 5.x
'soit cochée
' creates a new module of ModuleTypeIndex
'(1=standard module, 2=class module, 3=userform) in wb
' renames the new module to NewModuleName (if possible)
Dim VBC As VBComponent, mti As Integer
Set VBC = Nothing
mti = 0
Select Case ModuleTypeIndex
Case 1: mti = vbext_ct_StdModule ' standard module
Case 2: mti = vbext_ct_ClassModule ' class module
Case 3: mti = vbext_ct_MSForm ' userform
End Select
If mti <> 0 Then
On Error Resume Next
Set VBC = wb.VBProject.VBComponents.Add(mti)
If Not VBC Is Nothing Then
If NewModuleName <> "" Then
VBC.Name = NewModuleName
End If
End If
On Error GoTo 0
Set VBC = Nothing
End If
End Sub
-------------------------------
'créer un module de code
'(un module de code "se travaille" comme un fichier texte)
Sub CreateBasFile()
'Chip Pearson, mpep
Dim FNum As Integer
Dim FName As String
FName = "D:modTestModule.bas"
If Dir(FName) <> "" Then Kill FName
FNum = FreeFile
Open FName For Output Access Write As #FNum
'sans cette ligne, l'importation attribue un nom par défaut
'au module (comme Module1), quel que soit le nom et l'extension
'du fichier source
Print #FNum, "Attribute VB_Name = ""modTestModule"""
Print #FNum, ""
Print #FNum, "Option Explicit"
Print #FNum, ""
Print #FNum, "Sub TestMacro()"
Print #FNum, " MsgBox ""Hello World"""
Print #FNum, "End Sub"
Close FNum
ThisWorkbook.VBProject.VBComponents.Import Filename:=FName
Kill FName
End Sub
--------------------------------------------------
'créer un classeur avec une feuille de calcul
'et ajouter du code dans le module de cette feuille de calcul
Sub AddSheet()
'Patrick Molloy, mpep
Dim wb As Workbook
Dim ws As Worksheet
' add a new book with a single sheet
Set wb = Workbooks.Add(xlWBATWorksheet)
Set ws = wb.ActiveSheet
ws.Name = "MyNewSheet"
'create a code module
' Open "MyModule" For Output As #1
' Print #1, "Private Sub Worksheet_BeforeDoubleClick" _
' & "(ByVal Target As Range, Cancel As Boolean)"
' Print #1, " MsgBox ActiveSheet.Name,,Activeworkbook.name"
' Print #1, "End Sub"
' Close #1
'autre méthode (fs) (évite le fichier temporaire "MyModule")
Code = "Private Sub Worksheet_BeforeDoubleClick" _
& "(ByVal Target As Range, Cancel As Boolean)" & vbLf
Code = Code & " MsgBox ActiveSheet.Name,,Activeworkbook.name" & vbLf
Code = Code & "End Sub"
'load the code into the new wb
' wb.VBProject.VBComponents.Item(2).CodeModule.AddFromFile "MyModule"
wb.VBProject.VBComponents.Item(2).CodeModule.AddFromString Code
Set ws = Nothing
Set wb = Nothing
End Sub
------------------------------------
'copier le code d'un module dans un autre d'un autre classeur
'ajouter le code d'une module dans le module d'une feuille
'd'un nouveau classeur
Sub AddCode()
'fs
Dim S As String, Wbk As Workbook
With ThisWorkbook.VBProject.VBComponents("Module1").CodeModule
S = .Lines(1, .CountOfLines)
End With
Set Wbk = Workbooks.Add
With Wbk.VBProject.VBComponents("Feuil1").CodeModule
.AddFromString S
End With
End Sub 'fs
'recopier le code d'un module dans un autre classeur
'(en ajoutant d'abord un module dans cet autre classeur)
Sub CopieCodeModule()
'fs
Dim S As String, Wbk As Workbook
With ActiveWorkbook.VBProject.VBComponents("Module1").CodeModule
S = .Lines(1, .CountOfLines)
End With
Set Wbk = Workbooks("Classeur2.xls") 'à adapter
Wbk.VBProject.VBComponents.Add(1).Name = "MonModule"
With Wbk.VBProject.VBComponents("MonModule").CodeModule
.AddFromString S
End With
End Sub 'fs
'mettre à jour le code d'un module existant dans un autre classeur
Sub MAJCodeModule()
Dim S As String, Wbk As Workbook
'module à copier
With ActiveWorkbook.VBProject.VBComponents("Module1").CodeModule
S = .Lines(1, .CountOfLines)
End With
Set Wbk = Workbooks("Perso.xls")
'détruire le module à mettre à jour s'il existe
On Error Resume Next
With Wbk.VBProject.VBComponents
.Remove .Item("MonModule")
End With
On Error GoTo 0
'ajouter un nouveau module et copier le code
Wbk.VBProject.VBComponents.Add(1).Name = "MonModule"
With Wbk.VBProject.VBComponents("MonModule").CodeModule
.AddFromString S
End With
End Sub 'fs
----------------------------------
salut ,
J'ai plein d'archives venant de MPFE à ce propos ...
dont ce qui ce trouve à la fin du msg...
Pour avoir utilisé ces méthodes il y a qq temps, je sais qu'il peut y
avoir un pb de version sur
la bibliothèque Microsoft Visual Basic For Applications Extensibility (
VBIDE)
qui est indispensable pour ce type de manip
et dont il faut éventuellement forcer le chargement avant ...
( excel97 et excel2000 n'ont pas la même version et donc cela nécessite
des tests préalables concernants
les références présentes ...
Je ne me souviens plus de la méthode pour traiter proprement le pb...
Cela dépend de ta situation , ( version, ..., ...)
situation dont on ne sait pas grand chose :o)
Je ne doute pas que des "balèzes" ,
qui pullulent ici,
ne t'aident dès que l'on saura exactement ce qui te convient.
Bon courage et ... patience
HubertB
---------------quelques procédures en vrac----------
--------------- rien que du vieux---------------------
----------------rien n'est de moi !--------------------
'créer un module dans un classeur
'(Stéphane Royer, mpfe)
Sub test()
'crée un module standard nommé "TestModule" dans le classeur actif
CreateNewModule ActiveWorkbook, 1, "TestModule"
End Sub
Sub CreateNewModule _
(ByVal wb As Workbook, _
ByVal ModuleTypeIndex As Integer, _
ByVal NewModuleName As String)
'nécessite que la bibliothèque
'Microsoft Visual Basic For Applications Extensibility 5.x
'soit cochée
' creates a new module of ModuleTypeIndex
'(1=standard module, 2=class module, 3=userform) in wb
' renames the new module to NewModuleName (if possible)
Dim VBC As VBComponent, mti As Integer
Set VBC = Nothing
mti = 0
Select Case ModuleTypeIndex
Case 1: mti = vbext_ct_StdModule ' standard module
Case 2: mti = vbext_ct_ClassModule ' class module
Case 3: mti = vbext_ct_MSForm ' userform
End Select
If mti <> 0 Then
On Error Resume Next
Set VBC = wb.VBProject.VBComponents.Add(mti)
If Not VBC Is Nothing Then
If NewModuleName <> "" Then
VBC.Name = NewModuleName
End If
End If
On Error GoTo 0
Set VBC = Nothing
End If
End Sub
-------------------------------
'créer un module de code
'(un module de code "se travaille" comme un fichier texte)
Sub CreateBasFile()
'Chip Pearson, mpep
Dim FNum As Integer
Dim FName As String
FName = "D:modTestModule.bas"
If Dir(FName) <> "" Then Kill FName
FNum = FreeFile
Open FName For Output Access Write As #FNum
'sans cette ligne, l'importation attribue un nom par défaut
'au module (comme Module1), quel que soit le nom et l'extension
'du fichier source
Print #FNum, "Attribute VB_Name = ""modTestModule"""
Print #FNum, ""
Print #FNum, "Option Explicit"
Print #FNum, ""
Print #FNum, "Sub TestMacro()"
Print #FNum, " MsgBox ""Hello World"""
Print #FNum, "End Sub"
Close FNum
ThisWorkbook.VBProject.VBComponents.Import Filename:=FName
Kill FName
End Sub
--------------------------------------------------
'créer un classeur avec une feuille de calcul
'et ajouter du code dans le module de cette feuille de calcul
Sub AddSheet()
'Patrick Molloy, mpep
Dim wb As Workbook
Dim ws As Worksheet
' add a new book with a single sheet
Set wb = Workbooks.Add(xlWBATWorksheet)
Set ws = wb.ActiveSheet
ws.Name = "MyNewSheet"
'create a code module
' Open "MyModule" For Output As #1
' Print #1, "Private Sub Worksheet_BeforeDoubleClick" _
' & "(ByVal Target As Range, Cancel As Boolean)"
' Print #1, " MsgBox ActiveSheet.Name,,Activeworkbook.name"
' Print #1, "End Sub"
' Close #1
'autre méthode (fs) (évite le fichier temporaire "MyModule")
Code = "Private Sub Worksheet_BeforeDoubleClick" _
& "(ByVal Target As Range, Cancel As Boolean)" & vbLf
Code = Code & " MsgBox ActiveSheet.Name,,Activeworkbook.name" & vbLf
Code = Code & "End Sub"
'load the code into the new wb
' wb.VBProject.VBComponents.Item(2).CodeModule.AddFromFile "MyModule"
wb.VBProject.VBComponents.Item(2).CodeModule.AddFromString Code
Set ws = Nothing
Set wb = Nothing
End Sub
------------------------------------
'copier le code d'un module dans un autre d'un autre classeur
'ajouter le code d'une module dans le module d'une feuille
'd'un nouveau classeur
Sub AddCode()
'fs
Dim S As String, Wbk As Workbook
With ThisWorkbook.VBProject.VBComponents("Module1").CodeModule
S = .Lines(1, .CountOfLines)
End With
Set Wbk = Workbooks.Add
With Wbk.VBProject.VBComponents("Feuil1").CodeModule
.AddFromString S
End With
End Sub 'fs
'recopier le code d'un module dans un autre classeur
'(en ajoutant d'abord un module dans cet autre classeur)
Sub CopieCodeModule()
'fs
Dim S As String, Wbk As Workbook
With ActiveWorkbook.VBProject.VBComponents("Module1").CodeModule
S = .Lines(1, .CountOfLines)
End With
Set Wbk = Workbooks("Classeur2.xls") 'à adapter
Wbk.VBProject.VBComponents.Add(1).Name = "MonModule"
With Wbk.VBProject.VBComponents("MonModule").CodeModule
.AddFromString S
End With
End Sub 'fs
'mettre à jour le code d'un module existant dans un autre classeur
Sub MAJCodeModule()
Dim S As String, Wbk As Workbook
'module à copier
With ActiveWorkbook.VBProject.VBComponents("Module1").CodeModule
S = .Lines(1, .CountOfLines)
End With
Set Wbk = Workbooks("Perso.xls")
'détruire le module à mettre à jour s'il existe
On Error Resume Next
With Wbk.VBProject.VBComponents
.Remove .Item("MonModule")
End With
On Error GoTo 0
'ajouter un nouveau module et copier le code
Wbk.VBProject.VBComponents.Add(1).Name = "MonModule"
With Wbk.VBProject.VBComponents("MonModule").CodeModule
.AddFromString S
End With
End Sub 'fs
----------------------------------
Bonjour à tous,
Je souhaite à partir d'une macro d'un fichier excel construire un nouveau
classeur de 3 feuilles en y intégrant du code qui lancera l'impression de
la feuille active après un double click.
Quelqu'un peut il m' aider
D'avance merci
cordialement
andré
Bonjour à tous,
Je souhaite à partir d'une macro d'un fichier excel construire un nouveau
classeur de 3 feuilles en y intégrant du code qui lancera l'impression de
la feuille active après un double click.
Quelqu'un peut il m' aider
D'avance merci
cordialement
andré
Bonjour à tous,
Je souhaite à partir d'une macro d'un fichier excel construire un nouveau
classeur de 3 feuilles en y intégrant du code qui lancera l'impression de
la feuille active après un double click.
Quelqu'un peut il m' aider
D'avance merci
cordialement
andré