commandbuttons recalcitrants a la prog !

Le
Lionel
bonjour
sur une page j'ai plusieurs boutons auxquels je veux des l'ouverture(
workbook_open ) donner leur valeurs height, width et top.
seulement le code suivant me renvoit une erreur 424 je ne vois pas
Merci de m'aider
Lionel

Sub stdbut()
c = "CommandButton"
f = "ActiveSheet."
For i = 4 To 57
If i < 4 And i < 15 Then GoTo fin:
If i = 19 Then GoTo fin:
If i = 21 Then GoTo fin:
cb = f & c & i
cb.Width = 81.75
cb.Height = 23.25
If i = 4 Or i = 15 Or i = 16 Or i = 17 Or i = 18 Or i = 19 Or i = 20 Or i =
22 Then cb.Top = 196.5

next
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #4482291
Une procédure qui boucle sur TOUS les objets contenus
dans ta feuille et identifie seulement les "commandButton" de cette dernière
Et selon l'index de ceux-ci, tu définiras ce qui doit se passer ....
je n'ai pas compris ce que tu voulais faire

'------------------------------------
Sub test()

Dim Obj As Object
Dim Sh As Object, F As Worksheet

On Error Resume Next

Set F = Worksheets("Feuil1") 'Nom à adapter

For Each Sh In F.Shapes
Set Obj = Sh.OLEFormat.Object.Object
'test pour déterminer si l'objet est un bouton de commande
If TypeName(Obj) = "CommandButton" Then
'Détermine l'index de tes boutons de commande
Select Case CInt(Application.Substitute(Sh.Name, "CommandButton", ""))
'pour tous les index des boutons de commandes
'portant le numéro de 4 à 15 inclusivement + 19 +21
Case 4 To 15, 19, 21
'tu définis ce qui doit se passer
MsgBox Sh.Name

Case Else
'Et Pour tous les autres numéros
' définir la largeur, hauteur, haut et gauche
'du bouton de commande.
With Sh
.Width = 65
.Height = 20
'Localisation dans la feuille à l'aide
'd'une cellule
.Top = F.Range("G5").Top
.Left = F.Range("G5").Left
End With
End Select
End If
Next

End Sub
'------------------------------------



"Lionel" 4634919f$0$27387$
bonjour
sur une page j'ai plusieurs boutons auxquels je veux des l'ouverture(
workbook_open ) donner leur valeurs height, width et top.
seulement le code suivant me renvoit une erreur 424 je ne vois pas ...
Merci de m'aider
Lionel

Sub stdbut()
c = "CommandButton"
f = "ActiveSheet."
For i = 4 To 57
If i < 4 And i < 15 Then GoTo fin:
If i = 19 Then GoTo fin:
If i = 21 Then GoTo fin:
cb = f & c & i
cb.Width = 81.75
cb.Height = 23.25
If i = 4 Or i = 15 Or i = 16 Or i = 17 Or i = 18 Or i = 19 Or i = 20 Or i 22 Then cb.Top = 196.5
......
next
tissot.emmanuel
Le #4482281
Bonjour,

c = "CommandButton"
f = "ActiveSheet."
cb = f & c & i


D'apres ton code cb n'est qu'une chaine de caracteres et non une variable de
type CommandButton.

Si tu connais le nom de tes CommandButton tu peux essayer ainsi:

With Worksheets("NomDeLaFeuille")
With .Shapes("NomBouton1")
.Width = 81.75
.Height = 23.25
End With
'Etc
End With

N'étant pas utilisateur forcené de boutons sur les feuilles je ne saurais
t'aider plus, bon courage.

Manu/

"Lionel" 4634919f$0$27387$
bonjour
sur une page j'ai plusieurs boutons auxquels je veux des l'ouverture(
workbook_open ) donner leur valeurs height, width et top.
seulement le code suivant me renvoit une erreur 424 je ne vois pas ...
Merci de m'aider
Lionel

