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

Connaitre le nom d'une zone de texte

8 réponses
Avatar
Apitos
Bonjour,

Dans une macro, je devrais renseign=E9 des zone de texte :

'------------------------------
Sub Remplissage(Nf As String, dt1 As Variant, dt2 As Variant, Cll As
Integer, Dr As Integer, idxarr As Boolean)
Workbook(1).Activate
Sheets(Nf).Select
ActiveSheet.Shapes("Text Box 1").Select
Selection.Characters.Text =3D ""
Selection.Characters.Text =3D "Semaine du " & dt1 & " au " & dt2
If Not idxarr Then
[D17] =3D [E17]
[E17] =3D Cll
[F17] =3D [G17]
[G17] =3D Dr
Else
[D20] =3D [E20]
[E20] =3D Cll
[F20] =3D [G20]
[G20] =3D Dr
End If
End Sub
'---------------------------

Mais ce code n'est pas valable pour les zones de texte pr=E9sentes dans
les autres feuilles =E0 selectionner, parce que leurs noms changent
(Text Box 1, Text Box 5, Text Box 7, ...)

Comment faire pour connaitre le nom de la zone de texte vis=E9e ?

Merci.

8 réponses

Avatar
JB
Bonjour,

S'il n'y a qu'un shape, Shapes(1)

JB

On 9 mar, 00:45, Apitos wrote:
Bonjour,

Dans une macro, je devrais renseigné des zone de texte :

'------------------------------
Sub Remplissage(Nf As String, dt1 As Variant, dt2 As Variant, Cll As
Integer, Dr As Integer, idxarr As Boolean)
    Workbook(1).Activate
    Sheets(Nf).Select
    ActiveSheet.Shapes("Text Box 1").Select
    Selection.Characters.Text = ""
    Selection.Characters.Text = "Semaine du " & dt1 & " au " & dt2
    If Not idxarr Then
        [D17] = [E17]
        [E17] = Cll
        [F17] = [G17]
        [G17] = Dr
    Else
        [D20] = [E20]
        [E20] = Cll
        [F20] = [G20]
        [G20] = Dr
    End If
End Sub
'---------------------------

Mais ce code n'est pas valable pour les zones de texte présentes dans
les autres feuilles à selectionner, parce que leurs noms changent
(Text Box 1, Text Box 5, Text Box 7, ...)

Comment faire pour connaitre le nom de la zone de texte visée ?

Merci.


Avatar
Philippe.R
Bonjour,
Un moyen de connaître les zones de texte de la feuille active pour les
sélectionner en balayant les objets Shape les uns après les autres :

Sub esnomtxtbox()
z = ActiveSheet.Shapes.Count
For i = 1 To z
ActiveSheet.Shapes(i).Select
MsgBox ActiveSheet.Shapes(i).Name
Next i
End Sub
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Apitos" a écrit dans le message de
news:
Bonjour,

Dans une macro, je devrais renseigné des zone de texte :

'------------------------------
Sub Remplissage(Nf As String, dt1 As Variant, dt2 As Variant, Cll As
Integer, Dr As Integer, idxarr As Boolean)
Workbook(1).Activate
Sheets(Nf).Select
ActiveSheet.Shapes("Text Box 1").Select
Selection.Characters.Text = ""
Selection.Characters.Text = "Semaine du " & dt1 & " au " & dt2
If Not idxarr Then
[D17] = [E17]
[E17] = Cll
[F17] = [G17]
[G17] = Dr
Else
[D20] = [E20]
[E20] = Cll
[F20] = [G20]
[G20] = Dr
End If
End Sub
'---------------------------

Mais ce code n'est pas valable pour les zones de texte présentes dans
les autres feuilles à selectionner, parce que leurs noms changent
(Text Box 1, Text Box 5, Text Box 7, ...)

Comment faire pour connaitre le nom de la zone de texte visée ?

Merci.
Avatar
Philippe.R
Re,
On observera au passage que les Text Boxes et autres WordArt ou formes
dessinées appartiennet à la même collection Shapes et sont donc numérotés
dans une série continue.
On aura ainsi par exemple :
Text Box 1
Rectangle 2
Text Box 3
WordArt 4
Text Box 5
...
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:
Bonjour,
Un moyen de connaître les zones de texte de la feuille active pour les
sélectionner en balayant les objets Shape les uns après les autres :

Sub esnomtxtbox()
z = ActiveSheet.Shapes.Count
For i = 1 To z
ActiveSheet.Shapes(i).Select
MsgBox ActiveSheet.Shapes(i).Name
Next i
End Sub
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Apitos" a écrit dans le message de
news:
Bonjour,

