Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 29/06/2009, 16h43   #1
Nouveau membre du Club
 
Date d'inscription: janvier 2008
Messages: 50
Par défaut suppression de macros par macro

Re

Bon j'ai essayé mais ca ne veux pas
voici mon code test qui doit supprimer les macros de la feuille 1 se nommant monBouton1_Click(), monBouton2_Click(),....... monBouton25_Click(),

Code :
Sub Bouton223_QuandClic()
 
Dim Debut As Integer, Lignes As Integer
Dim NomMacro As String
 
NomMacro = "monBouton" & i
 
For i = 1 To 25
 
    With ThisWorkbook.VBProject.VBComponents("Feuil1").CodeModule
    Debut = .ProcStartLine(NomMacro, 0)
    Lignes = .ProcCountLines(NomMacro, 0)
    .DeleteLines Debut, Lignes
End With
 
 Next i
 
End Sub

total erreur d'execution '35'
sub ou fonction non definie a la ligne

Code :
Debut = .ProcStartLine(NomMacro, 0)
un ptit indice serait le bienvenue.
neninio31 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/06/2009, 16h47   #2
Expert Confirmé
 
Avatar de Krovax
 
Date d'inscription: juillet 2008
Localisation: Elsass
Âge: 24
Messages: 1 887
Par défaut

Est ce que tuas bien activé la référence
Microsoft Visual Basic for Applications Extensibility 5.3.
???

Je suppose que le code viens de la
A par la référence le code ma l'air bon.
Krovax est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/06/2009, 18h33   #3
Inactif(ve)
 
Avatar de ouskel'n'or
 
Date d'inscription: février 2005
Localisation: 45,10 N 5,43 E
Messages: 12 494
Par défaut

Je ne comprends pas ton code
Tu mets
Citation:
Code :
NomMacro = "monBouton" & i
avant de donner une valeur à i... Tu peux expliquer ?
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/06/2009, 23h44   #4
Nouveau membre du Club
 
Date d'inscription: janvier 2008
Messages: 50
Par défaut reference bien activée

re
oui la reference en question est bien activée sur vba

en ce qui concerne le

Code :
NomMacro = "monBouton" & i
c'est que mes macros a supprimer portent toute le même nom a savoir

private sub monBouton1_Click(),
private sub monBouton2_Click(),
.
.
.
private sub monBoutoni_Click(),


Voila j'espere avoir repondu a vos question
neninio31 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/06/2009, 04h03   #5
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 41
Messages: 14 438
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Par défaut

Bonjour

Je crois que tu n'as pas compris ce que te disait ouskel'n'or

La ligne
Code :
NomMacro = "monBouton" & i
devrait se trouver dans la boucle, car le i ne change pas à l'extérieur de celle-ci.


De plus il s'agit de procédure évènementielle sur des boutons, hors juste en mettant le nom du bouton et son numéro, cela ne devrait pas passer (en théorie), il faut une concaténation avec le click (à vérifier).

Philippe
__________________
En cas de questions techniques par MP ou message visiteur
Vous pouvez consultez mes articles sur Access et PowerPoint
Si vous avez des réalisations à faire sur le pack Office
Découvrez les nouveautés de PowerPoint 2010

Utilisez les pièces jointes avec parcimonie.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/06/2009, 09h47   #6
Nouveau membre du Club
 
Date d'inscription: janvier 2008
Messages: 50
Par défaut toujours pas ca

re
bon j'ai essayé ca

Code :
Sub Bouton223_QuandClic()
 
Dim Debut As Integer, Lignes As Integer
Dim NomMacro As String
 
NomMacro = "monBouton" & i
 
For i = 1 To 25
 
 NomMacro = "Sub monBouton" & i & "_Click()"
 
    With ThisWorkbook.VBProject.VBComponents("Feuil1").CodeModule
    Debut = .ProcStartLine(NomMacro, 0)
    Lignes = .ProcCountLines(NomMacro, 0)
    .DeleteLines Debut, Lignes
End With
 
 Next i
 
End Sub

puis ca


Code :
Sub Bouton223_QuandClic()
 
Dim Debut As Integer, Lignes As Integer
Dim NomMacro As String
 
NomMacro = "monBouton" & i
 
