Créer un bouton et sa macro à partir d'un autre bouton

Résolu
miniyet13 Messages postés 5 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 29 avril 2009 - 27 avril 2009 à 10:52
miniyet13 Messages postés 5 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 29 avril 2009 - 29 avril 2009 à 10:48
Bonjours, je dois automatiser et optimiser un maximum une feuille de calcul. J'ai créé un bouton pour que lui même crée un bouton et lui lie une macro le seul problème c'est que ça fait 2 jours que je suis bloqué et que j'ai la même erreur le numéro 9 et je ne sais pas quoi faire voila mon code si quelqu'un peux m'aider
 je le remercierai infiniment
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>Private Sub CommandButton5_Click()





Dim X As Byte
Dim ScCode As String
Dim NextLine As String
Dim oOLE As OLEObject
Sheets("détail").Select


Z = Sheets(2).Cells(5, 9)       ' c'est une variable qui donne le nombre de bouton que l'on veut créer'


For i = 1 To Z - 1


B = 115 + (i * 905)


Set oOLE = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Link:=False, DisplayAsIcon:=False, Left:=737, Top:=B, Width:=100, Height:=60)




X = ActiveSheet.OLEObjects.Count




oOLE.Name = "CommandButton" & X




A = 10 + (65 * i)


ActiveSheet.OLEObjects(X).Object.Caption = "Détail électrique"
ScCode = "Sub CommandButton" & X & "_Click()" & vbCrLfScCode ScCode & "ActiveWindow.ScrollColumn" & 47 & vbCrLfScCode ScCode & "ActiveWindow.ScrollRow" & A & vbCrLf
ScCode = ScCode & "End Sub"


With Sheets("feuil4").CodeSource


  Y = .CountOfLines
    .InsertLines Y + i, ScCode


 
End With


Next i


End Sub

6 réponses

miniyet13 Messages postés 5 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 29 avril 2009
29 avril 2009 à 10:48
J'ai trouvé finalemetn pourquoi ça ne marchait pas car du moin mon excel ne veut pas créer un bouton et faire la macro en même temps donc j'ai fait deux bouton un pour pour créer les bouton que je voulais et un autre pour leur affecter la macro
rivate Sub CommandButton5_Click()



création des boutons



Dim X As Integer
Dim A As Integer
Dim ScCode As String
Dim NextLine As String
Dim oOLE As OLEObject




Z = Sheets(2).Cells(5, 9)


For i = 1 To Z - 1


B = 115 + (i * 905)


Set oOLE = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Left:=737, Top:=B, Width:=100, Height:=60)


X = 7 + i


oOLE.Name = "CommandButton" & X


A = 10 + (65 * i)


oOLE.Object.Caption = "Détail électrique"


Next i
End Sub

insertion de leur de macro

Private Sub CommandButton7_Click()



Z = Sheets(2).Cells(5, 9)



For i = 1 To Z - 1
X = 7 + i
A = 10 + (64 * i)



ScCode "Sub CommandButton" & X & "_Click()" & vbNewLine & "ActiveWindow.ScrollColumn" & 39 & vbNewLine & "ActiveWindow.ScrollRow =" & A & vbNewLine & "End Sub"



With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule



    Y = .CountOfLines
    .InsertLines Y + i, ScCode
End With



Next i
End Sub
3
Genildf Messages postés 270 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 30 décembre 2015 1
27 avril 2009 à 11:02
Dans ton debogage s' sarrete sur quelle ligne?
0
miniyet13 Messages postés 5 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 29 avril 2009
27 avril 2009 à 11:52
Il y a une erreur à partir du with car si j'enleve cette parti il me créer les boutons sans les macros
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
27 avril 2009 à 16:48
Salut,

- la "feuil4" existe t'elle dans ton fichier ? il me semble que c'est bien la feuille active qui devrait recevoir ce code
- la reference "Microsoft Visual Basic For Applications Extensibility 5.3" est elle cochée ?

".CodeSource" ? connais pas !... ce qui me conforte dans l'idée que la réference n'est pas cochée

Donc le with je l'ecrirais comme ceci

With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
    Y = .CountOfLines
    .InsertLines Y + i, ScCode
End With
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
miniyet13 Messages postés 5 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 29 avril 2009
28 avril 2009 à 12:14
J'ai coché "Microsoft Visual Basic For Applications Extensibility 5.3" et j'ai mis le code que tu m'a passé mais je me retrouve toujours avec une erreur numéros 9
En faite je pense qu'il y avit plussieur probleme car lorsque je fait un déboguage pas à pas il me dit qu'il a un problemen juste apres le le SET et il me dit "impossible d'entrer en mode arret maintenant" Je ne comprend pas car lorsque je le lance sans le with et que je met simplement lecture il marche. Je suis un peu perdu !!!
0
miniyet13 Messages postés 5 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 29 avril 2009
28 avril 2009 à 17:23
Finalement j'ai juste un probleme qui apparait c'est qu'il m'écrit le ScCode dans la feuil1 et moi je le veux dans la feuil 4 et je suis bloqué déja merci pour l'aide
0
Rejoignez-nous