OVH Cloud OVH Cloud

Shapes, VBA

7 réponses
Avatar
Patrick BASTARD
Bonsoir, toutes et tous.

Qui peut m'aider à débugger ce bout de code qui plante lorsque je veux
mettre à jour un texte dans le rectangle ?
"Impossible de définir la propriété Text de la classe Character"
=====================================
Dim ColR As Byte
Dim ColF As Byte
Dim Cou, Lig As Integer
Dim Fref As String 'freeform
Dim Rect As String 'rectangle

For Lig = 2 To 1000
If Cells(Lig, 12) = "" Then Exit For
ColR = Cells(2, 11)
ColF = Cells(2, 10)
Cou = Cells(Lig, 12).Interior.ColorIndex
Fref = "Freeform " & Cells(Lig, 14) 'Contient n°Contours du code
postal
Rect = "Rectangle " & Cells(Lig, 15) 'Contient n°Rectangle sur le
code postal

With ActiveSheet.Shapes(Fref)
.Name = Cells(Lig, ColF)
.Fill.ForeColor.SchemeColor = Cou + 7
End With
With ActiveSheet.Shapes(Rect)
.Name = Cells(Lig, 12)
.TextFrame.Characters.Text = Cells(Lig, ColR)
'<----------------Plante ci.
End With
Next
=====================================
Avec mes remerciements anticipés,

--
Bien amicordialement,
P. Bastard

7 réponses

Avatar
Hervé
Bonsoir Patrick,

En ôtant la protection de la feuille ?

Hervé.

"Patrick BASTARD" a écrit dans le
message de news:
Bonsoir, toutes et tous.

Qui peut m'aider à débugger ce bout de code qui plante lorsque je veux
mettre à jour un texte dans le rectangle ?
"Impossible de définir la propriété Text de la classe Character"
==================================== > Dim ColR As Byte
Dim ColF As Byte
Dim Cou, Lig As Integer
Dim Fref As String 'freeform
Dim Rect As String 'rectangle

For Lig = 2 To 1000
If Cells(Lig, 12) = "" Then Exit For
ColR = Cells(2, 11)
ColF = Cells(2, 10)
Cou = Cells(Lig, 12).Interior.ColorIndex
Fref = "Freeform " & Cells(Lig, 14) 'Contient n°Contours du code
postal
Rect = "Rectangle " & Cells(Lig, 15) 'Contient n°Rectangle sur le
code postal

With ActiveSheet.Shapes(Fref)
.Name = Cells(Lig, ColF)
.Fill.ForeColor.SchemeColor = Cou + 7
End With
With ActiveSheet.Shapes(Rect)
.Name = Cells(Lig, 12)
.TextFrame.Characters.Text = Cells(Lig, ColR)
'<----------------Plante ci.
End With
Next
==================================== > Avec mes remerciements anticipés,

--
Bien amicordialement,
P. Bastard



Avatar
bourby
Patrick BASTARD wrote:
Bonsoir, toutes et tous.

Qui peut m'aider à débugger ce bout de code qui plante lorsque je veux
mettre à jour un texte dans le rectangle ?
"Impossible de définir la propriété Text de la classe Character"
==================================== > Dim ColR As Byte
Dim ColF As Byte
Dim Cou, Lig As Integer
Dim Fref As String 'freeform
Dim Rect As String 'rectangle

For Lig = 2 To 1000
If Cells(Lig, 12) = "" Then Exit For
ColR = Cells(2, 11)
ColF = Cells(2, 10)
Cou = Cells(Lig, 12).Interior.ColorIndex
Fref = "Freeform " & Cells(Lig, 14) 'Contient n°Contours du code
postal
Rect = "Rectangle " & Cells(Lig, 15) 'Contient n°Rectangle sur le
code postal

With ActiveSheet.Shapes(Fref)
.Name = Cells(Lig, ColF)
.Fill.ForeColor.SchemeColor = Cou + 7
End With
With ActiveSheet.Shapes(Rect)
.Name = Cells(Lig, 12)
.TextFrame.Characters.Text = Cells(Lig, ColR)
'<----------------Plante ci.
End With
Next
==================================== > Avec mes remerciements anticipés,

bonjour,

il m'est arrivé le même genre de mésaventure récemment; je crois me
souvenir que le pb est que l'objet shape (qui peut contenir des tas
d'objets différents,dont certains n'ont pas de propriété Characters ni
Text), ne possède pas lui-même ces propriétés.
Je m'en étais sorti en sélectionnant la forme, car VBA accepte
toujours d'exécuter des codes du genre Selection.characters.Text="blabla" .
Cordialement

