Connaitre le nom d'une zone de texte

Le
Apitos
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.
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
JB
Le #5232061
Bonjour,

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

JB

On 9 mar, 00:45, Apitos
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.


Philippe.R
Le #5232051
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" 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.
Philippe.R
Le #5232041
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" 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" 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.



JB
Le #5232001
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
Bonjour,

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

JB

On 9 mar, 00:45, Apitos


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 -



Apitos
Le #5231911
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.
JB
Le #5231901
http://boisgontierjacques.free.fr/pages_site/lesimages.htm#TypesShapes

JB
On 9 mar, 11:23, 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.


Philippe.R
Le #5231741
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" 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.
Apitos
Le #5231541
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.
Publicité
Poster une réponse
Anonyme