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

Agir sur les macros d'un classeur avec VBA

10 réponses
Avatar
gerardjean
Bonjour,

je souhaite accéder par programme VBA aux macros VBA d'un classeur xx pour
supprimer, insérer ou modifier du code.

aucune de mes inctructions ne fonctionne (du type workbooks(xx).vbproject
j'ai à chaque fois l'erreur 1004 qui s'affiche

Merci à toute personne qui peut m'éclairer

nb : j'utilise Excel2003 et ai activé le complément visual basic extension 5.3

10 réponses

Avatar
bourby
gerardjean wrote:
Bonjour,

je souhaite accéder par programme VBA aux macros VBA d'un classeur xx pour
supprimer, insérer ou modifier du code.

aucune de mes inctructions ne fonctionne (du type workbooks(xx).vbproject
j'ai à chaque fois l'erreur 1004 qui s'affiche

Merci à toute personne qui peut m'éclairer

nb : j'utilise Excel2003 et ai activé le complément visual basic extension 5.3
bonjour,


je ne suis pas assez calé pour une réponse exhaustive, mais voilà un
code dérivé d'une réponse fournie par "papou" sur ce forum; attention,
tel quel, c'est violent , ça efface tout code VBA. Je pense que tu peux
t'en inspirer.

Sub SupprimeToutCodeEtFormulaire()
'*****************************************************
' attention, cette macro est violente...
'*****************************************************

Dim VBComp As Object, VBComps As Object
Dim nomClasseur As String, Nom2 As String

nomClasseur = InputBox("Nom du classeur dont on veut" _
& vbCrLf & "effacer toutes les macros et tous les formulaires
(UserForms)?)" _
& vbCrLf & "Format: monClasseur.xls" _
& vbCrLf & "Laisser en blanc pour quitter")

If nomClasseur = "" Then Exit Sub

Do While Nom2 <> nomClasseur
Nom2 = InputBox("Confirmez le nom du fichier svp" _
& vbCrLf & "Laissez en blanc pour quitter")
If nomClasseur = "" Then Exit Sub
Loop

Set VBComps = Workbooks(nomClasseur).VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.codemodule
.deletelines 1, .countoflines
End With
Case Else
VBComps.Remove VBComp
End Select
Next
End Sub

Avatar
gerardjean
Merci pour ta réponse

j'ai bien procédé à quelque chose de similaire à la procédure de "Papou",
mais à l'instruction

Set VBComps = Workbooks(nomClasseur).VBProject.VBComponents, VB me retourne
"erreur d'exécution 1004"

et c'est là mon pb !!!



gerardjean wrote:
Bonjour,

je souhaite accéder par programme VBA aux macros VBA d'un classeur xx pour
supprimer, insérer ou modifier du code.

aucune de mes inctructions ne fonctionne (du type workbooks(xx).vbproject
j'ai à chaque fois l'erreur 1004 qui s'affiche

Merci à toute personne qui peut m'éclairer

nb : j'utilise Excel2003 et ai activé le complément visual basic extension 5.3
bonjour,


je ne suis pas assez calé pour une réponse exhaustive, mais voilà un
code dérivé d'une réponse fournie par "papou" sur ce forum; attention,
tel quel, c'est violent , ça efface tout code VBA. Je pense que tu peux
t'en inspirer.

Sub SupprimeToutCodeEtFormulaire()
'*****************************************************
' attention, cette macro est violente...
'*****************************************************

Dim VBComp As Object, VBComps As Object
Dim nomClasseur As String, Nom2 As String

nomClasseur = InputBox("Nom du classeur dont on veut" _
& vbCrLf & "effacer toutes les macros et tous les formulaires
(UserForms)?)" _
& vbCrLf & "Format: monClasseur.xls" _
& vbCrLf & "Laisser en blanc pour quitter")

If nomClasseur = "" Then Exit Sub

Do While Nom2 <> nomClasseur
Nom2 = InputBox("Confirmez le nom du fichier svp" _
& vbCrLf & "Laissez en blanc pour quitter")
If nomClasseur = "" Then Exit Sub
Loop

Set VBComps = Workbooks(nomClasseur).VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.codemodule
.deletelines 1, .countoflines
End With
Case Else
VBComps.Remove VBComp
End Select
Next
End Sub




Avatar
bourby
gerardjean wrote:
Merci pour ta réponse

j'ai bien procédé à quelque chose de similaire à la procédure de "Papou",
mais à l'instruction

Set VBComps = Workbooks(nomClasseur).VBProject.VBComponents, VB me retourne
"erreur d'exécution 1004"

et c'est là mon pb !!!




gerardjean wrote:

Bonjour,

je souhaite accéder par programme VBA aux macros VBA d'un classeur xx pour
supprimer, insérer ou modifier du code.

aucune de mes inctructions ne fonctionne (du type workbooks(xx).vbproject
j'ai à chaque fois l'erreur 1004 qui s'affiche

Merci à toute personne qui peut m'éclairer

nb : j'utilise Excel2003 et ai activé le complément visual basic extension 5.3


bonjour,

je ne suis pas assez calé pour une réponse exhaustive, mais voilà un
code dérivé d'une réponse fournie par "papou" sur ce forum; attention,
tel quel, c'est violent , ça efface tout code VBA. Je pense que tu peux
t'en inspirer.

Sub SupprimeToutCodeEtFormulaire()
'*****************************************************
' attention, cette macro est violente...
'*****************************************************

Dim VBComp As Object, VBComps As Object
Dim nomClasseur As String, Nom2 As String

nomClasseur = InputBox("Nom du classeur dont on veut" _
& vbCrLf & "effacer toutes les macros et tous les formulaires
(UserForms)?)" _
& vbCrLf & "Format: monClasseur.xls" _
& vbCrLf & "Laisser en blanc pour quitter")

If nomClasseur = "" Then Exit Sub

Do While Nom2 <> nomClasseur
Nom2 = InputBox("Confirmez le nom du fichier svp" _
& vbCrLf & "Laissez en blanc pour quitter")
If nomClasseur = "" Then Exit Sub
Loop

Set VBComps = Workbooks(nomClasseur).VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.codemodule
.deletelines 1, .countoflines
End With
Case Else
VBComps.Remove VBComp
End Select
Next
End Sub




1) as-tu bien déclaré VBComps comme Object?
2) indiques tu bien un nom du genre classeur.xls ?
Si l'erreur n'est pas là, je ne suis pas assez compétent....