Bourby

Avatar
Patrick BASTARD
Bonjour, toutes et tous.


Ne cherchez pas, j'ai fini par trouver, tout simplement avec l'enregistreur
:

Selection.Characters.Text = "Ce que je veux"

Comme quoi les solutions les plus simples...


--
Bien amicordialement,
P. Bastard


Bonsoir, toutes et tous.

Qui peut m'aider à débugger ce bout de code qui plante lorsque je veux
mettre à jour un texte dans le rectangle ?
"Impossible de définir la propriété Text de la classe Character"
==================================== > Dim ColR As Byte
Dim ColF As Byte
Dim Cou, Lig As Integer
Dim Fref As String 'freeform
Dim Rect As String 'rectangle

For Lig = 2 To 1000
If Cells(Lig, 12) = "" Then Exit For
ColR = Cells(2, 11)
ColF = Cells(2, 10)
Cou = Cells(Lig, 12).Interior.ColorIndex
Fref = "Freeform " & Cells(Lig, 14) 'Contient n°Contours du
code postal
Rect = "Rectangle " & Cells(Lig, 15) 'Contient n°Rectangle
sur le code postal

With ActiveSheet.Shapes(Fref)
.Name = Cells(Lig, ColF)
.Fill.ForeColor.SchemeColor = Cou + 7
End With
With ActiveSheet.Shapes(Rect)
.Name = Cells(Lig, 12)
.TextFrame.Characters.Text = Cells(Lig, ColR)
'<----------------Plante ci.
End With
Next
==================================== > Avec mes remerciements anticipés,


Avatar
Modeste
Bonsour® Patrick BASTARD avec ferveur ;o))) vous nous disiez :

ce bout de code qui plante lorsque je veux
mettre à jour un texte dans le rectangle ?
"Impossible de définir la propriété Text de la classe Character"



j'avais déja eu le probleme que j'avais contourné par un select
(conformément à l'enregistreur)
mais je n'ai jamais su oter ce select ????

ActiveSheet.Shapes(Rect).select
selection.Name = Cells(Lig, 12)
selection.Characters.Text = Cells(Lig, ColR)

--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr

Avatar
Patrick BASTARD
Bonsoir, *bourby*

Merci de t'être penché sur mon soucis.

C'est bien ça.



--
Bien amicordialement,
P. Bastard

Je m'en étais sorti en sélectionnant la forme, car VBA accepte
toujours d'exécuter des codes du genre Selection.characters.Text="blabla"
. Cordialement

Bourby


Avatar
Patrick BASTARD
Bonsoir, toutes et tous.

Je vous remercie infiniment, Hervé, bourby et Modeste pour votre aide.
Je crois que maintenant, grâce à votre aide, j'en suis venu à bout.

Encore une question, mais ce sera pour plus tard.

Bonne nuit à toutes et tous.


--
Bien amicordialement,
P. Bastard




Bonsoir, toutes et tous.

Qui peut m'aider à débugger ce bout de code qui plante lorsque je veux
mettre à jour un texte dans le rectangle ?
"Impossible de définir la propriété Text de la classe Character"
==================================== > Dim ColR As Byte
Dim ColF As Byte
Dim Cou, Lig As Integer
Dim Fref As String 'freeform
Dim Rect As String 'rectangle

For Lig = 2 To 1000
If Cells(Lig, 12) = "" Then Exit For
ColR = Cells(2, 11)
ColF = Cells(2, 10)
Cou = Cells(Lig, 12).Interior.ColorIndex
Fref = "Freeform " & Cells(Lig, 14) 'Contient n°Contours du
code postal
Rect = "Rectangle " & Cells(Lig, 15) 'Contient n°Rectangle
sur le code postal

With ActiveSheet.Shapes(Fref)
.Name = Cells(Lig, ColF)
.Fill.ForeColor.SchemeColor = Cou + 7
End With
With ActiveSheet.Shapes(Rect)
.Name = Cells(Lig, 12)
.TextFrame.Characters.Text = Cells(Lig, ColR)
'<----------------Plante ci.
End With
Next
==================================== > Avec mes remerciements anticipés,


Avatar
AV
| mais je n'ai jamais su oter ce select ????

Faut laisser tomber "Shapes" et utiliser les bons vieux "DrawingObjects"

Sub zzz()
With ActiveSheet.DrawingObjects("le Rectangle")
.Characters.Text = "zaza"
.Name = "fifi"
End With
End Sub

AV