Dans une macro, je devrais renseigné des zone de texte :

'------------------------------
Sub Remplissage(Nf As String, dt1 As Variant, dt2 As Variant, Cll As
Integer, Dr As Integer, idxarr As Boolean)
Workbook(1).Activate
Sheets(Nf).Select
ActiveSheet.Shapes("Text Box 1").Select
Selection.Characters.Text = ""
Selection.Characters.Text = "Semaine du " & dt1 & " au " & dt2
If Not idxarr Then
[D17] = [E17]
[E17] = Cll
[F17] = [G17]
[G17] = Dr
Else
[D20] = [E20]
[E20] = Cll
[F20] = [G20]
[G20] = Dr
End If
End Sub
'---------------------------

Mais ce code n'est pas valable pour les zones de texte présentes dans
les autres feuilles à selectionner, parce que leurs noms changent
(Text Box 1, Text Box 5, Text Box 7, ...)

Comment faire pour connaitre le nom de la zone de texte visée ?

Merci.



Avatar
JB
S'il y a plusieurs shapes (mais un seul textbox)

Sub essai()
ActiveSheet.Shapes(premierTextBox()).Select
End Sub

Function premierTextBox()
For Each s In ActiveSheet.Shapes
If s.Type = 17 Then premierTextBox = s.Name
Next s
End Function

JB
http://boisgontierjacques.free.fr/


On 9 mar, 05:40, JB wrote:
Bonjour,

S'il n'y a qu'un shape, Shapes(1)

JB

On 9 mar, 00:45, Apitos wrote:



Bonjour,

Dans une macro, je devrais renseigné des zone de texte :

'------------------------------
Sub Remplissage(Nf As String, dt1 As Variant, dt2 As Variant, Cll As
Integer, Dr As Integer, idxarr As Boolean)
    Workbook(1).Activate
    Sheets(Nf).Select
    ActiveSheet.Shapes("Text Box 1").Select
    Selection.Characters.Text = ""
    Selection.Characters.Text = "Semaine du " & dt1 & " au " & dt2
    If Not idxarr Then
        [D17] = [E17]
        [E17] = Cll
        [F17] = [G17]
        [G17] = Dr
    Else
        [D20] = [E20]
        [E20] = Cll
        [F20] = [G20]
        [G20] = Dr
    End If
End Sub
'---------------------------

Mais ce code n'est pas valable pour les zones de texte présentes dans
les autres feuilles à selectionner, parce que leurs noms changent
(Text Box 1, Text Box 5, Text Box 7, ...)

Comment faire pour connaitre le nom de la zone de texte visée ?

Merci.- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
Apitos
Bonjour,

Merci JB et Philippe, je vais essayé vos solutions.

Mais comment connaitre tous les types (comme s.Type pour un Text
Box) et tous les nom comme msoTextBox ..., pour tous les formes qu'on
peut uitliser sur une feuille ?

Merci.
Avatar
JB
http://boisgontierjacques.free.fr/pages_site/lesimages.htm#TypesShapes

JB
On 9 mar, 11:23, Apitos wrote:
Bonjour,

Merci JB et Philippe, je vais essayé vos solutions.

Mais comment connaitre tous les types (comme s.Type pour un Text
Box) et tous les nom comme msoTextBox ...,  pour tous les formes qu'on
peut uitliser sur une feuille ?

Merci.


Avatar
Philippe.R
Re bonjour,
L'aide, appelée avec la touche F1 fourni une liste des types de Shape.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Apitos" a écrit dans le message de
news:
Bonjour,

Merci JB et Philippe, je vais essayé vos solutions.

Mais comment connaitre tous les types (comme s.Type pour un Text
Box) et tous les nom comme msoTextBox ..., pour tous les formes qu'on
peut uitliser sur une feuille ?

Merci.
Avatar
Apitos
Bonsoir JB et Philippe.R,

Alors JB, de l'exemple que j'ai vu shapes.xls - shapesType, on peut
donc écrire les noms d'objets comme suit :

msoImage
msoTextBox
msoButton
msoCommandButton
msoComboBox
msoAutoShape
msoPicture
msoDropDown
msoAutoShape
msoTextBox
msoOval
msoRectangle
msoLine
msoAutoShape


Philippe.R : J'ai deja fait recherche avec les mots clés : shapes,
textbox, mais je n'ai rien trouvé.

Merci.