Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

commandbuttons recalcitrants a la prog !

5 réponses
Avatar
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

5 réponses

Avatar
MichDenis
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" a écrit dans le message de news:
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
Avatar
tissot.emmanuel
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" a écrit dans le message de news:
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





Avatar
Daniel
Bonjour.
Remplace :
cb = f & c & i
par :
Set cb = ActiveSheet.Shapes(c & i)
Cordialement.
Daniel
"Lionel" a écrit dans le message de news:
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





Avatar
Lionel
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" a écrit dans le message de news:

Bonjour.
Remplace :
cb = f & c & i
par :
Set cb = ActiveSheet.Shapes(c & i)
Cordialement.
Daniel
"Lionel" a écrit dans le message de news:
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










Avatar
tissot.emmanuel
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" a écrit dans le message de news:
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" a écrit dans le message de news:

Bonjour.
Remplace :
cb = f & c & i
par :
Set cb = ActiveSheet.Shapes(c & i)
Cordialement.
Daniel
"Lionel" a écrit dans le message de news:
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