Cordialement

Bourby



Avatar
gerardjean
Hélas oui, j'ai bien fait tout cela

merci pour ta contribution

bonne soirée


gerardjean wrote:
Merci pour ta réponse

j'ai bien procédé à quelque chose de similaire à la procédure de "Papou",
mais à l'instruction

Set VBComps = Workbooks(nomClasseur).VBProject.VBComponents, VB me retourne
"erreur d'exécution 1004"

et c'est là mon pb !!!




gerardjean wrote:

Bonjour,

je souhaite accéder par programme VBA aux macros VBA d'un classeur xx pour
supprimer, insérer ou modifier du code.

aucune de mes inctructions ne fonctionne (du type workbooks(xx).vbproject
j'ai à chaque fois l'erreur 1004 qui s'affiche

Merci à toute personne qui peut m'éclairer

nb : j'utilise Excel2003 et ai activé le complément visual basic extension 5.3


bonjour,

je ne suis pas assez calé pour une réponse exhaustive, mais voilà un
code dérivé d'une réponse fournie par "papou" sur ce forum; attention,
tel quel, c'est violent , ça efface tout code VBA. Je pense que tu peux
t'en inspirer.

Sub SupprimeToutCodeEtFormulaire()
'*****************************************************
' attention, cette macro est violente...
'*****************************************************

Dim VBComp As Object, VBComps As Object
Dim nomClasseur As String, Nom2 As String

nomClasseur = InputBox("Nom du classeur dont on veut" _
& vbCrLf & "effacer toutes les macros et tous les formulaires
(UserForms)?)" _
& vbCrLf & "Format: monClasseur.xls" _
& vbCrLf & "Laisser en blanc pour quitter")

