Vous allez m`excuser je travail avec excel en anglais, donc la terminologie sera anglaise.
J`ai un petit probleme lorsque je fais un boutton et que je le nomme cmdRunForm et je l`associe a un evenement (click) qui appelle auto_open.
Si part accident je delete ce boutton, lorsque viens le temps de reecree ce boutton je ne peux le renomme cmdRunForm pour l`instant j`incremente par exemple cmdRunForm1....
J`ai fais sur qu`il n`y avait plus de reference cmdRunForm, on dirait que excel 2003 reconnait que j`ai deja utiliser ce nom. Un peu agacant....
Si je ne suis pas claire, je peux vous envoyer le code et/ou y-a-t`il moyen de faire une boucle pour lister les objets bouttons (autoshape) sur ma feuille de travail.
Bon j'ai trouve comment looper au travers, donc si vous pouvez m'aider avec la premiere partie
Code:
Sub test()
For Each i In ActiveSheet.Shapes
a = ActiveSheet.Shapes(i.Name).Name
MsgBox a
Next i
End Sub
merci Chris je suis a la maison je regarde le tout au bureau, mais de memoire je crois que non. Plus que je pense, plus je crois que le boutton est cacher et non supprimer.
Sub test()
For Each i In ActiveSheet.Shapes
a = ActiveSheet.Shapes(i.Name).Name
MsgBox a
Next i
End Sub
Le message box retourne cmdRunForm4, cmdRunForm5, et cmdRunForm6
Cependant lorsque j'utilise ce code
Code:
Public Sub button_visible()
Dim oleobj As OLEObject
For Each oleobj In ActiveSheet.OLEObjects
If oleobj.progID = "Forms.CommandButton.1" Then
'oleobj.Visible = Not oleobj.Visible
'a = oleobj.Name
oleobj.Visible = True
End If
Next oleobj
End Sub
Les boutons 4 et 5 demeure invisible et celui cmdRunForm6 est present, j'ai meme utilise oleobj.delete sans succes
Juste pour info et pour éviter un claquage de l'index à force de cliquer sur OK, sors la msgbox de la boucle
Code:
Sub test()
For Each i In ActiveSheet.Shapes
a = a & ActiveSheet.Shapes(i.Name).Name & vbCrLf
Next i
MsgBox a
End Sub
Sinon, si tu en as la possibilité (ou alors fais le test sur une copie de ton fichier)
supprimes la feuille sur laquelle sont ces objets récalcitrants
puis insères une nouvelle feuille
Que se passe-t-il si tu essaies d'ajouter un nouveau CommandButton ?
Finalement je reuissi a les supprimer en utilisant ceci
Code:
Public Sub ToggleActiveXButtons()
Dim oleobj As OLEObject
For Each oleobj In ActiveSheet.OLEObjects
If oleobj.progID = "Forms.CommandButton.1" Then
oleobj.Delete
End If
Next oleobj
End Sub