bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le ThisWorkbook, le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce phénomène...un
grand merci par avance
jps
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le ThisWorkbook, le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce phénomène...un
grand merci par avance
jps
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le ThisWorkbook, le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce phénomène...un
grand merci par avance
jps
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le ThisWorkbook, le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce phénomène...un
grand merci par avance
jps
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le ThisWorkbook, le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce phénomène...un
grand merci par avance
jps
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le ThisWorkbook, le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce phénomène...un
grand merci par avance
jps
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le ThisWorkbook, le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce phénomène...un
grand merci par avance
jps
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le ThisWorkbook, le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce phénomène...un
grand merci par avance
jps
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le ThisWorkbook, le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce phénomène...un
grand merci par avance
jps
Bonjour.
Le module ThisWorkbook est un module de classe qui ne peut être supprimé.
Lorsqu'on importe le fichier ThisWorkbook.cls, il va se ranger dans les
modules de classe et se renomme en ThisWorkbook1 pour ne pas
faire doublon au niveau du nom avec le vrai, le seul, l'unique
ThisWorkbook du classeur qui ne peut pas être supprimé.
Ce module de classe ThisWorkbook1 représente un objet avec des évènements
qui pour être utilisé doit être instancié.
Dans la partie déclaration de ThisWorkbook1 il faut rajouter cette ligne :
Public WithEvents Workbook As Workbook
Et dans un module standard :
Public WbK As New ThisWorkbook1
Sub Auto_Open()
Set WbK.Workbook = ThisWorkbook
End Sub
Alain CROS
"sabatier" a écrit dans le
message de news: ue#
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et
no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans
l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le
ThisWorkbook, le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce
phénomène...un
grand merci par avance
jps
Bonjour.
Le module ThisWorkbook est un module de classe qui ne peut être supprimé.
Lorsqu'on importe le fichier ThisWorkbook.cls, il va se ranger dans les
modules de classe et se renomme en ThisWorkbook1 pour ne pas
faire doublon au niveau du nom avec le vrai, le seul, l'unique
ThisWorkbook du classeur qui ne peut pas être supprimé.
Ce module de classe ThisWorkbook1 représente un objet avec des évènements
qui pour être utilisé doit être instancié.
Dans la partie déclaration de ThisWorkbook1 il faut rajouter cette ligne :
Public WithEvents Workbook As Workbook
Et dans un module standard :
Public WbK As New ThisWorkbook1
Sub Auto_Open()
Set WbK.Workbook = ThisWorkbook
End Sub
Alain CROS
"sabatier" <biscotteUnScudJpsabatdelaile@wanadoo.fr> a écrit dans le
message de news: ue#DDOEfEHA.2896@TK2MSFTNGP11.phx.gbl...
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et
no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans
l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le
ThisWorkbook, le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce
phénomène...un
grand merci par avance
jps
Bonjour.
Le module ThisWorkbook est un module de classe qui ne peut être supprimé.
Lorsqu'on importe le fichier ThisWorkbook.cls, il va se ranger dans les
modules de classe et se renomme en ThisWorkbook1 pour ne pas
faire doublon au niveau du nom avec le vrai, le seul, l'unique
ThisWorkbook du classeur qui ne peut pas être supprimé.
Ce module de classe ThisWorkbook1 représente un objet avec des évènements
qui pour être utilisé doit être instancié.
Dans la partie déclaration de ThisWorkbook1 il faut rajouter cette ligne :
Public WithEvents Workbook As Workbook
Et dans un module standard :
Public WbK As New ThisWorkbook1
Sub Auto_Open()
Set WbK.Workbook = ThisWorkbook
End Sub
Alain CROS
"sabatier" a écrit dans le
message de news: ue#
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et
no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans
l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le
ThisWorkbook, le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce
phénomène...un
grand merci par avance
jps
Bonjour.
Le module ThisWorkbook est un module de classe qui ne peut être supprimé.
Lorsqu'on importe le fichier ThisWorkbook.cls, il va se ranger dans les
modules de classe et se renomme en ThisWorkbook1 pour ne pas
faire doublon au niveau du nom avec le vrai, le seul, l'unique
ThisWorkbook du classeur qui ne peut pas être supprimé.
Ce module de classe ThisWorkbook1 représente un objet avec des évènements
qui pour être utilisé doit être instancié.
Dans la partie déclaration de ThisWorkbook1 il faut rajouter cette ligne :
Public WithEvents Workbook As Workbook
Et dans un module standard :
Public WbK As New ThisWorkbook1
Sub Auto_Open()
Set WbK.Workbook = ThisWorkbook
End Sub
Alain CROS
"sabatier" a écrit dans le
message de news: ue#
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et
no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans
l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le
ThisWorkbook, le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce
phénomène...un
grand merci par avance
jps
Bonjour.
Le module ThisWorkbook est un module de classe qui ne peut être supprimé.
Lorsqu'on importe le fichier ThisWorkbook.cls, il va se ranger dans les
modules de classe et se renomme en ThisWorkbook1 pour ne pas
faire doublon au niveau du nom avec le vrai, le seul, l'unique
ThisWorkbook du classeur qui ne peut pas être supprimé.
Ce module de classe ThisWorkbook1 représente un objet avec des évènements
qui pour être utilisé doit être instancié.
Dans la partie déclaration de ThisWorkbook1 il faut rajouter cette ligne :
Public WithEvents Workbook As Workbook
Et dans un module standard :
Public WbK As New ThisWorkbook1
Sub Auto_Open()
Set WbK.Workbook = ThisWorkbook
End Sub
Alain CROS
"sabatier" <biscotteUnScudJpsabatdelaile@wanadoo.fr> a écrit dans le
message de news: ue#DDOEfEHA.2896@TK2MSFTNGP11.phx.gbl...
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et
no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans
l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le
ThisWorkbook, le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce
phénomène...un
grand merci par avance
jps
Bonjour.
Le module ThisWorkbook est un module de classe qui ne peut être supprimé.
Lorsqu'on importe le fichier ThisWorkbook.cls, il va se ranger dans les
modules de classe et se renomme en ThisWorkbook1 pour ne pas
faire doublon au niveau du nom avec le vrai, le seul, l'unique
ThisWorkbook du classeur qui ne peut pas être supprimé.
Ce module de classe ThisWorkbook1 représente un objet avec des évènements
qui pour être utilisé doit être instancié.
Dans la partie déclaration de ThisWorkbook1 il faut rajouter cette ligne :
Public WithEvents Workbook As Workbook
Et dans un module standard :
Public WbK As New ThisWorkbook1
Sub Auto_Open()
Set WbK.Workbook = ThisWorkbook
End Sub
Alain CROS
"sabatier" a écrit dans le
message de news: ue#
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et
no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans
l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le
ThisWorkbook, le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce
phénomène...un
grand merci par avance
jps
Bonjour JPS,
Ce n'est pas une quetion pour un samedi... ni pour un autre jour de la
semaine ! ;-)
CLS = Extension de fichier signifiant : Code Language Specification
Cette extension de fichier est apparu avec la version 4 de Visual basic
(Le Programme) pour désigner un module de classe.
Ce que tu as observé avec Le "ThisWorkbook" est aussi présent dans le cas
d'un import-export du code des "Feuil". Et la
raison, ce sont des modules de classes contrairement au module standard
(fichier .bas) Concernant les formulaires,
l'extension du fichier export est .Frm (abréviation pour formulaire). Dans
ce cas, c'est un peu différent car il y a l'objet
lui-même(formulaire) qui est exporté et importé par la suite ...avec tout
son contenu ! )
Dans excel, un module de classe sert à définir les propriétés, les
méthodes et les événements d'une classe spécifique
d'objets. Par exemple, si tu désires définir un comportement particulier
pour un groupe de boutons de commande, le nom que tu
donnes au module de classe représente en même temps, un nouvel objet et
une nouvelle classe d'objet. Dans ce module,, tu
insèrera le code particulier à cette nouvelle classe d'objet. Le nom du
module de classe désigne à la fois le nouvel objet et
la nouvelle classe de l'objet. Mais attention, le module de classe ne
crée pas de "nouveaux boutons de commande" mais une
nouvelle classe d'objet ayant ses propres spécifications contenu dans son
module. Le nouvel objet créé sera présent seulement
au moment de l'instantiation de ce dernier avec le mot clé "New" dans le
code.
Dim JPS As New Toto (toto étant le nom du module de classe)
L'exportation et l'importation d'un module de classe (fichier .cls) par
les commandes du menu de la fenêtre VBE, correspond
essentiellement au code de l'objet "Feuil" ou de l'objet "ThisWorkbook"
qui eux, sont créés par l'application Excel. Dans
excel, le module de classe ne crée lui-même l'objet "Feuil" ou
"ThisWorkbook" au sens où on les voit dans la fenêtre du
projet VBE. Il ne peut pas en conséquence, exporter ou importer un "objet
physique" mais seulement le code associé à cet
objet.
Pour conserver le code d'un module de classe, l'ami Frédéric Sigonneau a
créé ceci : Une procédure qui copie le texte du
module de classe dans un fichier texte.
'========================= > Sub test()
WriteModuleToTextFile "ThisWorkbook"
End Sub
'========================= > Sub WriteModuleToTextFile(NomModule$)
Dim FSO As Object
Dim Obj As Object
Dim Txt As Object
Dim Contenu$
Set Obj = ThisWorkbook.VBProject.VBComponents(NomModule).CodeModule
Contenu = Obj.Lines(1, Obj.CountOfLines)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Txt = FSO.OpenTextFile("d:" & NomModule & ".txt", 2, True)
Txt.Write Contenu
Txt.Close
End Sub 'fs
'========================= >
Et si tu veux récupérer le code du fichier créer et l'insérer dans un
module particulier, tu peux utiliser ceci :
'----------------------
With ThisWorkbook
.VBProject.VBComponents("Feuil1").CodeModule.AddFromFile
"c:Feuil1.txt"
End With
'----------------------
Tu remplaces "Feuil1" par le nom du module désiré entre guillemets
"c:excelFeuil1.txt" est le chemin et le nom du fichier créé par la
procédure de Frédéric.
Si tu as procédé manuellement à l'exportation, l'extension de ton fichier
est .Cls, et si tu désires récupérer le code du
fichier .cls, avec la procédure (3 lignes) soumise de récupération, le
module de classe ("l'objet physique") de destination
devra être déjà présent et il devra aussi avoir même nom que le module de
classe d'origine, sinon, il remplacera le module de
classe ("l'objet physique") de destination par le module de classe
d'origine (code seulement) et ce n'est pas habituellement
ce qui est désiré... dans excel. De plus, il se permettra d'ajouter ces
lignes de code en début du module de destination
qu'il faudrait enlever par quelques lignes de code supplémentaire.
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
End
Salutations !
P.S. Bon samedi quand même !!!
"sabatier" a écrit dans le
message de
news:ue%
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le ThisWorkbook,
le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce
phénomène...un
grand merci par avance
jps
Bonjour JPS,
Ce n'est pas une quetion pour un samedi... ni pour un autre jour de la
semaine ! ;-)
CLS = Extension de fichier signifiant : Code Language Specification
Cette extension de fichier est apparu avec la version 4 de Visual basic
(Le Programme) pour désigner un module de classe.
Ce que tu as observé avec Le "ThisWorkbook" est aussi présent dans le cas
d'un import-export du code des "Feuil". Et la
raison, ce sont des modules de classes contrairement au module standard
(fichier .bas) Concernant les formulaires,
l'extension du fichier export est .Frm (abréviation pour formulaire). Dans
ce cas, c'est un peu différent car il y a l'objet
lui-même(formulaire) qui est exporté et importé par la suite ...avec tout
son contenu ! )
Dans excel, un module de classe sert à définir les propriétés, les
méthodes et les événements d'une classe spécifique
d'objets. Par exemple, si tu désires définir un comportement particulier
pour un groupe de boutons de commande, le nom que tu
donnes au module de classe représente en même temps, un nouvel objet et
une nouvelle classe d'objet. Dans ce module,, tu
insèrera le code particulier à cette nouvelle classe d'objet. Le nom du
module de classe désigne à la fois le nouvel objet et
la nouvelle classe de l'objet. Mais attention, le module de classe ne
crée pas de "nouveaux boutons de commande" mais une
nouvelle classe d'objet ayant ses propres spécifications contenu dans son
module. Le nouvel objet créé sera présent seulement
au moment de l'instantiation de ce dernier avec le mot clé "New" dans le
code.
Dim JPS As New Toto (toto étant le nom du module de classe)
L'exportation et l'importation d'un module de classe (fichier .cls) par
les commandes du menu de la fenêtre VBE, correspond
essentiellement au code de l'objet "Feuil" ou de l'objet "ThisWorkbook"
qui eux, sont créés par l'application Excel. Dans
excel, le module de classe ne crée lui-même l'objet "Feuil" ou
"ThisWorkbook" au sens où on les voit dans la fenêtre du
projet VBE. Il ne peut pas en conséquence, exporter ou importer un "objet
physique" mais seulement le code associé à cet
objet.
Pour conserver le code d'un module de classe, l'ami Frédéric Sigonneau a
créé ceci : Une procédure qui copie le texte du
module de classe dans un fichier texte.
'========================= > Sub test()
WriteModuleToTextFile "ThisWorkbook"
End Sub
'========================= > Sub WriteModuleToTextFile(NomModule$)
Dim FSO As Object
Dim Obj As Object
Dim Txt As Object
Dim Contenu$
Set Obj = ThisWorkbook.VBProject.VBComponents(NomModule).CodeModule
Contenu = Obj.Lines(1, Obj.CountOfLines)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Txt = FSO.OpenTextFile("d:" & NomModule & ".txt", 2, True)
Txt.Write Contenu
Txt.Close
End Sub 'fs
'========================= >
Et si tu veux récupérer le code du fichier créer et l'insérer dans un
module particulier, tu peux utiliser ceci :
'----------------------
With ThisWorkbook
.VBProject.VBComponents("Feuil1").CodeModule.AddFromFile
"c:Feuil1.txt"
End With
'----------------------
Tu remplaces "Feuil1" par le nom du module désiré entre guillemets
"c:excelFeuil1.txt" est le chemin et le nom du fichier créé par la
procédure de Frédéric.
Si tu as procédé manuellement à l'exportation, l'extension de ton fichier
est .Cls, et si tu désires récupérer le code du
fichier .cls, avec la procédure (3 lignes) soumise de récupération, le
module de classe ("l'objet physique") de destination
devra être déjà présent et il devra aussi avoir même nom que le module de
classe d'origine, sinon, il remplacera le module de
classe ("l'objet physique") de destination par le module de classe
d'origine (code seulement) et ce n'est pas habituellement
ce qui est désiré... dans excel. De plus, il se permettra d'ajouter ces
lignes de code en début du module de destination
qu'il faudrait enlever par quelques lignes de code supplémentaire.
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
End
Salutations !
P.S. Bon samedi quand même !!!
"sabatier" <biscotteUnScudJpsabatdelaile@wanadoo.fr> a écrit dans le
message de
news:ue%23DDOEfEHA.2896@TK2MSFTNGP11.phx.gbl...
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le ThisWorkbook,
le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce
phénomène...un
grand merci par avance
jps
Bonjour JPS,
Ce n'est pas une quetion pour un samedi... ni pour un autre jour de la
semaine ! ;-)
CLS = Extension de fichier signifiant : Code Language Specification
Cette extension de fichier est apparu avec la version 4 de Visual basic
(Le Programme) pour désigner un module de classe.
Ce que tu as observé avec Le "ThisWorkbook" est aussi présent dans le cas
d'un import-export du code des "Feuil". Et la
raison, ce sont des modules de classes contrairement au module standard
(fichier .bas) Concernant les formulaires,
l'extension du fichier export est .Frm (abréviation pour formulaire). Dans
ce cas, c'est un peu différent car il y a l'objet
lui-même(formulaire) qui est exporté et importé par la suite ...avec tout
son contenu ! )
Dans excel, un module de classe sert à définir les propriétés, les
méthodes et les événements d'une classe spécifique
d'objets. Par exemple, si tu désires définir un comportement particulier
pour un groupe de boutons de commande, le nom que tu
donnes au module de classe représente en même temps, un nouvel objet et
une nouvelle classe d'objet. Dans ce module,, tu
insèrera le code particulier à cette nouvelle classe d'objet. Le nom du
module de classe désigne à la fois le nouvel objet et
la nouvelle classe de l'objet. Mais attention, le module de classe ne
crée pas de "nouveaux boutons de commande" mais une
nouvelle classe d'objet ayant ses propres spécifications contenu dans son
module. Le nouvel objet créé sera présent seulement
au moment de l'instantiation de ce dernier avec le mot clé "New" dans le
code.
Dim JPS As New Toto (toto étant le nom du module de classe)
L'exportation et l'importation d'un module de classe (fichier .cls) par
les commandes du menu de la fenêtre VBE, correspond
essentiellement au code de l'objet "Feuil" ou de l'objet "ThisWorkbook"
qui eux, sont créés par l'application Excel. Dans
excel, le module de classe ne crée lui-même l'objet "Feuil" ou
"ThisWorkbook" au sens où on les voit dans la fenêtre du
projet VBE. Il ne peut pas en conséquence, exporter ou importer un "objet
physique" mais seulement le code associé à cet
objet.
Pour conserver le code d'un module de classe, l'ami Frédéric Sigonneau a
créé ceci : Une procédure qui copie le texte du
module de classe dans un fichier texte.
'========================= > Sub test()
WriteModuleToTextFile "ThisWorkbook"
End Sub
'========================= > Sub WriteModuleToTextFile(NomModule$)
Dim FSO As Object
Dim Obj As Object
Dim Txt As Object
Dim Contenu$
Set Obj = ThisWorkbook.VBProject.VBComponents(NomModule).CodeModule
Contenu = Obj.Lines(1, Obj.CountOfLines)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Txt = FSO.OpenTextFile("d:" & NomModule & ".txt", 2, True)
Txt.Write Contenu
Txt.Close
End Sub 'fs
'========================= >
Et si tu veux récupérer le code du fichier créer et l'insérer dans un
module particulier, tu peux utiliser ceci :
'----------------------
With ThisWorkbook
.VBProject.VBComponents("Feuil1").CodeModule.AddFromFile
"c:Feuil1.txt"
End With
'----------------------
Tu remplaces "Feuil1" par le nom du module désiré entre guillemets
"c:excelFeuil1.txt" est le chemin et le nom du fichier créé par la
procédure de Frédéric.
Si tu as procédé manuellement à l'exportation, l'extension de ton fichier
est .Cls, et si tu désires récupérer le code du
fichier .cls, avec la procédure (3 lignes) soumise de récupération, le
module de classe ("l'objet physique") de destination
devra être déjà présent et il devra aussi avoir même nom que le module de
classe d'origine, sinon, il remplacera le module de
classe ("l'objet physique") de destination par le module de classe
d'origine (code seulement) et ce n'est pas habituellement
ce qui est désiré... dans excel. De plus, il se permettra d'ajouter ces
lignes de code en début du module de destination
qu'il faudrait enlever par quelques lignes de code supplémentaire.
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
End
Salutations !
P.S. Bon samedi quand même !!!
"sabatier" a écrit dans le
message de
news:ue%
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le ThisWorkbook,
le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce
phénomène...un
grand merci par avance
jps
waouh....et j'ai lu jusqu'au bout puisque c'est quand même moi qui avais
posé la question : je n'aurais jamais du...où avais-je encore la tête à ce
moment-là?
enfin, merci, denis, pour ces autres esseuplications...ça sent la .cls et
le
titre de MVP, non?... j'ai failli suggérer à misange qu'elle mette ton
texte
sur excelabo, mais j'ai peur qu'elle ne fasse pas recette...
bon samedi à toi aussi, denis
jps
"michdenis" a écrit dans le message de
news:Bonjour JPS,
Ce n'est pas une quetion pour un samedi... ni pour un autre jour de la
semaine ! ;-)
CLS = Extension de fichier signifiant : Code Language Specification
Cette extension de fichier est apparu avec la version 4 de Visual basic
(Le Programme) pour désigner un module de classe.
Ce que tu as observé avec Le "ThisWorkbook" est aussi présent dans le
cas
d'un import-export du code des "Feuil". Et laraison, ce sont des modules de classes contrairement au module standard
(fichier .bas) Concernant les formulaires,l'extension du fichier export est .Frm (abréviation pour formulaire).
Dans
ce cas, c'est un peu différent car il y a l'objetlui-même(formulaire) qui est exporté et importé par la suite ...avec
tout
son contenu ! )
Dans excel, un module de classe sert à définir les propriétés, les
méthodes et les événements d'une classe spécifiqued'objets. Par exemple, si tu désires définir un comportement particulier
pour un groupe de boutons de commande, le nom que tudonnes au module de classe représente en même temps, un nouvel objet et
une nouvelle classe d'objet. Dans ce module,, tuinsèrera le code particulier à cette nouvelle classe d'objet. Le nom du
module de classe désigne à la fois le nouvel objet etla nouvelle classe de l'objet. Mais attention, le module de classe ne
crée pas de "nouveaux boutons de commande" mais unenouvelle classe d'objet ayant ses propres spécifications contenu dans
son
module. Le nouvel objet créé sera présent seulementau moment de l'instantiation de ce dernier avec le mot clé "New" dans le
code.Dim JPS As New Toto (toto étant le nom du module de classe)
L'exportation et l'importation d'un module de classe (fichier .cls) par
les commandes du menu de la fenêtre VBE, correspondessentiellement au code de l'objet "Feuil" ou de l'objet "ThisWorkbook"
qui eux, sont créés par l'application Excel. Dansexcel, le module de classe ne crée lui-même l'objet "Feuil" ou
"ThisWorkbook" au sens où on les voit dans la fenêtre duprojet VBE. Il ne peut pas en conséquence, exporter ou importer un
"objet
physique" mais seulement le code associé à cetobjet.
Pour conserver le code d'un module de classe, l'ami Frédéric Sigonneau a
créé ceci : Une procédure qui copie le texte dumodule de classe dans un fichier texte.
'========================= > > Sub test()
WriteModuleToTextFile "ThisWorkbook"
End Sub
'========================= > > Sub WriteModuleToTextFile(NomModule$)
Dim FSO As Object
Dim Obj As Object
Dim Txt As Object
Dim Contenu$
Set Obj = ThisWorkbook.VBProject.VBComponents(NomModule).CodeModule
Contenu = Obj.Lines(1, Obj.CountOfLines)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Txt = FSO.OpenTextFile("d:" & NomModule & ".txt", 2, True)
Txt.Write Contenu
Txt.Close
End Sub 'fs
'========================= > >
Et si tu veux récupérer le code du fichier créer et l'insérer dans un
module particulier, tu peux utiliser ceci :
'----------------------
With ThisWorkbook
.VBProject.VBComponents("Feuil1").CodeModule.AddFromFile
"c:Feuil1.txt"End With
'----------------------
Tu remplaces "Feuil1" par le nom du module désiré entre guillemets
"c:excelFeuil1.txt" est le chemin et le nom du fichier créé par la
procédure de Frédéric.
Si tu as procédé manuellement à l'exportation, l'extension de ton
fichier
est .Cls, et si tu désires récupérer le code dufichier .cls, avec la procédure (3 lignes) soumise de récupération, le
module de classe ("l'objet physique") de destinationdevra être déjà présent et il devra aussi avoir même nom que le module
de
classe d'origine, sinon, il remplacera le module declasse ("l'objet physique") de destination par le module de classe
d'origine (code seulement) et ce n'est pas habituellementce qui est désiré... dans excel. De plus, il se permettra d'ajouter ces
lignes de code en début du module de destinationqu'il faudrait enlever par quelques lignes de code supplémentaire.
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
End
Salutations !
P.S. Bon samedi quand même !!!
"sabatier" a écrit dans le
message denews:ue%
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et
no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans
l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le
ThisWorkbook,
leseul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce
phénomène...ungrand merci par avance
jps
waouh....et j'ai lu jusqu'au bout puisque c'est quand même moi qui avais
posé la question : je n'aurais jamais du...où avais-je encore la tête à ce
moment-là?
enfin, merci, denis, pour ces autres esseuplications...ça sent la .cls et
le
titre de MVP, non?... j'ai failli suggérer à misange qu'elle mette ton
texte
sur excelabo, mais j'ai peur qu'elle ne fasse pas recette...
bon samedi à toi aussi, denis
jps
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:ObajTDJfEHA.236@tk2msftngp13.phx.gbl...
Bonjour JPS,
Ce n'est pas une quetion pour un samedi... ni pour un autre jour de la
semaine ! ;-)
CLS = Extension de fichier signifiant : Code Language Specification
Cette extension de fichier est apparu avec la version 4 de Visual basic
(Le Programme) pour désigner un module de classe.
Ce que tu as observé avec Le "ThisWorkbook" est aussi présent dans le
cas
d'un import-export du code des "Feuil". Et la
raison, ce sont des modules de classes contrairement au module standard
(fichier .bas) Concernant les formulaires,
l'extension du fichier export est .Frm (abréviation pour formulaire).
Dans
ce cas, c'est un peu différent car il y a l'objet
lui-même(formulaire) qui est exporté et importé par la suite ...avec
tout
son contenu ! )
Dans excel, un module de classe sert à définir les propriétés, les
méthodes et les événements d'une classe spécifique
d'objets. Par exemple, si tu désires définir un comportement particulier
pour un groupe de boutons de commande, le nom que tu
donnes au module de classe représente en même temps, un nouvel objet et
une nouvelle classe d'objet. Dans ce module,, tu
insèrera le code particulier à cette nouvelle classe d'objet. Le nom du
module de classe désigne à la fois le nouvel objet et
la nouvelle classe de l'objet. Mais attention, le module de classe ne
crée pas de "nouveaux boutons de commande" mais une
nouvelle classe d'objet ayant ses propres spécifications contenu dans
son
module. Le nouvel objet créé sera présent seulement
au moment de l'instantiation de ce dernier avec le mot clé "New" dans le
code.
Dim JPS As New Toto (toto étant le nom du module de classe)
L'exportation et l'importation d'un module de classe (fichier .cls) par
les commandes du menu de la fenêtre VBE, correspond
essentiellement au code de l'objet "Feuil" ou de l'objet "ThisWorkbook"
qui eux, sont créés par l'application Excel. Dans
excel, le module de classe ne crée lui-même l'objet "Feuil" ou
"ThisWorkbook" au sens où on les voit dans la fenêtre du
projet VBE. Il ne peut pas en conséquence, exporter ou importer un
"objet
physique" mais seulement le code associé à cet
objet.
Pour conserver le code d'un module de classe, l'ami Frédéric Sigonneau a
créé ceci : Une procédure qui copie le texte du
module de classe dans un fichier texte.
'========================= > > Sub test()
WriteModuleToTextFile "ThisWorkbook"
End Sub
'========================= > > Sub WriteModuleToTextFile(NomModule$)
Dim FSO As Object
Dim Obj As Object
Dim Txt As Object
Dim Contenu$
Set Obj = ThisWorkbook.VBProject.VBComponents(NomModule).CodeModule
Contenu = Obj.Lines(1, Obj.CountOfLines)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Txt = FSO.OpenTextFile("d:" & NomModule & ".txt", 2, True)
Txt.Write Contenu
Txt.Close
End Sub 'fs
'========================= > >
Et si tu veux récupérer le code du fichier créer et l'insérer dans un
module particulier, tu peux utiliser ceci :
'----------------------
With ThisWorkbook
.VBProject.VBComponents("Feuil1").CodeModule.AddFromFile
"c:Feuil1.txt"
End With
'----------------------
Tu remplaces "Feuil1" par le nom du module désiré entre guillemets
"c:excelFeuil1.txt" est le chemin et le nom du fichier créé par la
procédure de Frédéric.
Si tu as procédé manuellement à l'exportation, l'extension de ton
fichier
est .Cls, et si tu désires récupérer le code du
fichier .cls, avec la procédure (3 lignes) soumise de récupération, le
module de classe ("l'objet physique") de destination
devra être déjà présent et il devra aussi avoir même nom que le module
de
classe d'origine, sinon, il remplacera le module de
classe ("l'objet physique") de destination par le module de classe
d'origine (code seulement) et ce n'est pas habituellement
ce qui est désiré... dans excel. De plus, il se permettra d'ajouter ces
lignes de code en début du module de destination
qu'il faudrait enlever par quelques lignes de code supplémentaire.
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
End
Salutations !
P.S. Bon samedi quand même !!!
"sabatier" <biscotteUnScudJpsabatdelaile@wanadoo.fr> a écrit dans le
message de
news:ue%23DDOEfEHA.2896@TK2MSFTNGP11.phx.gbl...
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et
no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans
l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le
ThisWorkbook,
le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce
phénomène...un
grand merci par avance
jps
waouh....et j'ai lu jusqu'au bout puisque c'est quand même moi qui avais
posé la question : je n'aurais jamais du...où avais-je encore la tête à ce
moment-là?
enfin, merci, denis, pour ces autres esseuplications...ça sent la .cls et
le
titre de MVP, non?... j'ai failli suggérer à misange qu'elle mette ton
texte
sur excelabo, mais j'ai peur qu'elle ne fasse pas recette...
bon samedi à toi aussi, denis
jps
"michdenis" a écrit dans le message de
news:Bonjour JPS,
Ce n'est pas une quetion pour un samedi... ni pour un autre jour de la
semaine ! ;-)
CLS = Extension de fichier signifiant : Code Language Specification
Cette extension de fichier est apparu avec la version 4 de Visual basic
(Le Programme) pour désigner un module de classe.
Ce que tu as observé avec Le "ThisWorkbook" est aussi présent dans le
cas
d'un import-export du code des "Feuil". Et laraison, ce sont des modules de classes contrairement au module standard
(fichier .bas) Concernant les formulaires,l'extension du fichier export est .Frm (abréviation pour formulaire).
Dans
ce cas, c'est un peu différent car il y a l'objetlui-même(formulaire) qui est exporté et importé par la suite ...avec
tout
son contenu ! )
Dans excel, un module de classe sert à définir les propriétés, les
méthodes et les événements d'une classe spécifiqued'objets. Par exemple, si tu désires définir un comportement particulier
pour un groupe de boutons de commande, le nom que tudonnes au module de classe représente en même temps, un nouvel objet et
une nouvelle classe d'objet. Dans ce module,, tuinsèrera le code particulier à cette nouvelle classe d'objet. Le nom du
module de classe désigne à la fois le nouvel objet etla nouvelle classe de l'objet. Mais attention, le module de classe ne
crée pas de "nouveaux boutons de commande" mais unenouvelle classe d'objet ayant ses propres spécifications contenu dans
son
module. Le nouvel objet créé sera présent seulementau moment de l'instantiation de ce dernier avec le mot clé "New" dans le
code.Dim JPS As New Toto (toto étant le nom du module de classe)
L'exportation et l'importation d'un module de classe (fichier .cls) par
les commandes du menu de la fenêtre VBE, correspondessentiellement au code de l'objet "Feuil" ou de l'objet "ThisWorkbook"
qui eux, sont créés par l'application Excel. Dansexcel, le module de classe ne crée lui-même l'objet "Feuil" ou
"ThisWorkbook" au sens où on les voit dans la fenêtre duprojet VBE. Il ne peut pas en conséquence, exporter ou importer un
"objet
physique" mais seulement le code associé à cetobjet.
Pour conserver le code d'un module de classe, l'ami Frédéric Sigonneau a
créé ceci : Une procédure qui copie le texte dumodule de classe dans un fichier texte.
'========================= > > Sub test()
WriteModuleToTextFile "ThisWorkbook"
End Sub
'========================= > > Sub WriteModuleToTextFile(NomModule$)
Dim FSO As Object
Dim Obj As Object
Dim Txt As Object
Dim Contenu$
Set Obj = ThisWorkbook.VBProject.VBComponents(NomModule).CodeModule
Contenu = Obj.Lines(1, Obj.CountOfLines)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Txt = FSO.OpenTextFile("d:" & NomModule & ".txt", 2, True)
Txt.Write Contenu
Txt.Close
End Sub 'fs
'========================= > >
Et si tu veux récupérer le code du fichier créer et l'insérer dans un
module particulier, tu peux utiliser ceci :
'----------------------
With ThisWorkbook
.VBProject.VBComponents("Feuil1").CodeModule.AddFromFile
"c:Feuil1.txt"End With
'----------------------
Tu remplaces "Feuil1" par le nom du module désiré entre guillemets
"c:excelFeuil1.txt" est le chemin et le nom du fichier créé par la
procédure de Frédéric.
Si tu as procédé manuellement à l'exportation, l'extension de ton
fichier
est .Cls, et si tu désires récupérer le code dufichier .cls, avec la procédure (3 lignes) soumise de récupération, le
module de classe ("l'objet physique") de destinationdevra être déjà présent et il devra aussi avoir même nom que le module
de
classe d'origine, sinon, il remplacera le module declasse ("l'objet physique") de destination par le module de classe
d'origine (code seulement) et ce n'est pas habituellementce qui est désiré... dans excel. De plus, il se permettra d'ajouter ces
lignes de code en début du module de destinationqu'il faudrait enlever par quelques lignes de code supplémentaire.
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
End
Salutations !
P.S. Bon samedi quand même !!!
"sabatier" a écrit dans le
message denews:ue%
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et
no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans
l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le
ThisWorkbook,
leseul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce
phénomène...ungrand merci par avance
jps
waouh....et j'ai lu jusqu'au bout puisque c'est quand même moi qui avais
posé la question : je n'aurais jamais du...où avais-je encore la tête à ce
moment-là?
enfin, merci, denis, pour ces autres esseuplications...ça sent la .cls et
le
titre de MVP, non?... j'ai failli suggérer à misange qu'elle mette ton
texte
sur excelabo, mais j'ai peur qu'elle ne fasse pas recette...
bon samedi à toi aussi, denis
jps
"michdenis" a écrit dans le message de
news:Bonjour JPS,
Ce n'est pas une quetion pour un samedi... ni pour un autre jour de la
semaine ! ;-)
CLS = Extension de fichier signifiant : Code Language Specification
Cette extension de fichier est apparu avec la version 4 de Visual basic
(Le Programme) pour désigner un module de classe.
Ce que tu as observé avec Le "ThisWorkbook" est aussi présent dans le
cas
d'un import-export du code des "Feuil". Et laraison, ce sont des modules de classes contrairement au module standard
(fichier .bas) Concernant les formulaires,l'extension du fichier export est .Frm (abréviation pour formulaire).
Dans
ce cas, c'est un peu différent car il y a l'objetlui-même(formulaire) qui est exporté et importé par la suite ...avec
tout
son contenu ! )
Dans excel, un module de classe sert à définir les propriétés, les
méthodes et les événements d'une classe spécifiqued'objets. Par exemple, si tu désires définir un comportement particulier
pour un groupe de boutons de commande, le nom que tudonnes au module de classe représente en même temps, un nouvel objet et
une nouvelle classe d'objet. Dans ce module,, tuinsèrera le code particulier à cette nouvelle classe d'objet. Le nom du
module de classe désigne à la fois le nouvel objet etla nouvelle classe de l'objet. Mais attention, le module de classe ne
crée pas de "nouveaux boutons de commande" mais unenouvelle classe d'objet ayant ses propres spécifications contenu dans
son
module. Le nouvel objet créé sera présent seulementau moment de l'instantiation de ce dernier avec le mot clé "New" dans le
code.Dim JPS As New Toto (toto étant le nom du module de classe)
L'exportation et l'importation d'un module de classe (fichier .cls) par
les commandes du menu de la fenêtre VBE, correspondessentiellement au code de l'objet "Feuil" ou de l'objet "ThisWorkbook"
qui eux, sont créés par l'application Excel. Dansexcel, le module de classe ne crée lui-même l'objet "Feuil" ou
"ThisWorkbook" au sens où on les voit dans la fenêtre duprojet VBE. Il ne peut pas en conséquence, exporter ou importer un
"objet
physique" mais seulement le code associé à cetobjet.
Pour conserver le code d'un module de classe, l'ami Frédéric Sigonneau a
créé ceci : Une procédure qui copie le texte dumodule de classe dans un fichier texte.
'========================= > > Sub test()
WriteModuleToTextFile "ThisWorkbook"
End Sub
'========================= > > Sub WriteModuleToTextFile(NomModule$)
Dim FSO As Object
Dim Obj As Object
Dim Txt As Object
Dim Contenu$
Set Obj = ThisWorkbook.VBProject.VBComponents(NomModule).CodeModule
Contenu = Obj.Lines(1, Obj.CountOfLines)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Txt = FSO.OpenTextFile("d:" & NomModule & ".txt", 2, True)
Txt.Write Contenu
Txt.Close
End Sub 'fs
'========================= > >
Et si tu veux récupérer le code du fichier créer et l'insérer dans un
module particulier, tu peux utiliser ceci :
'----------------------
With ThisWorkbook
.VBProject.VBComponents("Feuil1").CodeModule.AddFromFile
"c:Feuil1.txt"End With
'----------------------
Tu remplaces "Feuil1" par le nom du module désiré entre guillemets
"c:excelFeuil1.txt" est le chemin et le nom du fichier créé par la
procédure de Frédéric.
Si tu as procédé manuellement à l'exportation, l'extension de ton
fichier
est .Cls, et si tu désires récupérer le code dufichier .cls, avec la procédure (3 lignes) soumise de récupération, le
module de classe ("l'objet physique") de destinationdevra être déjà présent et il devra aussi avoir même nom que le module
de
classe d'origine, sinon, il remplacera le module declasse ("l'objet physique") de destination par le module de classe
d'origine (code seulement) et ce n'est pas habituellementce qui est désiré... dans excel. De plus, il se permettra d'ajouter ces
lignes de code en début du module de destinationqu'il faudrait enlever par quelques lignes de code supplémentaire.
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
End
Salutations !
P.S. Bon samedi quand même !!!
"sabatier" a écrit dans le
message denews:ue%
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et
no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans
l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le
ThisWorkbook,
leseul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce
phénomène...ungrand merci par avance
jps
waouh....et j'ai lu jusqu'au bout puisque c'est quand même moi qui avais
posé la question : je n'aurais jamais du...où avais-je encore la tête à ce
moment-là?
enfin, merci, denis, pour ces autres esseuplications...ça sent la .cls et
le
titre de MVP, non?... j'ai failli suggérer à misange qu'elle mette ton
texte
sur excelabo, mais j'ai peur qu'elle ne fasse pas recette...
bon samedi à toi aussi, denis
jps
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:ObajTDJfEHA.236@tk2msftngp13.phx.gbl...
Bonjour JPS,
Ce n'est pas une quetion pour un samedi... ni pour un autre jour de la
semaine ! ;-)
CLS = Extension de fichier signifiant : Code Language Specification
Cette extension de fichier est apparu avec la version 4 de Visual basic
(Le Programme) pour désigner un module de classe.
Ce que tu as observé avec Le "ThisWorkbook" est aussi présent dans le
cas
d'un import-export du code des "Feuil". Et la
raison, ce sont des modules de classes contrairement au module standard
(fichier .bas) Concernant les formulaires,
l'extension du fichier export est .Frm (abréviation pour formulaire).
Dans
ce cas, c'est un peu différent car il y a l'objet
lui-même(formulaire) qui est exporté et importé par la suite ...avec
tout
son contenu ! )
Dans excel, un module de classe sert à définir les propriétés, les
méthodes et les événements d'une classe spécifique
d'objets. Par exemple, si tu désires définir un comportement particulier
pour un groupe de boutons de commande, le nom que tu
donnes au module de classe représente en même temps, un nouvel objet et
une nouvelle classe d'objet. Dans ce module,, tu
insèrera le code particulier à cette nouvelle classe d'objet. Le nom du
module de classe désigne à la fois le nouvel objet et
la nouvelle classe de l'objet. Mais attention, le module de classe ne
crée pas de "nouveaux boutons de commande" mais une
nouvelle classe d'objet ayant ses propres spécifications contenu dans
son
module. Le nouvel objet créé sera présent seulement
au moment de l'instantiation de ce dernier avec le mot clé "New" dans le
code.
Dim JPS As New Toto (toto étant le nom du module de classe)
L'exportation et l'importation d'un module de classe (fichier .cls) par
les commandes du menu de la fenêtre VBE, correspond
essentiellement au code de l'objet "Feuil" ou de l'objet "ThisWorkbook"
qui eux, sont créés par l'application Excel. Dans
excel, le module de classe ne crée lui-même l'objet "Feuil" ou
"ThisWorkbook" au sens où on les voit dans la fenêtre du
projet VBE. Il ne peut pas en conséquence, exporter ou importer un
"objet
physique" mais seulement le code associé à cet
objet.
Pour conserver le code d'un module de classe, l'ami Frédéric Sigonneau a
créé ceci : Une procédure qui copie le texte du
module de classe dans un fichier texte.
'========================= > > Sub test()
WriteModuleToTextFile "ThisWorkbook"
End Sub
'========================= > > Sub WriteModuleToTextFile(NomModule$)
Dim FSO As Object
Dim Obj As Object
Dim Txt As Object
Dim Contenu$
Set Obj = ThisWorkbook.VBProject.VBComponents(NomModule).CodeModule
Contenu = Obj.Lines(1, Obj.CountOfLines)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Txt = FSO.OpenTextFile("d:" & NomModule & ".txt", 2, True)
Txt.Write Contenu
Txt.Close
End Sub 'fs
'========================= > >
Et si tu veux récupérer le code du fichier créer et l'insérer dans un
module particulier, tu peux utiliser ceci :
'----------------------
With ThisWorkbook
.VBProject.VBComponents("Feuil1").CodeModule.AddFromFile
"c:Feuil1.txt"
End With
'----------------------
Tu remplaces "Feuil1" par le nom du module désiré entre guillemets
"c:excelFeuil1.txt" est le chemin et le nom du fichier créé par la
procédure de Frédéric.
Si tu as procédé manuellement à l'exportation, l'extension de ton
fichier
est .Cls, et si tu désires récupérer le code du
fichier .cls, avec la procédure (3 lignes) soumise de récupération, le
module de classe ("l'objet physique") de destination
devra être déjà présent et il devra aussi avoir même nom que le module
de
classe d'origine, sinon, il remplacera le module de
classe ("l'objet physique") de destination par le module de classe
d'origine (code seulement) et ce n'est pas habituellement
ce qui est désiré... dans excel. De plus, il se permettra d'ajouter ces
lignes de code en début du module de destination
qu'il faudrait enlever par quelques lignes de code supplémentaire.
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
End
Salutations !
P.S. Bon samedi quand même !!!
"sabatier" <biscotteUnScudJpsabatdelaile@wanadoo.fr> a écrit dans le
message de
news:ue%23DDOEfEHA.2896@TK2MSFTNGP11.phx.gbl...
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et
no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans
l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le
ThisWorkbook,
le
seul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce
phénomène...un
grand merci par avance
jps
waouh....et j'ai lu jusqu'au bout puisque c'est quand même moi qui avais
posé la question : je n'aurais jamais du...où avais-je encore la tête à ce
moment-là?
enfin, merci, denis, pour ces autres esseuplications...ça sent la .cls et
le
titre de MVP, non?... j'ai failli suggérer à misange qu'elle mette ton
texte
sur excelabo, mais j'ai peur qu'elle ne fasse pas recette...
bon samedi à toi aussi, denis
jps
"michdenis" a écrit dans le message de
news:Bonjour JPS,
Ce n'est pas une quetion pour un samedi... ni pour un autre jour de la
semaine ! ;-)
CLS = Extension de fichier signifiant : Code Language Specification
Cette extension de fichier est apparu avec la version 4 de Visual basic
(Le Programme) pour désigner un module de classe.
Ce que tu as observé avec Le "ThisWorkbook" est aussi présent dans le
cas
d'un import-export du code des "Feuil". Et laraison, ce sont des modules de classes contrairement au module standard
(fichier .bas) Concernant les formulaires,l'extension du fichier export est .Frm (abréviation pour formulaire).
Dans
ce cas, c'est un peu différent car il y a l'objetlui-même(formulaire) qui est exporté et importé par la suite ...avec
tout
son contenu ! )
Dans excel, un module de classe sert à définir les propriétés, les
méthodes et les événements d'une classe spécifiqued'objets. Par exemple, si tu désires définir un comportement particulier
pour un groupe de boutons de commande, le nom que tudonnes au module de classe représente en même temps, un nouvel objet et
une nouvelle classe d'objet. Dans ce module,, tuinsèrera le code particulier à cette nouvelle classe d'objet. Le nom du
module de classe désigne à la fois le nouvel objet etla nouvelle classe de l'objet. Mais attention, le module de classe ne
crée pas de "nouveaux boutons de commande" mais unenouvelle classe d'objet ayant ses propres spécifications contenu dans
son
module. Le nouvel objet créé sera présent seulementau moment de l'instantiation de ce dernier avec le mot clé "New" dans le
code.Dim JPS As New Toto (toto étant le nom du module de classe)
L'exportation et l'importation d'un module de classe (fichier .cls) par
les commandes du menu de la fenêtre VBE, correspondessentiellement au code de l'objet "Feuil" ou de l'objet "ThisWorkbook"
qui eux, sont créés par l'application Excel. Dansexcel, le module de classe ne crée lui-même l'objet "Feuil" ou
"ThisWorkbook" au sens où on les voit dans la fenêtre duprojet VBE. Il ne peut pas en conséquence, exporter ou importer un
"objet
physique" mais seulement le code associé à cetobjet.
Pour conserver le code d'un module de classe, l'ami Frédéric Sigonneau a
créé ceci : Une procédure qui copie le texte dumodule de classe dans un fichier texte.
'========================= > > Sub test()
WriteModuleToTextFile "ThisWorkbook"
End Sub
'========================= > > Sub WriteModuleToTextFile(NomModule$)
Dim FSO As Object
Dim Obj As Object
Dim Txt As Object
Dim Contenu$
Set Obj = ThisWorkbook.VBProject.VBComponents(NomModule).CodeModule
Contenu = Obj.Lines(1, Obj.CountOfLines)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Txt = FSO.OpenTextFile("d:" & NomModule & ".txt", 2, True)
Txt.Write Contenu
Txt.Close
End Sub 'fs
'========================= > >
Et si tu veux récupérer le code du fichier créer et l'insérer dans un
module particulier, tu peux utiliser ceci :
'----------------------
With ThisWorkbook
.VBProject.VBComponents("Feuil1").CodeModule.AddFromFile
"c:Feuil1.txt"End With
'----------------------
Tu remplaces "Feuil1" par le nom du module désiré entre guillemets
"c:excelFeuil1.txt" est le chemin et le nom du fichier créé par la
procédure de Frédéric.
Si tu as procédé manuellement à l'exportation, l'extension de ton
fichier
est .Cls, et si tu désires récupérer le code dufichier .cls, avec la procédure (3 lignes) soumise de récupération, le
module de classe ("l'objet physique") de destinationdevra être déjà présent et il devra aussi avoir même nom que le module
de
classe d'origine, sinon, il remplacera le module declasse ("l'objet physique") de destination par le module de classe
d'origine (code seulement) et ce n'est pas habituellementce qui est désiré... dans excel. De plus, il se permettra d'ajouter ces
lignes de code en début du module de destinationqu'il faudrait enlever par quelques lignes de code supplémentaire.
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
End
Salutations !
P.S. Bon samedi quand même !!!
"sabatier" a écrit dans le
message denews:ue%
bonjour,
je me livre aux douces joies de l'importationnement de modules après
exportationnage d'iceux....
pour un module standard, *Fichier/Exporter un fichier* crée un .bas et
no
problemo pour l'importer
par contre, pour le module ThisWorkbook, c'est moins sympa car
*Fichier/Exporter un fichier* crée un .cls et à l'importation dans
l'autre
classeur, c'est un ThisWorkbook1 qui va s'ajouter et non le
ThisWorkbook,
leseul, le vrai, l'authentique, qui va recevoir la procédure importer...du
coup, c'est moi qui fais une drôle de tête de clone car je me pose la
question de savoir ce qui va se passer ensuite...
si quelque bonne volonté aoûtienne peut m'en dire plus sur ce
phénomène...ungrand merci par avance
jps