If nomClasseur = "" Then Exit Sub

Do While Nom2 <> nomClasseur
Nom2 = InputBox("Confirmez le nom du fichier svp" _
& vbCrLf & "Laissez en blanc pour quitter")
If nomClasseur = "" Then Exit Sub
Loop

Set VBComps = Workbooks(nomClasseur).VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.codemodule
.deletelines 1, .countoflines
End With
Case Else
VBComps.Remove VBComp
End Select
Next
End Sub




1) as-tu bien déclaré VBComps comme Object?
2) indiques tu bien un nom du genre classeur.xls ?
Si l'erreur n'est pas là, je ne suis pas assez compétent....

Cordialement

Bourby






Avatar
Clément Marcotte
Bonjour,

Voici le chemin pour Excel 2002. (Il est un peu différent pour Excel 2003,
mais c'est le même principe)

Outils - Options - Sécurité - Sécurité des macros - Sources fiables.

Cocher au moins "Faire confiance au projet Visual Basic

"gerardjean" a écrit dans le message
de news:
Bonjour,

je souhaite accéder par programme VBA aux macros VBA d'un classeur xx
pour
supprimer, insérer ou modifier du code.

aucune de mes inctructions ne fonctionne (du type workbooks(xx).vbproject
j'ai à chaque fois l'erreur 1004 qui s'affiche

Merci à toute personne qui peut m'éclairer

nb : j'utilise Excel2003 et ai activé le complément visual basic extension
5.3


Avatar
Daniel
Bonsoir.
J'ai la même version d'Excel et la même erreur, même en reprenant l'exemple
de l'aide VBA :
Sub test()
ThisWorkbook.VBProject.Name = "TestProject"
End Sub
donne "erreur d'exécution 1004".
Cordialement.
Daniel
"gerardjean" a écrit dans le message
de news:
Hélas oui, j'ai bien fait tout cela

merci pour ta contribution

bonne soirée


gerardjean wrote:
Merci pour ta réponse

j'ai bien procédé à quelque chose de similaire à la procédure de
"Papou",
mais à l'instruction

Set VBComps = Workbooks(nomClasseur).VBProject.VBComponents, VB me
retourne
"erreur d'exécution 1004"

et c'est là mon pb !!!




gerardjean wrote:

Bonjour,

je souhaite accéder par programme VBA aux macros VBA d'un classeur xx
pour
supprimer, insérer ou modifier du code.

aucune de mes inctructions ne fonctionne (du type
workbooks(xx).vbproject
j'ai à chaque fois l'erreur 1004 qui s'affiche

Merci à toute personne qui peut m'éclairer

nb : j'utilise Excel2003 et ai activé le complément visual basic
extension 5.3


bonjour,

je ne suis pas assez calé pour une réponse exhaustive, mais voilà un
code dérivé d'une réponse fournie par "papou" sur ce forum; attention,
tel quel, c'est violent , ça efface tout code VBA. Je pense que tu
peux
t'en inspirer.

Sub SupprimeToutCodeEtFormulaire()
'*****************************************************
' attention, cette macro est violente...
'*****************************************************

Dim VBComp As Object, VBComps As Object
Dim nomClasseur As String, Nom2 As String

nomClasseur = InputBox("Nom du classeur dont on veut" _
& vbCrLf & "effacer toutes les macros et tous les formulaires
(UserForms)?)" _
& vbCrLf & "Format: monClasseur.xls" _
& vbCrLf & "Laisser en blanc pour quitter")

If nomClasseur = "" Then Exit Sub

Do While Nom2 <> nomClasseur
Nom2 = InputBox("Confirmez le nom du fichier svp" _
& vbCrLf & "Laissez en blanc pour quitter")
If nomClasseur = "" Then Exit Sub
Loop

Set VBComps = Workbooks(nomClasseur).VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case 100
With VBComp.codemodule
.deletelines 1, .countoflines
End With
Case Else
VBComps.Remove VBComp
End Select
Next
End Sub




1) as-tu bien déclaré VBComps comme Object?
2) indiques tu bien un nom du genre classeur.xls ?
Si l'erreur n'est pas là, je ne suis pas assez compétent....

