View Single Post
  #10   Report Post  
Posted to microsoft.public.excel.programming
eugene eugene is offline
external usenet poster
 
Posts: 61
Default text box for displays of information in excel cells

I assume you are saying that if there are two pages each with a
StatisticsTextBox that there will be no conflict since I will be using
activesheet.stat.... to access each one. No need to reply if I understand you
correctly.

BTW. I searched and found the following line for dumping text into the
textbox. It works for even more than 255 characters at a time (my shape
version did not).

ActiveSheet.OLEObjects(TBName).Object.Value = textBoxText

Thanks for your help. I hope that's it for a while at least.


--
eugene


"Bob Phillips" wrote:

You can set the name and use that, but it is better IMO just to use the
object that you created when creating the textbox

Dim StatisticsTextBox As Object
Set StatisticsTextBox = ActiveSheet.OLEObjects.Add( _
ClassType:="Forms.TextBox.1", _
Left:=200, Top:=100, Width:=80, Height:=32)
With StatisticsTextBox
.Name = "TB1"
With .Object
.MultiLine = True
.Text = "Hello"
End With
End With

and use StatisticsTextBox if you want to use it again later.

--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)

"eugene" wrote in message
...
Oh boy!

Of course, I have encountered a problems with the code that has been
working until now.

In my original code (using shapes), I named my textboxes as follows:
TBName = "Statistics for Page " & ActiveSheet.Name
StatisticsTextBox.Name = TBName

(Objective here was to name the textbox on each sheet in a way that would
allow me reference each simply by using the sheet name.)
This seems still to work with the new code - the text box takes the name -
and I can still do some things using .Shapes(TBName) - eg deleting the

text
box.

But I can't seem to write to the box.
Orignally, when writing to a text box, I used two commands, both of which
worked fine (I believe):
Sheets(...).Select
TBName = "Statistics for Page " & ActiveSheet.Name
ActiveSheet.Shapes(TBName).OLEFormat.Object.Text = "..." (or some string
variable)
or
ActiveSheet.Shapes(TBName).TextFrame.Characters.Te xt = "..."

Now neither seems to work.

Help!

If there is no generic solution to this sort of question, you won't hear

the
end of me!

Thanks again.


--
eugene


"Bob Phillips" wrote:

You won't get a definitive answer to that question unless you ask it in

a
forum. There will be lots of stuff out there that tell you that, but

unless
you know what you are looking for it is difficult to track down. It is a
question of getting an understanding of what each object does, what its
properties are, etc. Experience!

--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)

"eugene" wrote in message
...
Thanks a million.

That worked (after deleting the space before between the "." and the

word
Object). I suppose that this will help me for most if not all of the

other
issues I have encountered. So I appreciate the help immensely. It's a

real
time-saver.

But of course every solution comes with its own problems. I now have

to
see
if all my other code, which referenced the text box using Shapes,

will
continue to work. So I may be back.

Rather than constantly pester this group, does anyone know where on

the
Internet I can find out more about the difference between what I was

doing
and what Bob suggested. The two are obviously fundamentally different

and
it
would obviously pay for me to understand the difference.


--
eugene


"Bob Phillips" wrote:

Thta's what I feraed.

Try creating a controls toolbox textbox which does support Multiline

Dim StatisticsTextBox As Object
Set StatisticsTextBox =
ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextB ox.1", _
Left:=200, Top:=100, Width:=80, Height:=32)
StatisticsTextBox .Object.MultiLine = True



--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)

"eugene" wrote in message
...
What sort of textbox, control toolbox or userform?

I don't know the difference. But this is how I create my text box:

dim StatisticsTextBox as shape
Set StatisticsTextBox = ActiveSheet.Shapes.AddTextbox
_(msoTextOrientationHorizontal, 3, 3, 200, 300)

When I add the following line, I get an error (using Windows XP

and
Excel
2004):
StatisticsTextBox.MultiLine = True

--
eugene


"Bob Phillips" wrote:

What sort of textbox, control toolbox or userform? Multiline

should
work,
and add Alt-Enter, or Chr(10) should give you the breaks.

--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)

"eugene" wrote in message
...
I am trying to automate the creation of a series of textboxes

(one
for
each
page of my workbook - which consists of many pages) that will

grab
data
from
cells on different pages of the workbook and display the
information
to a
user. This is done interactively. The data in the box has to
change
constantly depending on what triggers its display. I got much

of
this
to
work
but I am encountering a few problems, which I suspect are

simple,
but
which
I can't resolve.

I enter text in excel cells. But sometimes the text is very

long
and
ought
to be broken down into paragraphs. Is there any way either (1)

to
enter
the
text with paragraph marks embeded so that when it is dumped

into
the
text
box
it will look formatted or (2) to bring it the text piecemeal

(I
can do
that)
and add the appropriate marks as it is being read into the

textbox
(I
could
add some character to the text that would allow a program to
substitute it
for whatever is necessary.)

I have tried a number of things but none seem to work. It may

be
that
the
root of my problem is that I do not have the text box set to
mulitline. I
can't seem to get ".multiline = true" to work (I get a

runtime
error).

I do not want to create each box manually since there will be

very
many of
them, and I suspect I will want to change other things as I
progres.
Currently I have a macro to do some of that. But I can't seem

to
get
all
the
details right.

There are other such issues. But initially, I would greatly
appreciate
help
in resolving the particular ones mentioned.

Thanks.