"tapis" de macro

Résolu
taj88 Messages postés 113 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 28 août 2007 - 20 juin 2007 à 16:55
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 21 juin 2007 à 20:30
Bonjour, voilà c'est fais un petit code afin de remplir ma page de CommandButton :

Public i As Integer
Public j As Integer
Public k As Integer


Sub Macro1()


For i = 0 To 5 (i et j pouvant varier jusquà "beaucoup" pour remplir la page excel)
    For j = 0 To 5
    ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=True _
        , DisplayAsIcon:=False, Left:=0 + 10 * j, Top:=10 * i, Width:=10, Height:=10). _
        Select
    Next j
   
    ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=True _
        , DisplayAsIcon:=False, Left:=10 * j, Top:=0 + 10 * i, Width:=10, Height:=10). _
        Select
Next i
End Sub

Malheuresement lors de ctte création, les boutons sont gris (de base) et j'aimerais les rendre transparent, à mon avis il faut rajouter quelquechose du genre:

 BackStyle:=0 - fmBackStyleTransparent (c'est ce que j'ai touvé dans les propriété des commandButton) quelque part.

J'ai essayé de le mettre dans


 ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=True _
        , DisplayAsIcon:=False, Left:=10 * j, Top:=0 + 10 * i, Width:=10, Height:=10, BackStyle:=0 - fmBackStyleTransparent ). _
        Select

Mais ca marche pas, quelqu'un aurait t'il une idée.

De plus (pour corser la chose ), j'aimerais que lorsque ce fait la création du bouton un code lui soit assossier : DéfinirCoordonnées "nom du bouton" où DéfinirCoordonnées et un sous prgm dans mon code, pour avoir dans le code de la page un truc du genre :

Private Sub CommandButton1_Click()


DéfinirCoordonnées CommandButton1


End Sub


Private Sub CommandButton2_Click()


DéfinirCoordonnées CommandButton2


End Sub




Private Sub CommandButton3_Click()


DéfinirCoordonnées CommandButton3


End Sub

A chaque fois qu'il créer un CommandButton, il associe DéfinirCoordonnées CommandButtonX (X=1,2,3...)avec le bon X correspondant.

Voilà, en fait j'ai deux question: sur la transparence du bouton et l'aasovciation du code.
Ca fait quelques heures que je "trifouille le code et je suis coincé.......

Je viens de découvrir le bonheur de programmer et le VB me le rend bien

13 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 juin 2007 à 17:00
manipules ton bouton après sa création...

Set Obj = ActiveSheet.OLEObjects.Add(...)
Obj.BackStyle = ...

juste dans l'idée, ce que je te files, pas testé ^^

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
21 juin 2007 à 08:51
salut julien,

sous 2003, ça marche nickel :

    Dim Obj As New OLEObject

Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
        , DisplayAsIcon:=False, Left:=50,
Top:=50,
Width:=200,
Height:=40)

Obj.Object.BackColor = vbRed

~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 juin 2007 à 09:04
Re,
Oups autant pour moi.

Je sais pas ce que j'ai fait mais oui ca marche. En revanche il y a truc bizarre.
Il veux placer BackStyle à 0 - fmBackStyleTransparent , mais une fois que tu cliques sur le bouton ajouté, et bien il reprend un BackStyle = 1

Dim Obj As New OLEObject

Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
       , DisplayAsIcon:=False, Left:=50, Top:=50, Width:=200, Height:=40)

Obj.Object.BackStyle = 0, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
20 juin 2007 à 18:05
l'idée est correcte 

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0

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

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 juin 2007 à 08:07
Salut,
Bah moi j'ai pas réussi à le testé ainsi...

@+: Ju£i?n
Pensez: Réponse acceptée
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
21 juin 2007 à 09:24
Cette propriété ne s'applique pas sur un contrôle positionné sur une feuille, seulement sur un objet container.
Je pense que ça doit être compliquer pour M$ de déterminer le quadrillage des cellules, le texte insérer dedans, tout ça par transparence.
C'est comme tooltiptext, impossible à faire au survol des cellules.

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 juin 2007 à 09:28
Salut,
Mais à l'ajout le bouton est bien transparent pourtant.

@+: Ju£i?n
Pensez: Réponse acceptée
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
21 juin 2007 à 09:31
Nop, il est pas transparent, il a temporairement le BorderStyle à 0. Sûrement un bug.

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
21 juin 2007 à 09:33
j'ai dit  Sûrement un bug.

^^  où justement parce qu'il ne sait pas gérer la transparence, il "compense" avec l'autre propriété. Enfin, j'en sais rien en fait

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 juin 2007 à 09:46
Dim Obj As <strike>New</strike>OLEObject



puisque tu fais un Set juste en dessous ^^

enfin, ne change rien au coté non transparent de la chose, ma connaissance de l'environnement ne me permet pas de répondre quoi que ce soit....

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
taj88 Messages postés 113 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 28 août 2007
21 juin 2007 à 09:54
Salut,
merci pour va aide je suis enfin arriver à rendre les boutons transparent :
en fait dans ma boucle j'ai rajouter

Selection.Object.BackStyle = 0 - fmBackStyleTransparent
Selection.ShapeRange.Fill.Visible = msoFalse

Merci à tous. Premier problème réglé !

Part contre mon deuxième problème et que j'aimerais copié "automatiquement" dans le code de chaque CommandButton :

DéfinirCoordonnées CommandButtonX (ou X est remplacé automatiquement par le numéro de bouton associé) pour avoir un truc du genre:

Private Sub CommandButton1_Click()
DéfinirCoordonnées CommandButton1

End Sub

En fait j'aimerais faire cela car avec ce"tapis" de boutons, je veux pas copié DéfinirCoordonnées CommandButton des centaines de fois (une fois par commandbutton) tout en changeant le numéro à chaque ( X ) pour que ce soit bien celui du Command Button

Vous semble t-il possible de réaliser un tel "copieur de formule automatique et adaptable au nom deu command button"?

Je viens de découvrir le bonheur de programmer et le VB me le rend bien
0
taj88 Messages postés 113 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 28 août 2007
21 juin 2007 à 11:10
Je viens de découvrir le bonheur de programmer et le VB me le rend bien
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
21 juin 2007 à 20:30
Renfield,

c'est ce que j'avais fait avant, mais chez moi, sans le New, il m'en crée 2 ??
Celui avec propriété Backcolor au rouge et aux bonnes dimensions, + un au milieu de la feuille de couleur "fond de fenêtre".

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0
Rejoignez-nous