Cordialement

Bourby








Avatar
Daniel
Bonsoir.
Voilà au moins une énigme de résolue ! Je n'ai pas perdu ma soirée.
Merci.
Daniel
"Clément Marcotte" a écrit dans le message
de news: %
Bonjour,

Voici le chemin pour Excel 2002. (Il est un peu différent pour Excel 2003,
mais c'est le même principe)

Outils - Options - Sécurité - Sécurité des macros - Sources fiables.

Cocher au moins "Faire confiance au projet Visual Basic

"gerardjean" a écrit dans le
message de news:
Bonjour,

je souhaite accéder par programme VBA aux macros VBA d'un classeur xx
pour
supprimer, insérer ou modifier du code.

aucune de mes inctructions ne fonctionne (du type workbooks(xx).vbproject
j'ai à chaque fois l'erreur 1004 qui s'affiche

Merci à toute personne qui peut m'éclairer

nb : j'utilise Excel2003 et ai activé le complément visual basic
extension 5.3






Avatar
gerardjean
C'est parfait, merci pour ton aide


Bonjour,

Voici le chemin pour Excel 2002. (Il est un peu différent pour Excel 2003,
mais c'est le même principe)

Outils - Options - Sécurité - Sécurité des macros - Sources fiables.

Cocher au moins "Faire confiance au projet Visual Basic

"gerardjean" a écrit dans le message
de news:
Bonjour,

je souhaite accéder par programme VBA aux macros VBA d'un classeur xx
pour
supprimer, insérer ou modifier du code.

aucune de mes inctructions ne fonctionne (du type workbooks(xx).vbproject
j'ai à chaque fois l'erreur 1004 qui s'affiche

Merci à toute personne qui peut m'éclairer

nb : j'utilise Excel2003 et ai activé le complément visual basic extension
5.3







Avatar
Lionel
Bonsoir gerardjean,

J'ai trouvé un lien sur excel-downloads, je t'invite à aller consulter la
réponse de MichelXLD sur la suppression du code :

http://www.excel-downloads.com/forums/2-111091-suppression-de-modules-via-vba.htm

Amicalement

--

"gerardjean" a écrit dans le message
de news:
Bonjour,

je souhaite accéder par programme VBA aux macros VBA d'un classeur xx
pour

supprimer, insérer ou modifier du code.

aucune de mes inctructions ne fonctionne (du type workbooks(xx).vbproject
j'ai à chaque fois l'erreur 1004 qui s'affiche

Merci à toute personne qui peut m'éclairer

nb : j'utilise Excel2003 et ai activé le complément visual basic extension
5.3


Avatar
Clément Marcotte
Donner une réponse qui ne répond pas à la question une heure et demie après
que le questionneur eût remercié pour la réponse qui fonctionne, cela
laisse perplexe.


"Lionel" a écrit dans le message de news:
43dd5516$0$6654$
Bonsoir gerardjean,

J'ai trouvé un lien sur excel-downloads, je t'invite à aller consulter la
réponse de MichelXLD sur la suppression du code :

http://www.excel-downloads.com/forums/2-111091-suppression-de-modules-via-vba.htm

Amicalement

--

"gerardjean" a écrit dans le
message
de news:
Bonjour,

je souhaite accéder par programme VBA aux macros VBA d'un classeur xx
pour

supprimer, insérer ou modifier du code.

aucune de mes inctructions ne fonctionne (du type workbooks(xx).vbproject
j'ai à chaque fois l'erreur 1004 qui s'affiche

Merci à toute personne qui peut m'éclairer

nb : j'utilise Excel2003 et ai activé le complément visual basic
extension
5.3