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

même taille à tous les objets

10 réponses
Avatar
gilles
Bonjour à tous,
sur un onglet j'ai une multitude de zones de texte
j'aimerais leur donner à tous les mêmes dimensions et caractéristiques, cest
à dire:
même longueur largeur
même police de texte
même motif
j'ai pitoyablement essayé avec un truc comme ça:

Sub Taille_objets()
ActiveSheet.DrawingObjects.Select
'For Each DrawingObject In ActiveSheet
For Each Object In ActiveSheet

With Object
' .Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 2
'Autosize ou hauteur et largeur
.Height = 20.5
.Width = 70.5
.AutoSize = True
End With
Next
End Sub

...mais le detecteur de nullité de mon PC ne m'a fait aucun cadeau!!!
Si kekun de savant (de marseille ou d'ailleurs) peut m'aider la dessus...
un grand merci
Gilles

10 réponses

Avatar
MichDenis
Bonjour Gilles,

Essaie ce cette façon en adaptant le nom de la feuille
selon ton application.

'-------------------------------------
Sub Taille_objets()

Dim Sh As Shape
With Worksheets("Feuil1")
For Each Sh In Feuil1.Shapes
If TypeName(Sh.OLEFormat.Object) = "TextBox" Then
With Sh
.Height = 20.5
.Width = 70.5
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.TextFrame.AutoSize = True
End With
End If
Next
End With
End Sub
'-------------------------------------

"gilles" a écrit dans le message de groupe de
discussion :
Bonjour à tous,
sur un onglet j'ai une multitude de zones de texte
j'aimerais leur donner à tous les mêmes dimensions et caractéristiques, cest
à dire:
même longueur largeur
même police de texte
même motif
j'ai pitoyablement essayé avec un truc comme ça:

Sub Taille_objets()
ActiveSheet.DrawingObjects.Select
'For Each DrawingObject In ActiveSheet
For Each Object In ActiveSheet

With Object
' .Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 2
'Autosize ou hauteur et largeur
.Height = 20.5
.Width = 70.5
.AutoSize = True
End With
Next
End Sub

...mais le detecteur de nullité de mon PC ne m'a fait aucun cadeau!!!
Si kekun de savant (de marseille ou d'ailleurs) peut m'aider la dessus...
un grand merci
Gilles
Avatar
MichDenis
N.B - Autosize et vouloir définir les dimensions
avec les propriétés Height et Width, c'est contradictoire
je les ai insérés dans la procédure pour te montrer comment
les utilisés, mais il te faudra choisir !


"MichDenis" a écrit dans le message de groupe de discussion :

Bonjour Gilles,

Essaie ce cette façon en adaptant le nom de la feuille
selon ton application.

'-------------------------------------
Sub Taille_objets()

Dim Sh As Shape
With Worksheets("Feuil1")
For Each Sh In Feuil1.Shapes
If TypeName(Sh.OLEFormat.Object) = "TextBox" Then
With Sh
.Height = 20.5
.Width = 70.5
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.TextFrame.AutoSize = True
End With
End If
Next
End With
End Sub
'-------------------------------------

"gilles" a écrit dans le message de groupe de
discussion :
Bonjour à tous,
sur un onglet j'ai une multitude de zones de texte
j'aimerais leur donner à tous les mêmes dimensions et caractéristiques, cest
à dire:
même longueur largeur
même police de texte
même motif
j'ai pitoyablement essayé avec un truc comme ça:

Sub Taille_objets()
ActiveSheet.DrawingObjects.Select
'For Each DrawingObject In ActiveSheet
For Each Object In ActiveSheet

With Object
' .Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 2
'Autosize ou hauteur et largeur
.Height = 20.5
.Width = 70.5
.AutoSize = True
End With
Next
End Sub

...mais le detecteur de nullité de mon PC ne m'a fait aucun cadeau!!!
Si kekun de savant (de marseille ou d'ailleurs) peut m'aider la dessus...
un grand merci
Gilles
Avatar
gilles
Merci Michel
je regarde ça tout de suite...
Gilles
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...


"MichDenis" a écrit :

N.B - Autosize et vouloir définir les dimensions
avec les propriétés Height et Width, c'est contradictoire
je les ai insérés dans la procédure pour te montrer comment
les utilisés, mais il te faudra choisir !


"MichDenis" a écrit dans le message de groupe de discussion :

Bonjour Gilles,

Essaie ce cette façon en adaptant le nom de la feuille
selon ton application.

'-------------------------------------
Sub Taille_objets()

Dim Sh As Shape
With Worksheets("Feuil1")
For Each Sh In Feuil1.Shapes
If TypeName(Sh.OLEFormat.Object) = "TextBox" Then
With Sh
.Height = 20.5
.Width = 70.5
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.TextFrame.AutoSize = True
End With
End If
Next
End With
End Sub
'-------------------------------------

"gilles" a écrit dans le message de groupe de
discussion :
Bonjour à tous,
sur un onglet j'ai une multitude de zones de texte
j'aimerais leur donner à tous les mêmes dimensions et caractéristiques, cest
à dire:
même longueur largeur
même police de texte
même motif
j'ai pitoyablement essayé avec un truc comme ça:

Sub Taille_objets()
ActiveSheet.DrawingObjects.Select
'For Each DrawingObject In ActiveSheet
For Each Object In ActiveSheet

With Object
' .Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 2
'Autosize ou hauteur et largeur
.Height = 20.5
.Width = 70.5
.AutoSize = True
End With
Next
End Sub

....mais le detecteur de nullité de mon PC ne m'a fait aucun cadeau!!!
Si kekun de savant (de marseille ou d'ailleurs) peut m'aider la dessus...
un grand merci
Gilles




Avatar
gilles
Michel,
Nickel, avec toutefois ces questions:
- si je l'applique à des objets dans lesquels j'applique du texte, en
remplaçant "textbox"par "Rectangle", ça ne marche pas (j'ai placé des textbox
et des rectangles sur la feuille)
- Si un des textbox possède des dimensions qui conviendraient aux autres,
comment récupérer ses dimensions(à part propriétés, noter les dimensions, et
modifier dans le code de la macro) ?
Merci encore
Gilles
"MichDenis" a écrit :

N.B - Autosize et vouloir définir les dimensions
avec les propriétés Height et Width, c'est contradictoire
je les ai insérés dans la procédure pour te montrer comment
les utilisés, mais il te faudra choisir !


"MichDenis" a écrit dans le message de groupe de discussion :

Bonjour Gilles,

Essaie ce cette façon en adaptant le nom de la feuille
selon ton application.

'-------------------------------------
Sub Taille_objets()

Dim Sh As Shape
With Worksheets("Feuil1")
For Each Sh In Feuil1.Shapes
If TypeName(Sh.OLEFormat.Object) = "TextBox" Then
With Sh
.Height = 20.5
.Width = 70.5
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.TextFrame.AutoSize = True
End With
End If
Next
End With
End Sub
'-------------------------------------

"gilles" a écrit dans le message de groupe de
discussion :
Bonjour à tous,
sur un onglet j'ai une multitude de zones de texte
j'aimerais leur donner à tous les mêmes dimensions et caractéristiques, cest
à dire:
même longueur largeur
même police de texte
même motif
j'ai pitoyablement essayé avec un truc comme ça:

Sub Taille_objets()
ActiveSheet.DrawingObjects.Select
'For Each DrawingObject In ActiveSheet
For Each Object In ActiveSheet

With Object
' .Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 2
'Autosize ou hauteur et largeur
.Height = 20.5
.Width = 70.5
.AutoSize = True
End With
Next
End Sub

....mais le detecteur de nullité de mon PC ne m'a fait aucun cadeau!!!
Si kekun de savant (de marseille ou d'ailleurs) peut m'aider la dessus...
un grand merci
Gilles




Avatar
MichDenis
Ce qui suit applique les propriétés aux "Rectangles" et aux "Zones de Texte"
de la feuille.

Pour récupérer les dimensions d'une shape,
Il faut d'abord son nom
With worksheets("Feuil1")
Largeur = .Shapes("SonNom").Width
Hauteur = .Shapes("SonNom").Height
end with

'-----------------------------------
Sub Taille_objets()

Dim Sh As Shape
With Feuil1
For Each Sh In Feuil1.Shapes
Select Case TypeName(Sh.OLEFormat.Object)
Case Is = "TextBox", "Rectangle"
With Sh
.Height = 20.5
.Width = 70.5
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.TextFrame.AutoSize = True
End With
End Select
Next
End With
End Sub
'-----------------------------------



"gilles" a écrit dans le message de groupe de
discussion :
Michel,
Nickel, avec toutefois ces questions:
- si je l'applique à des objets dans lesquels j'applique du texte, en
remplaçant "textbox"par "Rectangle", ça ne marche pas (j'ai placé des textbox
et des rectangles sur la feuille)
- Si un des textbox possède des dimensions qui conviendraient aux autres,
comment récupérer ses dimensions(à part propriétés, noter les dimensions, et
modifier dans le code de la macro) ?
Merci encore
Gilles
"MichDenis" a écrit :

N.B - Autosize et vouloir définir les dimensions
avec les propriétés Height et Width, c'est contradictoire
je les ai insérés dans la procédure pour te montrer comment
les utilisés, mais il te faudra choisir !


"MichDenis" a écrit dans le message de groupe de discussion :

Bonjour Gilles,

Essaie ce cette façon en adaptant le nom de la feuille
selon ton application.

'-------------------------------------
Sub Taille_objets()

Dim Sh As Shape
With Worksheets("Feuil1")
For Each Sh In Feuil1.Shapes
If TypeName(Sh.OLEFormat.Object) = "TextBox" Then
With Sh
.Height = 20.5
.Width = 70.5
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.TextFrame.AutoSize = True
End With
End If
Next
End With
End Sub
'-------------------------------------

"gilles" a écrit dans le message de groupe de
discussion :
Bonjour à tous,
sur un onglet j'ai une multitude de zones de texte
j'aimerais leur donner à tous les mêmes dimensions et caractéristiques, cest
à dire:
même longueur largeur
même police de texte
même motif
j'ai pitoyablement essayé avec un truc comme ça:

Sub Taille_objets()
ActiveSheet.DrawingObjects.Select
'For Each DrawingObject In ActiveSheet
For Each Object In ActiveSheet

With Object
' .Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 2
'Autosize ou hauteur et largeur
.Height = 20.5
.Width = 70.5
.AutoSize = True
End With
Next
End Sub

....mais le detecteur de nullité de mon PC ne m'a fait aucun cadeau!!!
Si kekun de savant (de marseille ou d'ailleurs) peut m'aider la dessus...
un grand merci
Gilles




Avatar
MichDenis
Ceci :
With Feuil1
For Each Sh In Feuil1.Shapes

On devrait plutôt lire :

With Feuil1
For Each Sh In .Shapes




"MichDenis" a écrit dans le message de groupe de discussion :

Ce qui suit applique les propriétés aux "Rectangles" et aux "Zones de Texte"
de la feuille.

Pour récupérer les dimensions d'une shape,
Il faut d'abord son nom
With worksheets("Feuil1")
Largeur = .Shapes("SonNom").Width
Hauteur = .Shapes("SonNom").Height
end with

'-----------------------------------
Sub Taille_objets()

Dim Sh As Shape
With Feuil1
For Each Sh In Feuil1.Shapes
Select Case TypeName(Sh.OLEFormat.Object)
Case Is = "TextBox", "Rectangle"
With Sh
.Height = 20.5
.Width = 70.5
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.TextFrame.AutoSize = True
End With
End Select
Next
End With
End Sub
'-----------------------------------



"gilles" a écrit dans le message de groupe de
discussion :
Michel,
Nickel, avec toutefois ces questions:
- si je l'applique à des objets dans lesquels j'applique du texte, en
remplaçant "textbox"par "Rectangle", ça ne marche pas (j'ai placé des textbox
et des rectangles sur la feuille)
- Si un des textbox possède des dimensions qui conviendraient aux autres,
comment récupérer ses dimensions(à part propriétés, noter les dimensions, et
modifier dans le code de la macro) ?
Merci encore
Gilles
"MichDenis" a écrit :

N.B - Autosize et vouloir définir les dimensions
avec les propriétés Height et Width, c'est contradictoire
je les ai insérés dans la procédure pour te montrer comment
les utilisés, mais il te faudra choisir !


"MichDenis" a écrit dans le message de groupe de discussion :

Bonjour Gilles,

Essaie ce cette façon en adaptant le nom de la feuille
selon ton application.

'-------------------------------------
Sub Taille_objets()

Dim Sh As Shape
With Worksheets("Feuil1")
For Each Sh In Feuil1.Shapes
If TypeName(Sh.OLEFormat.Object) = "TextBox" Then
With Sh
.Height = 20.5
.Width = 70.5
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.TextFrame.AutoSize = True
End With
End If
Next
End With
End Sub
'-------------------------------------

"gilles" a écrit dans le message de groupe de
discussion :
Bonjour à tous,
sur un onglet j'ai une multitude de zones de texte
j'aimerais leur donner à tous les mêmes dimensions et caractéristiques, cest
à dire:
même longueur largeur
même police de texte
même motif
j'ai pitoyablement essayé avec un truc comme ça:

Sub Taille_objets()
ActiveSheet.DrawingObjects.Select
'For Each DrawingObject In ActiveSheet
For Each Object In ActiveSheet

With Object
' .Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 2
'Autosize ou hauteur et largeur
.Height = 20.5
.Width = 70.5
.AutoSize = True
End With
Next
End Sub

....mais le detecteur de nullité de mon PC ne m'a fait aucun cadeau!!!
Si kekun de savant (de marseille ou d'ailleurs) peut m'aider la dessus...
un grand merci
Gilles




Avatar
gilles
Michel,
NICKEL
tu as visé juste
En tenant compte de tes suggestions, j'arrive à ces 2 possibilités:

Sub Taille_objets1()
Dim Sh As Shape
With Worksheets("Feuil1")
largeur = .Shapes("ZoneTexte 9").Width
hauteur = .Shapes("ZoneTexte 9").Height
End With
With Feuil1
'For Each Sh In Feuil1.Shapes
For Each Sh In .Shapes
Select Case TypeName(Sh.OLEFormat.Object)
Case Is = "TextBox", "Rectangle"
With Sh
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.Height = hauteur
.Width = largeur
End With
End Select
Next
End With
End Sub
______________
Sub Taille_objets2()
Dim Sh As Shape
With Worksheets("Feuil1")
[a5].Value = .Shapes("ZoneTexte 9").Width
[b5].Value = .Shapes("ZoneTexte 9").Height
End With
With Feuil1
'For Each Sh In Feuil1.Shapes
For Each Sh In .Shapes
Select Case TypeName(Sh.OLEFormat.Object)
Case Is = "TextBox", "Rectangle"
With Sh
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.Height = [b5]
.Width = [a5]
End With
End Select
Next
End With
End Sub

"MichDenis" a écrit :

Ceci :
With Feuil1
For Each Sh In Feuil1.Shapes

On devrait plutôt lire :

With Feuil1
For Each Sh In .Shapes




"MichDenis" a écrit dans le message de groupe de discussion :

Ce qui suit applique les propriétés aux "Rectangles" et aux "Zones de Texte"
de la feuille.

Pour récupérer les dimensions d'une shape,
Il faut d'abord son nom
With worksheets("Feuil1")
Largeur = .Shapes("SonNom").Width
Hauteur = .Shapes("SonNom").Height
end with

'-----------------------------------
Sub Taille_objets()

Dim Sh As Shape
With Feuil1
For Each Sh In Feuil1.Shapes
Select Case TypeName(Sh.OLEFormat.Object)
Case Is = "TextBox", "Rectangle"
With Sh
.Height = 20.5
.Width = 70.5
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.TextFrame.AutoSize = True
End With
End Select
Next
End With
End Sub
'-----------------------------------

Encore merci


Gilles



Avatar
MichDenis
Si tu veux intégrer le tout :

Sub Taille_objets1()
Dim Sh As Shape
Dim Largeur As Double, Hauteur As Double

With Feuil1
Largeur = .Shapes("ZoneTexte 9").Width
Hauteur = .Shapes("ZoneTexte 9").Height
For Each Sh In .Shapes
Select Case TypeName(Sh.OLEFormat.Object)
Case Is = "TextBox", "Rectangle"
With Sh
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.Height = Hauteur
.Width = Largeur
End With
End Select
Next
End With
End Sub




"gilles" a écrit dans le message de groupe de
discussion :
Michel,
NICKEL
tu as visé juste
En tenant compte de tes suggestions, j'arrive à ces 2 possibilités:

Sub Taille_objets1()
Dim Sh As Shape
With Worksheets("Feuil1")
largeur = .Shapes("ZoneTexte 9").Width
hauteur = .Shapes("ZoneTexte 9").Height
End With
With Feuil1
'For Each Sh In Feuil1.Shapes
For Each Sh In .Shapes
Select Case TypeName(Sh.OLEFormat.Object)
Case Is = "TextBox", "Rectangle"
With Sh
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.Height = hauteur
.Width = largeur
End With
End Select
Next
End With
End Sub
______________
Sub Taille_objets2()
Dim Sh As Shape
With Worksheets("Feuil1")
[a5].Value = .Shapes("ZoneTexte 9").Width
[b5].Value = .Shapes("ZoneTexte 9").Height
End With
With Feuil1
'For Each Sh In Feuil1.Shapes
For Each Sh In .Shapes
Select Case TypeName(Sh.OLEFormat.Object)
Case Is = "TextBox", "Rectangle"
With Sh
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.Height = [b5]
.Width = [a5]
End With
End Select
Next
End With
End Sub

"MichDenis" a écrit :

Ceci :
With Feuil1
For Each Sh In Feuil1.Shapes

On devrait plutôt lire :

With Feuil1
For Each Sh In .Shapes




"MichDenis" a écrit dans le message de groupe de discussion :

Ce qui suit applique les propriétés aux "Rectangles" et aux "Zones de Texte"
de la feuille.

Pour récupérer les dimensions d'une shape,
Il faut d'abord son nom
With worksheets("Feuil1")
Largeur = .Shapes("SonNom").Width
Hauteur = .Shapes("SonNom").Height
end with

'-----------------------------------
Sub Taille_objets()

Dim Sh As Shape
With Feuil1
For Each Sh In Feuil1.Shapes
Select Case TypeName(Sh.OLEFormat.Object)
Case Is = "TextBox", "Rectangle"
With Sh
.Height = 20.5
.Width = 70.5
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.TextFrame.AutoSize = True
End With
End Select
Next
End With
End Sub
'-----------------------------------

Encore merci


Gilles



Avatar
gilles
Merci Michel
de ton aide
Dim Largeur As Double, Hauteur As Double
c'est quoi double?
(si c'est pas abuser de ta patience!!!)
Gilles

"MichDenis" a écrit :

Si tu veux intégrer le tout :

Sub Taille_objets1()
Dim Sh As Shape
Dim Largeur As Double, Hauteur As Double

With Feuil1
Largeur = .Shapes("ZoneTexte 9").Width
Hauteur = .Shapes("ZoneTexte 9").Height
For Each Sh In .Shapes
Select Case TypeName(Sh.OLEFormat.Object)
Case Is = "TextBox", "Rectangle"
With Sh
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.Height = Hauteur
.Width = Largeur
End With
End Select
Next
End With
End Sub




"gilles" a écrit dans le message de groupe de
discussion :
Michel,
NICKEL
tu as visé juste
En tenant compte de tes suggestions, j'arrive à ces 2 possibilités:

Sub Taille_objets1()
Dim Sh As Shape
With Worksheets("Feuil1")
largeur = .Shapes("ZoneTexte 9").Width
hauteur = .Shapes("ZoneTexte 9").Height
End With
With Feuil1
'For Each Sh In Feuil1.Shapes
For Each Sh In .Shapes
Select Case TypeName(Sh.OLEFormat.Object)
Case Is = "TextBox", "Rectangle"
With Sh
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.Height = hauteur
.Width = largeur
End With
End Select
Next
End With
End Sub
______________
Sub Taille_objets2()
Dim Sh As Shape
With Worksheets("Feuil1")
[a5].Value = .Shapes("ZoneTexte 9").Width
[b5].Value = .Shapes("ZoneTexte 9").Height
End With
With Feuil1
'For Each Sh In Feuil1.Shapes
For Each Sh In .Shapes
Select Case TypeName(Sh.OLEFormat.Object)
Case Is = "TextBox", "Rectangle"
With Sh
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.Height = [b5]
.Width = [a5]
End With
End Select
Next
End With
End Sub

"MichDenis" a écrit :

> Ceci :
> With Feuil1
> For Each Sh In Feuil1.Shapes
>
> On devrait plutôt lire :
>
> With Feuil1
> For Each Sh In .Shapes
>
>
>
>
> "MichDenis" a écrit dans le message de groupe de discussion :
>
> Ce qui suit applique les propriétés aux "Rectangles" et aux "Zones de Texte"
> de la feuille.
>
> Pour récupérer les dimensions d'une shape,
> Il faut d'abord son nom
> With worksheets("Feuil1")
> Largeur = .Shapes("SonNom").Width
> Hauteur = .Shapes("SonNom").Height
> end with
>
> '-----------------------------------
> Sub Taille_objets()
>
> Dim Sh As Shape
> With Feuil1
> For Each Sh In Feuil1.Shapes
> Select Case TypeName(Sh.OLEFormat.Object)
> Case Is = "TextBox", "Rectangle"
> With Sh
> .Height = 20.5
> .Width = 70.5
> With .TextFrame.Characters
> .Font.Name = "Arial"
> .Font.Size = 14
> .Font.Bold = True
> .Font.ColorIndex = 3
> End With
> .TextFrame.AutoSize = True
> End With
> End Select
> Next
> End With
> End Sub
> '-----------------------------------
>
> Encore merci
Gilles
>



Avatar
MichDenis
Bonjour Gilles,

| Dim Largeur As Double, Hauteur As Double

Double représente un "Type de variable" au même
titre que "integer", "Long", "String", "Single", "Currency"

Pour ta procédure, tu pourrais utilise le type Single
Dim Largeur As Single, Hauteur As Single

Utilise la touche F1 et regarde dans l'aide les différents types
de variable.




"gilles" a écrit dans le message de groupe de
discussion :

Merci Michel
de ton aide
Dim Largeur As Double, Hauteur As Double
c'est quoi double?
(si c'est pas abuser de ta patience!!!)
Gilles

"MichDenis" a écrit :

Si tu veux intégrer le tout :

Sub Taille_objets1()
Dim Sh As Shape
Dim Largeur As Double, Hauteur As Double

With Feuil1
Largeur = .Shapes("ZoneTexte 9").Width
Hauteur = .Shapes("ZoneTexte 9").Height
For Each Sh In .Shapes
Select Case TypeName(Sh.OLEFormat.Object)
Case Is = "TextBox", "Rectangle"
With Sh
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.Height = Hauteur
.Width = Largeur
End With
End Select
Next
End With
End Sub




"gilles" a écrit dans le message de groupe de
discussion :
Michel,
NICKEL
tu as visé juste
En tenant compte de tes suggestions, j'arrive à ces 2 possibilités:

Sub Taille_objets1()
Dim Sh As Shape
With Worksheets("Feuil1")
largeur = .Shapes("ZoneTexte 9").Width
hauteur = .Shapes("ZoneTexte 9").Height
End With
With Feuil1
'For Each Sh In Feuil1.Shapes
For Each Sh In .Shapes
Select Case TypeName(Sh.OLEFormat.Object)
Case Is = "TextBox", "Rectangle"
With Sh
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.Height = hauteur
.Width = largeur
End With
End Select
Next
End With
End Sub
______________
Sub Taille_objets2()
Dim Sh As Shape
With Worksheets("Feuil1")
[a5].Value = .Shapes("ZoneTexte 9").Width
[b5].Value = .Shapes("ZoneTexte 9").Height
End With
With Feuil1
'For Each Sh In Feuil1.Shapes
For Each Sh In .Shapes
Select Case TypeName(Sh.OLEFormat.Object)
Case Is = "TextBox", "Rectangle"
With Sh
With .TextFrame.Characters
.Font.Name = "Arial"
.Font.Size = 14
.Font.Bold = True
.Font.ColorIndex = 3
End With
.Height = [b5]
.Width = [a5]
End With
End Select
Next
End With
End Sub

"MichDenis" a écrit :

> Ceci :
> With Feuil1
> For Each Sh In Feuil1.Shapes
>
> On devrait plutôt lire :
>
> With Feuil1
> For Each Sh In .Shapes
>
>
>
>
> "MichDenis" a écrit dans le message de groupe de discussion :
>
> Ce qui suit applique les propriétés aux "Rectangles" et aux "Zones de Texte"
> de la feuille.
>
> Pour récupérer les dimensions d'une shape,
> Il faut d'abord son nom
> With worksheets("Feuil1")
> Largeur = .Shapes("SonNom").Width
> Hauteur = .Shapes("SonNom").Height
> end with
>
> '-----------------------------------
> Sub Taille_objets()
>
> Dim Sh As Shape
> With Feuil1
> For Each Sh In Feuil1.Shapes
> Select Case TypeName(Sh.OLEFormat.Object)
> Case Is = "TextBox", "Rectangle"
> With Sh
> .Height = 20.5
> .Width = 70.5
> With .TextFrame.Characters
> .Font.Name = "Arial"
> .Font.Size = 14
> .Font.Bold = True
> .Font.ColorIndex = 3
> End With
> .TextFrame.AutoSize = True
> End With
> End Select
> Next
> End With
> End Sub
> '-----------------------------------
>
> Encore merci
Gilles
>