même taille à tous les objets

Le
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
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 #19999991
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" 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
MichDenis
Le #19999971
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"
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" 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
gilles
Le #20000281
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"
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" 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




gilles
Le #20000261
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"
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" 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




MichDenis
Le #20000491
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" 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"
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" 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




MichDenis
Le #20000481
Ceci :
With Feuil1
For Each Sh In Feuil1.Shapes

On devrait plutôt lire :

With Feuil1
For Each Sh In .Shapes




"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" 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"
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" 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




gilles
Le #20000921
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"
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



MichDenis
Le #20001241
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" 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"
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



gilles
Le #20005991
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" 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" >
> 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
>



MichDenis
Le #20006091
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" 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" 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" >
> 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
>



Publicité
Poster une réponse
Anonyme