Sub stdbut()
c = "CommandButton"
f = "ActiveSheet."
For i = 4 To 57
If i < 4 And i < 15 Then GoTo fin:
If i = 19 Then GoTo fin:
If i = 21 Then GoTo fin:
cb = f & c & i
cb.Width = 81.75
cb.Height = 23.25
If i = 4 Or i = 15 Or i = 16 Or i = 17 Or i = 18 Or i = 19 Or i = 20 Or i
22 Then cb.Top = 196.5
......

next





Daniel
Le #4482241
Bonjour.
Remplace :
cb = f & c & i
par :
Set cb = ActiveSheet.Shapes(c & i)
Cordialement.
Daniel
"Lionel" 4634919f$0$27387$
bonjour
sur une page j'ai plusieurs boutons auxquels je veux des l'ouverture(
workbook_open ) donner leur valeurs height, width et top.
seulement le code suivant me renvoit une erreur 424 je ne vois pas ...
Merci de m'aider
Lionel

Sub stdbut()
c = "CommandButton"
f = "ActiveSheet."
For i = 4 To 57
If i < 4 And i < 15 Then GoTo fin:
If i = 19 Then GoTo fin:
If i = 21 Then GoTo fin:
cb = f & c & i
cb.Width = 81.75
cb.Height = 23.25
If i = 4 Or i = 15 Or i = 16 Or i = 17 Or i = 18 Or i = 19 Or i = 20 Or i
22 Then cb.Top = 196.5
......

next





Lionel
Le #4482031
Rebonsoir

Ca ne fonctionne pas ...
il y a 42 boutons 7colonnes de 6 lignes
le but est de les aligner en leur donnant une dimension similaire...
voici donc tout mon code peut etre y verrez vous un peu plus clair

Sub stdbut()
Dim cb As Object
Sheets("Accueil").Activate
c = "CommandButton"
f = "ActiveSheet."
For i = 4 To 57
If i < 4 And i < 15 Then GoTo fin:
If i = 19 Then GoTo fin:
If i = 21 Then GoTo fin:
Set cb = ActiveSheet.Shapes(c & i)
With cb.Name
.Width = 81.75
.Height = 23.25
End With
If i = 4 Or i = 15 Or i = 16 Or i = 17 Or i = 18 Or i = 19 Or i = 20 Or i 22 Then cb.Top = 196.5
If i > 22 And i < 30 Then cb.Top = 218.25
If i > 29 And i < 37 Then cb.Top = 240
If i > 36 And i < 44 Then cb.Top = 261.75
If i > 43 And i < 51 Then cb.Top = 283.5
If i > 50 And i < 58 Then cb.Top = 306
If i = 4 Or i = 23 Or i = 30 Or i = 37 Or i = 44 Or i = 51 Then cb.Left 120.75
If i = 15 Or i = 24 Or i = 31 Or i = 38 Or i = 45 Or i = 52 Then cb.Left 201
If i = 16 Or i = 25 Or i = 32 Or i = 39 Or i = 46 Or i = 53 Then cb.Left 282
If i = 17 Or i = 26 Or i = 33 Or i = 40 Or i = 47 Or i = 54 Then cb.Left 363
If i = 18 Or i = 27 Or i = 34 Or i = 41 Or i = 48 Or i = 55 Then cb.Left 444

fin:
Next
End Sub
"Daniel"
Bonjour.
Remplace :
cb = f & c & i
par :
Set cb = ActiveSheet.Shapes(c & i)
Cordialement.
Daniel
"Lionel" 4634919f$0$27387$
bonjour
sur une page j'ai plusieurs boutons auxquels je veux des l'ouverture(
workbook_open ) donner leur valeurs height, width et top.
seulement le code suivant me renvoit une erreur 424 je ne vois pas ...
Merci de m'aider
Lionel

Sub stdbut()
c = "CommandButton"
f = "ActiveSheet."
For i = 4 To 57
If i < 4 And i < 15 Then GoTo fin:
If i = 19 Then GoTo fin:
If i = 21 Then GoTo fin:
cb = f & c & i
cb.Width = 81.75
cb.Height = 23.25
If i = 4 Or i = 15 Or i = 16 Or i = 17 Or i = 18 Or i = 19 Or i = 20 Or
i


