Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié son nom
en passant de la version Excel 97 à la version 2000. Conséquence, si tu charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence directement
au nom de la bibliothèque et des constantes "textes" se référant à la bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant chacune
des constantes textes, tu pourras les remplacer par leur constante numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" a écrit dans le message de news:
%
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié son nom
en passant de la version Excel 97 à la version 2000. Conséquence, si tu charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence directement
au nom de la bibliothèque et des constantes "textes" se référant à la bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant chacune
des constantes textes, tu pourras les remplacer par leur constante numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" <allezvoir@yeur.fr> a écrit dans le message de news:
%23cGiB0TaIHA.1532@TK2MSFTNGP04.phx.gbl...
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié son nom
en passant de la version Excel 97 à la version 2000. Conséquence, si tu charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence directement
au nom de la bibliothèque et des constantes "textes" se référant à la bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant chacune
des constantes textes, tu pourras les remplacer par leur constante numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" a écrit dans le message de news:
%
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
Bonjour MichDenis
et merci
Je suis sous XL2K et Win XP Pro (maison) Win 2K (travail)
Je vais suivre ton conseil et déclarant "as object"
Je teste et je reviens si j'ai des difficultés (c'est l'heure de la soupe):-)
@+
J@@Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié son
nom
en passant de la version Excel 97 à la version 2000. Conséquence, si tu
charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions plus
récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence
directement
au nom de la bibliothèque et des constantes "textes" se référant à la
bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en
déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci
clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant chacune
des constantes textes, tu pourras les remplacer par leur constante
numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" a écrit dans le message de news:
%
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
Bonjour MichDenis
et merci
Je suis sous XL2K et Win XP Pro (maison) Win 2K (travail)
Je vais suivre ton conseil et déclarant "as object"
Je teste et je reviens si j'ai des difficultés (c'est l'heure de la soupe):-)
@+
J@@
Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié son
nom
en passant de la version Excel 97 à la version 2000. Conséquence, si tu
charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions plus
récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence
directement
au nom de la bibliothèque et des constantes "textes" se référant à la
bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en
déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci
clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant chacune
des constantes textes, tu pourras les remplacer par leur constante
numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" <allezvoir@yeur.fr> a écrit dans le message de news:
%23cGiB0TaIHA.1532@TK2MSFTNGP04.phx.gbl...
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
Bonjour MichDenis
et merci
Je suis sous XL2K et Win XP Pro (maison) Win 2K (travail)
Je vais suivre ton conseil et déclarant "as object"
Je teste et je reviens si j'ai des difficultés (c'est l'heure de la soupe):-)
@+
J@@Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié son
nom
en passant de la version Excel 97 à la version 2000. Conséquence, si tu
charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions plus
récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence
directement
au nom de la bibliothèque et des constantes "textes" se référant à la
bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en
déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci
clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant chacune
des constantes textes, tu pourras les remplacer par leur constante
numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" a écrit dans le message de news:
%
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
*Bonjour J@@*,
Il ne serait pas plus simple de copier le code dans un fichier texte
puis de l'importer/coller dans le classeur ?Bonjour MichDenis
et merci
Je suis sous XL2K et Win XP Pro (maison) Win 2K (travail)
Je vais suivre ton conseil et déclarant "as object"
Je teste et je reviens si j'ai des difficultés (c'est l'heure de la
soupe):-)
@+
J@@Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié
son nom
en passant de la version Excel 97 à la version 2000. Conséquence, si
tu charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions
plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence
directement
au nom de la bibliothèque et des constantes "textes" se référant à la
bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en
déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci
clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant
chacune
des constantes textes, tu pourras les remplacer par leur constante
numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" a écrit dans le message de news:
%
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
*Bonjour J@@*,
Il ne serait pas plus simple de copier le code dans un fichier texte
puis de l'importer/coller dans le classeur ?
Bonjour MichDenis
et merci
Je suis sous XL2K et Win XP Pro (maison) Win 2K (travail)
Je vais suivre ton conseil et déclarant "as object"
Je teste et je reviens si j'ai des difficultés (c'est l'heure de la
soupe):-)
@+
J@@
Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié
son nom
en passant de la version Excel 97 à la version 2000. Conséquence, si
tu charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions
plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence
directement
au nom de la bibliothèque et des constantes "textes" se référant à la
bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en
déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci
clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant
chacune
des constantes textes, tu pourras les remplacer par leur constante
numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" <allezvoir@yeur.fr> a écrit dans le message de news:
%23cGiB0TaIHA.1532@TK2MSFTNGP04.phx.gbl...
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
*Bonjour J@@*,
Il ne serait pas plus simple de copier le code dans un fichier texte
puis de l'importer/coller dans le classeur ?Bonjour MichDenis
et merci
Je suis sous XL2K et Win XP Pro (maison) Win 2K (travail)
Je vais suivre ton conseil et déclarant "as object"
Je teste et je reviens si j'ai des difficultés (c'est l'heure de la
soupe):-)
@+
J@@Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié
son nom
en passant de la version Excel 97 à la version 2000. Conséquence, si
tu charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions
plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence
directement
au nom de la bibliothèque et des constantes "textes" se référant à la
bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en
déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci
clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant
chacune
des constantes textes, tu pourras les remplacer par leur constante
numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" a écrit dans le message de news:
%
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié son nom
en passant de la version Excel 97 à la version 2000. Conséquence, si tu charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence directement
au nom de la bibliothèque et des constantes "textes" se référant à la bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant chacune
des constantes textes, tu pourras les remplacer par leur constante numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" a écrit dans le message de news:
%
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié son nom
en passant de la version Excel 97 à la version 2000. Conséquence, si tu charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence directement
au nom de la bibliothèque et des constantes "textes" se référant à la bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant chacune
des constantes textes, tu pourras les remplacer par leur constante numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" <allezvoir@yeur.fr> a écrit dans le message de news:
%23cGiB0TaIHA.1532@TK2MSFTNGP04.phx.gbl...
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié son nom
en passant de la version Excel 97 à la version 2000. Conséquence, si tu charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence directement
au nom de la bibliothèque et des constantes "textes" se référant à la bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant chacune
des constantes textes, tu pourras les remplacer par leur constante numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" a écrit dans le message de news:
%
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié son nom
en passant de la version Excel 97 à la version 2000. Conséquence, si tu charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence directement
au nom de la bibliothèque et des constantes "textes" se référant à la bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant chacune
des constantes textes, tu pourras les remplacer par leur constante numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" a écrit dans le message de news:
%
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié son nom
en passant de la version Excel 97 à la version 2000. Conséquence, si tu charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence directement
au nom de la bibliothèque et des constantes "textes" se référant à la bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant chacune
des constantes textes, tu pourras les remplacer par leur constante numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" <allezvoir@yeur.fr> a écrit dans le message de news:
%23cGiB0TaIHA.1532@TK2MSFTNGP04.phx.gbl...
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié son nom
en passant de la version Excel 97 à la version 2000. Conséquence, si tu charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence directement
au nom de la bibliothèque et des constantes "textes" se référant à la bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant chacune
des constantes textes, tu pourras les remplacer par leur constante numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" a écrit dans le message de news:
%
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
Bonjour Jluc
Tout à fait d'accord.
Mais l'opération doit se passer sur la machine d'un utilisateur basique++ qui
récupère un fichier abominablement mal fichu, doit bosser dessus puis le
réexpédier aussi mal fichu.
Mon idée :
de façon transparente, lui importer un peu de code, en particulier dans le
code de feuille (en effet à partir de là où le code sera, format texte ou
autre)puis à la fin remettre le fichier dans son aspect initial, sans code et
le renvoyer.
Pour le moment, j'exporte bien avec l'idée de MichDenis, mais mon code
feuille apparait sous un format .cls, un peu bizarre où il n'y a pas que le
code de feuille.
Et je n'ai rien trouvé dans l'éditeur pour exporter le code feuille, comme on
exporte un module.
Si tu as une idée, :-)
Merci+@+
J@@*Bonjour J@@*,
Il ne serait pas plus simple de copier le code dans un fichier texte puis
de l'importer/coller dans le classeur ?Bonjour MichDenis
et merci
Je suis sous XL2K et Win XP Pro (maison) Win 2K (travail)
Je vais suivre ton conseil et déclarant "as object"
Je teste et je reviens si j'ai des difficultés (c'est l'heure de la
soupe):-)
@+
J@@Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié son
nom
en passant de la version Excel 97 à la version 2000. Conséquence, si tu
charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions
plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence
directement
au nom de la bibliothèque et des constantes "textes" se référant à la
bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en
déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci
clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant
chacune
des constantes textes, tu pourras les remplacer par leur constante
numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" a écrit dans le message de news:
%
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
Bonjour Jluc
Tout à fait d'accord.
Mais l'opération doit se passer sur la machine d'un utilisateur basique++ qui
récupère un fichier abominablement mal fichu, doit bosser dessus puis le
réexpédier aussi mal fichu.
Mon idée :
de façon transparente, lui importer un peu de code, en particulier dans le
code de feuille (en effet à partir de là où le code sera, format texte ou
autre)puis à la fin remettre le fichier dans son aspect initial, sans code et
le renvoyer.
Pour le moment, j'exporte bien avec l'idée de MichDenis, mais mon code
feuille apparait sous un format .cls, un peu bizarre où il n'y a pas que le
code de feuille.
Et je n'ai rien trouvé dans l'éditeur pour exporter le code feuille, comme on
exporte un module.
Si tu as une idée, :-)
Merci+@+
J@@
*Bonjour J@@*,
Il ne serait pas plus simple de copier le code dans un fichier texte puis
de l'importer/coller dans le classeur ?
Bonjour MichDenis
et merci
Je suis sous XL2K et Win XP Pro (maison) Win 2K (travail)
Je vais suivre ton conseil et déclarant "as object"
Je teste et je reviens si j'ai des difficultés (c'est l'heure de la
soupe):-)
@+
J@@
Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié son
nom
en passant de la version Excel 97 à la version 2000. Conséquence, si tu
charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions
plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence
directement
au nom de la bibliothèque et des constantes "textes" se référant à la
bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en
déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci
clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant
chacune
des constantes textes, tu pourras les remplacer par leur constante
numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" <allezvoir@yeur.fr> a écrit dans le message de news:
%23cGiB0TaIHA.1532@TK2MSFTNGP04.phx.gbl...
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
Bonjour Jluc
Tout à fait d'accord.
Mais l'opération doit se passer sur la machine d'un utilisateur basique++ qui
récupère un fichier abominablement mal fichu, doit bosser dessus puis le
réexpédier aussi mal fichu.
Mon idée :
de façon transparente, lui importer un peu de code, en particulier dans le
code de feuille (en effet à partir de là où le code sera, format texte ou
autre)puis à la fin remettre le fichier dans son aspect initial, sans code et
le renvoyer.
Pour le moment, j'exporte bien avec l'idée de MichDenis, mais mon code
feuille apparait sous un format .cls, un peu bizarre où il n'y a pas que le
code de feuille.
Et je n'ai rien trouvé dans l'éditeur pour exporter le code feuille, comme on
exporte un module.
Si tu as une idée, :-)
Merci+@+
J@@*Bonjour J@@*,
Il ne serait pas plus simple de copier le code dans un fichier texte puis
de l'importer/coller dans le classeur ?Bonjour MichDenis
et merci
Je suis sous XL2K et Win XP Pro (maison) Win 2K (travail)
Je vais suivre ton conseil et déclarant "as object"
Je teste et je reviens si j'ai des difficultés (c'est l'heure de la
soupe):-)
@+
J@@Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié son
nom
en passant de la version Excel 97 à la version 2000. Conséquence, si tu
charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions
plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence
directement
au nom de la bibliothèque et des constantes "textes" se référant à la
bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en
déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci
clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant
chacune
des constantes textes, tu pourras les remplacer par leur constante
numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" a écrit dans le message de news:
%
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
Lorsque tu exportes le code d'un module "Feuil", "ThisWorkbook"
comme ce sont des modules de classes, l'extension du fichier est ".cls"
Si c'est un module standard, l'extension du fichier est .bas
Voici une autre façon d'exporter le contenu d'un module dans un fichier texte
'-------------------------------
Sub test()
Dim LeTexte As String
Dim X As Long, FichierDestination As String
'à déterminer -> le chemin doit exister... le fichier
'sera cféé à l'exécution.
FichierDestination = "c:ATravailMonFichierMacro.txt"
'ThisWorkbook = Classeur où la macro est écrite
'Peut être remplacé par ActiveWorkbook ou
'Workbooks("NomDuclasseur.xls") (doit être ouvert)
With ThisWorkbook.VBProject.VBComponents
'Nom de l'objet "Feuille de la fenêtre de
'l'éditeur de code "Feuil1") à déterminer
With .Item("Feuil1").CodeModule
LeTexte = .Lines(1, .CountOfLines)
End With
End With
If LeTexte <> "" Then
X = FreeFile
Open FichierDestination For Output As #X
Print #X, LeTexte
Close #X
End If
End Sub
'-------------------------------
Et voici comment récupérer le contenu texte pour le copier
dans le module appelé "Feuil3" du classeur où la macro est écrite
'-----------------------------------------
Sub test()
Dim Fs As Object, LeTexte As String
Dim F As Object, FichierDestination As String
FichierDestination = "c:ATravailMonFichierMacro.txt"
Set Fs = CreateObject("Scripting.FileSystemObject")
Set F = Fs.OpenTextFile(FichierDestination, 1)
LeTexte = F.readall
F.Close
With ThisWorkbook.VBProject.VBComponents
'Nom de l'objet "Feuille de la fenêtre de
'l'éditeur de code "Feuil1") à déterminer
With .Item("Feuil3").CodeModule
.AddFromString LeTexte
End With
End With
End Sub
'-----------------------------------------
"J@@" a écrit dans le message de news:
%23nQ8b%
Re-bonjour
le code obtenu suite à tes indications fonctionne bien.
Le code de feuille qui m'intéresse le plus se trouve en Feuil11.cls.
On n'obtient pas un fichier texte pur genre .bas.
Sinon, comment faire pour réimporter ce code dans un autre fichier, stp?
merci
@+
J@@
'********
Sub ExportAllVBA()
Dim VBComp As Object
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case 2, 100
Sfx = ".cls"
Case 3
Sfx = ".frm"
Case 1
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié son nom
en passant de la version Excel 97 à la version 2000. Conséquence, si tu charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence directement
au nom de la bibliothèque et des constantes "textes" se référant à la bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant chacune
des constantes textes, tu pourras les remplacer par leur constante numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" a écrit dans le message de news:
%
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
Lorsque tu exportes le code d'un module "Feuil", "ThisWorkbook"
comme ce sont des modules de classes, l'extension du fichier est ".cls"
Si c'est un module standard, l'extension du fichier est .bas
Voici une autre façon d'exporter le contenu d'un module dans un fichier texte
'-------------------------------
Sub test()
Dim LeTexte As String
Dim X As Long, FichierDestination As String
'à déterminer -> le chemin doit exister... le fichier
'sera cféé à l'exécution.
FichierDestination = "c:ATravailMonFichierMacro.txt"
'ThisWorkbook = Classeur où la macro est écrite
'Peut être remplacé par ActiveWorkbook ou
'Workbooks("NomDuclasseur.xls") (doit être ouvert)
With ThisWorkbook.VBProject.VBComponents
'Nom de l'objet "Feuille de la fenêtre de
'l'éditeur de code "Feuil1") à déterminer
With .Item("Feuil1").CodeModule
LeTexte = .Lines(1, .CountOfLines)
End With
End With
If LeTexte <> "" Then
X = FreeFile
Open FichierDestination For Output As #X
Print #X, LeTexte
Close #X
End If
End Sub
'-------------------------------
Et voici comment récupérer le contenu texte pour le copier
dans le module appelé "Feuil3" du classeur où la macro est écrite
'-----------------------------------------
Sub test()
Dim Fs As Object, LeTexte As String
Dim F As Object, FichierDestination As String
FichierDestination = "c:ATravailMonFichierMacro.txt"
Set Fs = CreateObject("Scripting.FileSystemObject")
Set F = Fs.OpenTextFile(FichierDestination, 1)
LeTexte = F.readall
F.Close
With ThisWorkbook.VBProject.VBComponents
'Nom de l'objet "Feuille de la fenêtre de
'l'éditeur de code "Feuil1") à déterminer
With .Item("Feuil3").CodeModule
.AddFromString LeTexte
End With
End With
End Sub
'-----------------------------------------
"J@@" <allezvoir@yeur.fr> a écrit dans le message de news:
%23nQ8b%23UaIHA.4160@TK2MSFTNGP03.phx.gbl...
Re-bonjour
le code obtenu suite à tes indications fonctionne bien.
Le code de feuille qui m'intéresse le plus se trouve en Feuil11.cls.
On n'obtient pas un fichier texte pur genre .bas.
Sinon, comment faire pour réimporter ce code dans un autre fichier, stp?
merci
@+
J@@
'********
Sub ExportAllVBA()
Dim VBComp As Object
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case 2, 100
Sfx = ".cls"
Case 3
Sfx = ".frm"
Case 1
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié son nom
en passant de la version Excel 97 à la version 2000. Conséquence, si tu charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence directement
au nom de la bibliothèque et des constantes "textes" se référant à la bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant chacune
des constantes textes, tu pourras les remplacer par leur constante numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" <allezvoir@yeur.fr> a écrit dans le message de news:
%23cGiB0TaIHA.1532@TK2MSFTNGP04.phx.gbl...
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
Lorsque tu exportes le code d'un module "Feuil", "ThisWorkbook"
comme ce sont des modules de classes, l'extension du fichier est ".cls"
Si c'est un module standard, l'extension du fichier est .bas
Voici une autre façon d'exporter le contenu d'un module dans un fichier texte
'-------------------------------
Sub test()
Dim LeTexte As String
Dim X As Long, FichierDestination As String
'à déterminer -> le chemin doit exister... le fichier
'sera cféé à l'exécution.
FichierDestination = "c:ATravailMonFichierMacro.txt"
'ThisWorkbook = Classeur où la macro est écrite
'Peut être remplacé par ActiveWorkbook ou
'Workbooks("NomDuclasseur.xls") (doit être ouvert)
With ThisWorkbook.VBProject.VBComponents
'Nom de l'objet "Feuille de la fenêtre de
'l'éditeur de code "Feuil1") à déterminer
With .Item("Feuil1").CodeModule
LeTexte = .Lines(1, .CountOfLines)
End With
End With
If LeTexte <> "" Then
X = FreeFile
Open FichierDestination For Output As #X
Print #X, LeTexte
Close #X
End If
End Sub
'-------------------------------
Et voici comment récupérer le contenu texte pour le copier
dans le module appelé "Feuil3" du classeur où la macro est écrite
'-----------------------------------------
Sub test()
Dim Fs As Object, LeTexte As String
Dim F As Object, FichierDestination As String
FichierDestination = "c:ATravailMonFichierMacro.txt"
Set Fs = CreateObject("Scripting.FileSystemObject")
Set F = Fs.OpenTextFile(FichierDestination, 1)
LeTexte = F.readall
F.Close
With ThisWorkbook.VBProject.VBComponents
'Nom de l'objet "Feuille de la fenêtre de
'l'éditeur de code "Feuil1") à déterminer
With .Item("Feuil3").CodeModule
.AddFromString LeTexte
End With
End With
End Sub
'-----------------------------------------
"J@@" a écrit dans le message de news:
%23nQ8b%
Re-bonjour
le code obtenu suite à tes indications fonctionne bien.
Le code de feuille qui m'intéresse le plus se trouve en Feuil11.cls.
On n'obtient pas un fichier texte pur genre .bas.
Sinon, comment faire pour réimporter ce code dans un autre fichier, stp?
merci
@+
J@@
'********
Sub ExportAllVBA()
Dim VBComp As Object
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case 2, 100
Sfx = ".cls"
Case 3
Sfx = ".frm"
Case 1
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a modifié son nom
en passant de la version Excel 97 à la version 2000. Conséquence, si tu charges
la bibliothèques Version 97, elle ne fonctionne pas avec les versions plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence directement
au nom de la bibliothèque et des constantes "textes" se référant à la bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le raccourci clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant chacune
des constantes textes, tu pourras les remplacer par leur constante numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la bibliothèque et
laisser le programme se débrouiller ....!
"J@@" a écrit dans le message de news:
%
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
*Bonjour J@@*,
Une autre idée serait de faire un classeur x qui contiendrait les macros
à utiliser mais qui travaillerais sur le fichier "mal touffu...
heu...foutu". De cette façon, tu n'ajoute rien et tu n'enleve rien à la fin
:D
Si ça peut aider...
JLucBonjour Jluc
Tout à fait d'accord.
Mais l'opération doit se passer sur la machine d'un utilisateur
basique++ qui récupère un fichier abominablement mal fichu, doit
bosser dessus puis le réexpédier aussi mal fichu.
Mon idée :
de façon transparente, lui importer un peu de code, en particulier
dans le code de feuille (en effet à partir de là où le code sera,
format texte ou autre)puis à la fin remettre le fichier dans son
aspect initial, sans code et le renvoyer.
Pour le moment, j'exporte bien avec l'idée de MichDenis, mais mon code
feuille apparait sous un format .cls, un peu bizarre où il n'y a pas
que le code de feuille.
Et je n'ai rien trouvé dans l'éditeur pour exporter le code feuille,
comme on exporte un module.
Si tu as une idée, :-)
Merci+@+
J@@*Bonjour J@@*,
Il ne serait pas plus simple de copier le code dans un fichier texte
puis de l'importer/coller dans le classeur ?Bonjour MichDenis
et merci
Je suis sous XL2K et Win XP Pro (maison) Win 2K (travail)
Je vais suivre ton conseil et déclarant "as object"
Je teste et je reviens si j'ai des difficultés (c'est l'heure de la
soupe):-)
@+
J@@Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft
SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a
modifié son nom
en passant de la version Excel 97 à la version 2000. Conséquence,
si tu charges
la bibliothèques Version 97, elle ne fonctionne pas avec les
versions plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence
directement
au nom de la bibliothèque et des constantes "textes" se référant à
la bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en
déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le
raccourci clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant
chacune
des constantes textes, tu pourras les remplacer par leur constante
numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la
bibliothèque et
laisser le programme se débrouiller ....!
"J@@" a écrit dans le message de news:
%
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne
rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
*Bonjour J@@*,
Une autre idée serait de faire un classeur x qui contiendrait les macros
à utiliser mais qui travaillerais sur le fichier "mal touffu...
heu...foutu". De cette façon, tu n'ajoute rien et tu n'enleve rien à la fin
:D
Si ça peut aider...
JLuc
Bonjour Jluc
Tout à fait d'accord.
Mais l'opération doit se passer sur la machine d'un utilisateur
basique++ qui récupère un fichier abominablement mal fichu, doit
bosser dessus puis le réexpédier aussi mal fichu.
Mon idée :
de façon transparente, lui importer un peu de code, en particulier
dans le code de feuille (en effet à partir de là où le code sera,
format texte ou autre)puis à la fin remettre le fichier dans son
aspect initial, sans code et le renvoyer.
Pour le moment, j'exporte bien avec l'idée de MichDenis, mais mon code
feuille apparait sous un format .cls, un peu bizarre où il n'y a pas
que le code de feuille.
Et je n'ai rien trouvé dans l'éditeur pour exporter le code feuille,
comme on exporte un module.
Si tu as une idée, :-)
Merci+@+
J@@
*Bonjour J@@*,
Il ne serait pas plus simple de copier le code dans un fichier texte
puis de l'importer/coller dans le classeur ?
Bonjour MichDenis
et merci
Je suis sous XL2K et Win XP Pro (maison) Win 2K (travail)
Je vais suivre ton conseil et déclarant "as object"
Je teste et je reviens si j'ai des difficultés (c'est l'heure de la
soupe):-)
@+
J@@
Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft
SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a
modifié son nom
en passant de la version Excel 97 à la version 2000. Conséquence,
si tu charges
la bibliothèques Version 97, elle ne fonctionne pas avec les
versions plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence
directement
au nom de la bibliothèque et des constantes "textes" se référant à
la bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en
déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le
raccourci clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant
chacune
des constantes textes, tu pourras les remplacer par leur constante
numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la
bibliothèque et
laisser le programme se débrouiller ....!
"J@@" <allezvoir@yeur.fr> a écrit dans le message de news:
%23cGiB0TaIHA.1532@TK2MSFTNGP04.phx.gbl...
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne
rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@
*Bonjour J@@*,
Une autre idée serait de faire un classeur x qui contiendrait les macros
à utiliser mais qui travaillerais sur le fichier "mal touffu...
heu...foutu". De cette façon, tu n'ajoute rien et tu n'enleve rien à la fin
:D
Si ça peut aider...
JLucBonjour Jluc
Tout à fait d'accord.
Mais l'opération doit se passer sur la machine d'un utilisateur
basique++ qui récupère un fichier abominablement mal fichu, doit
bosser dessus puis le réexpédier aussi mal fichu.
Mon idée :
de façon transparente, lui importer un peu de code, en particulier
dans le code de feuille (en effet à partir de là où le code sera,
format texte ou autre)puis à la fin remettre le fichier dans son
aspect initial, sans code et le renvoyer.
Pour le moment, j'exporte bien avec l'idée de MichDenis, mais mon code
feuille apparait sous un format .cls, un peu bizarre où il n'y a pas
que le code de feuille.
Et je n'ai rien trouvé dans l'éditeur pour exporter le code feuille,
comme on exporte un module.
Si tu as une idée, :-)
Merci+@+
J@@*Bonjour J@@*,
Il ne serait pas plus simple de copier le code dans un fichier texte
puis de l'importer/coller dans le classeur ?Bonjour MichDenis
et merci
Je suis sous XL2K et Win XP Pro (maison) Win 2K (travail)
Je vais suivre ton conseil et déclarant "as object"
Je teste et je reviens si j'ai des difficultés (c'est l'heure de la
soupe):-)
@+
J@@Pour pouvoir déclarer une variable As Vbide.Vbcomponent,
tu dois ajouter la bibliothèque suivante à partir du menu de la
fenêtre de l'éditeur de code : menu / outils / références :
Nom description de la bibliothèque :
Microsoft Visual Basic for Applications Extensibility 5.3
Le fichier responsable sous windows xp pro:
C:Program FilesFichiers communsMicrosoft
SharedVBAVBA6VBE6EXT.OLB
Le nom de la bibliothèque : VBIDE
Il y a un "hic" à propos de cette bibliothèque... Microsoft a
modifié son nom
en passant de la version Excel 97 à la version 2000. Conséquence,
si tu charges
la bibliothèques Version 97, elle ne fonctionne pas avec les
versions plus récentes
et l'inverse est aussi vrai.
Solution, au lieu d'utiliser des liaisons précoces (faire référence
directement
au nom de la bibliothèque et des constantes "textes" se référant à
la bibliothèque)
tu peux utiliser les mêmes macros avec des liaisons tardives...en
déclararant les
variables AS OBJECT
Dim VBComp As OBJECT
Et si tu utilises dans la fenêtre de l'éditeur de code, le
raccourci clavier F2,
une fenêtre "Explorateur d'objets" s'ouvrira et là, en recherchant
chacune
des constantes textes, tu pourras les remplacer par leur constante
numérique
Exemple :
vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Les constantes numériques apparaissent dans le bas de la fenêtre après
avoir fait la recherche de la constante dans l'explorateur d'objets.
Et ça, devrait te permettre de ne pas avoir à charger la
bibliothèque et
laisser le programme se débrouiller ....!
"J@@" a écrit dans le message de news:
%
Bonjour
Je cherche à exporter le code, en particulier de feuille, d'un fichier
et importer ce code dans un autre fichier plus tard.
J'ai essayé le code suivant (je n'en connais plus l'auteur) qui plante
dès la déclaration de VBComp, et qui de toutes façons ne me donne
rien.
'********
Sub ExportAllVBA()
Dim VBComp As VBIDE.VBComponent
'erreur de compil :Type défini par l'utilisateur non défini
Dim Sfx As String
For Each VBComp In ActiveWorkbook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
VBComp.Export _
Filename:¬tiveWorkbook.Path & "" & VBComp.Name & Sfx
End If
Next VBComp
End Sub
'********
Sinon j'ai un code pour supprimer tout le code qui fonctionne bien,
malgé le fait que j'ai du mettre les 2 lignes Dim en commentaire.
'********
Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent '
Dim VBComps As VBIDE.VBComponents '
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub
'********
Qui aurait une idée, svp
Merci
@+
J@@