Créer un bouton et sa macro à partir d'un autre bouton [Résolu]

Signaler
Messages postés
5
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
29 avril 2009
-
Messages postés
5
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
29 avril 2009
-
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

Messages postés
5
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
29 avril 2009

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
Messages postés
273
Date d'inscription
lundi 12 janvier 2009
Statut
Membre
Dernière intervention
30 décembre 2015
1
Dans ton debogage s' sarrete sur quelle ligne?
Messages postés
5
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
29 avril 2009

Il y a une erreur à partir du with car si j'enleve cette parti il me créer les boutons sans les macros
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
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
Messages postés
5
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
29 avril 2009

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 !!!
Messages postés
5
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
29 avril 2009

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