22 Then cb.Top = 196.5
......


next










tissot.emmanuel
Le #4482011
Bonsoir,

J'espere que ceci te mettra sur la voie:

Sub CreationBouton()
Dim i As Integer, j As Integer, w As Single, h As Single
w = 81.75 'Largeur des boutons
h = 23.25 'Hauteur des boutons
With Worksheets("Feuil1").Shapes 'Modifier le nom de la feuille
For j = 1 To 6 '6 lignes
For i = 1 To 7 '7 colonnes
.AddOLEObject Left: + (i - 1) * w, Top:6 + (j - 1) *
h, Width:=w, Height:=h, _
ClassType:="Forms.CommandButton.1"
Next
Next
End With
End Sub

Sub SuppressionBoutons()
On Error GoTo Fin 'En supposant qu'il n'y ait pas d'autres controles sur
la feuille
With Worksheets("Feuil1").Shapes 'Modifier le nom de la feuille
Do
.Item(1).Delete
Loop
End With
Fin:
End Sub


Bonne chance,

Manu/

PS: 42 boutons sur une feuille cela vaut peut etre le coup de passer par un
UserForm bien plus facile a manipuler.


"Lionel" 46350a67$0$27384$
Rebonsoir

Ca ne fonctionne pas ...
il y a 42 boutons 7colonnes de 6 lignes
le but est de les aligner en leur donnant une dimension similaire...
voici donc tout mon code peut etre y verrez vous un peu plus clair

Sub stdbut()
Dim cb As Object
Sheets("Accueil").Activate
c = "CommandButton"
f = "ActiveSheet."
For i = 4 To 57
If i < 4 And i < 15 Then GoTo fin:
If i = 19 Then GoTo fin:
If i = 21 Then GoTo fin:
Set cb = ActiveSheet.Shapes(c & i)
With cb.Name
.Width = 81.75
.Height = 23.25
End With
If i = 4 Or i = 15 Or i = 16 Or i = 17 Or i = 18 Or i = 19 Or i = 20 Or i
22 Then cb.Top = 196.5
If i > 22 And i < 30 Then cb.Top = 218.25

If i > 29 And i < 37 Then cb.Top = 240
If i > 36 And i < 44 Then cb.Top = 261.75
If i > 43 And i < 51 Then cb.Top = 283.5
If i > 50 And i < 58 Then cb.Top = 306
If i = 4 Or i = 23 Or i = 30 Or i = 37 Or i = 44 Or i = 51 Then cb.Left > 120.75
If i = 15 Or i = 24 Or i = 31 Or i = 38 Or i = 45 Or i = 52 Then cb.Left > 201
If i = 16 Or i = 25 Or i = 32 Or i = 39 Or i = 46 Or i = 53 Then cb.Left > 282
If i = 17 Or i = 26 Or i = 33 Or i = 40 Or i = 47 Or i = 54 Then cb.Left > 363
If i = 18 Or i = 27 Or i = 34 Or i = 41 Or i = 48 Or i = 55 Then cb.Left > 444

fin:
Next
End Sub
"Daniel"
Bonjour.
Remplace :
cb = f & c & i
par :
Set cb = ActiveSheet.Shapes(c & i)
Cordialement.
Daniel
"Lionel" 4634919f$0$27387$
bonjour
sur une page j'ai plusieurs boutons auxquels je veux des l'ouverture(
workbook_open ) donner leur valeurs height, width et top.
seulement le code suivant me renvoit une erreur 424 je ne vois pas ...
Merci de m'aider
Lionel

Sub stdbut()
c = "CommandButton"
f = "ActiveSheet."
For i = 4 To 57
If i < 4 And i < 15 Then GoTo fin:
If i = 19 Then GoTo fin:
If i = 21 Then GoTo fin:
cb = f & c & i
cb.Width = 81.75
cb.Height = 23.25
If i = 4 Or i = 15 Or i = 16 Or i = 17 Or i = 18 Or i = 19 Or i = 20 Or
i


22 Then cb.Top = 196.5
......



next















Publicité
Poster une réponse
Anonyme