For i = 1 To 25
 
 NomMacro = "monBouton" & i & "_Click()"
 
    With ThisWorkbook.VBProject.VBComponents("Feuil1").CodeModule
    Debut = .ProcStartLine(NomMacro, 0)
    Lignes = .ProcCountLines(NomMacro, 0)
    .DeleteLines Debut, Lignes
End With
 
 Next i
 
End Sub
mais toujours la meme erreur d'execution '35'

sub ou fonction non définie

a la ligne

Code :
Debut = .ProcStartLine(NomMacro, 0)

Voila ou j'en suis
neninio31 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/06/2009, 09h57   #7
Inactif(ve)
 
Avatar de ouskel'n'or
 
Date d'inscription: février 2005
Localisation: 45,10 N 5,43 E
Messages: 12 494
Par défaut

Et si tu nous disais ce que tu veux obtenir, au bout du bout... Il y a peut-être une solution à laquelle tu n'as pas songé... Comme supprimer l'userform par exemple.
Pendant que j'y pense, ils sont où tes boutons ?
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/06/2009, 10h32   #8
Nouveau membre du Club
 
Date d'inscription: janvier 2008
Messages: 50
Par défaut mon objectif en detail

re
alors ayant precedemment reussi a creer dynamiquement des bouton avec macro associé grace a vous tous encore merci

ces boutons se nomment VOIR0, VOIR1 ..... VOIRi

Seulement ces boutons sont supprimés dynamiquement grace a vous encore merci

mais la suppression dynamique ne supprime pas les macros associées a savoir

Sub VOIR0_Click(), Sub VOIR1_Click() , Sub VOIRi_Click()

alors quand les boutons sont recrées il ya un conflit a cause de ces procedures qui portent le meme nom d'ou le pb de supprimer dans le code les procédures


Tout se passe dans une feuille et pas dans un userform

voila merci
neninio31 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/06/2009, 13h48   #9
Inactif(ve)
 
Avatar de ouskel'n'or
 
Date d'inscription: février 2005
Localisation: 45,10 N 5,43 E
Messages: 12 494
Par défaut

Ok. Et si tu adaptes bêhêhêhêtemement le code de la FAQ, ça donne ça qui chez moi fonctionne.
J'ai placé trois boutons sur une feuille de calculs
Le troisième me sert pour effacer les macros des deux autres
Code :
Private Sub CommandButton3_Click()
Dim NomMacro As String, Wb As Workbook
    'Nécessite d'activer la référence '"Visual basic For Application Extensibility 5.3"
    
    Set Wb = Workbooks("Classeur1.xls")
    For i = 1 To 2
        NomMacro = "CommandButton" & i & "_Click"
        SupprimerMacroPrecise Wb, "Feuil1", NomMacro
    Next
End Sub
Code :
'où mdl est le module de feuil1
Sub SupprimerMacroPrecise(Wb As Workbook, Mdl As String, NomMacro As String)
    Dim Debut As Integer, Lignes As Integer
    
    With Wb.VBProject.VBComponents(Mdl).CodeModule
        Debut = .ProcStartLine(NomMacro, 0)
        Lignes = .ProcCountLines(NomMacro, 0)
        .DeleteLines Debut, Lignes
    End With
End Sub
Tu adaptes le nom des boutons sans les parenthèses... Seulement le nom
Bon après-midi
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/06/2009, 14h29   #10
Nouveau membre du Club
 
Date d'inscription: janvier 2008
Messages: 50
Par défaut un grand merci

un grand merci a tous pour vos infos

desolé je ne suis qu'apprenti developpeur (c'est quelquechose que je refoulais)
mais j'ai été obligé de m'adonner au vba et je dois dire qu'avec ce projet de masque de saisie et l'énorme aide de ce forum je m'aperçois qu'on peut réaliser des interfaces sympatiques

Merci et a bientot pour de nouvelles aventures
neninio31 est déconnecté   Envoyer un message privé Réponse avec citation
NEWS EXCELF.A.Q EXCELTUTORIELS EXCELSOURCES EXCELOUTILS EXCELLIVRES EXCELOFFICE 2010

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 00h20.


Vos questions techniques : forum d'entraide Excel - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.