Inputbox Question

J

Joel Mills

I started with this code. It allows the user to input 4 lines of text into
a ChartTitle. I'm trying to modify it to allow the user to enter a single
line of text or up to 4 lines of text . I want it to exit the first time
the user doesn't input anything in the Inputboxes. Or be able to cancel the
inputbox without removing the text already in the chart title. I've tried
using a label and "If then GoTo" but not sure if this approach is right or
how to get it to work. I can post the revised code if it might be helpful.

Joel Mills

Sub ChartTitle()

Dim CTitle1 As String
Dim CTitle2 As String
Dim CTitle3 As String
Dim CTitle4 As String
ChartTitle1 = InputBox("Enter 1st Line of Chart Title")
ChartTitle2 = InputBox("Enter 2nd Line of Chart Title")
ChartTitle3 = InputBox("Enter 3rd Line of Chart Title")
ChartTitle4 = InputBox("Enter 4th Line of Chart Title")

ActiveSheet.ChartObjects("Curve Chart").Activate
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = ChartTitle1 & Chr(10) _
& ChartTitle2 & Chr(10) & ChartTitle3 & Chr(10) _
& ChartTitle4 & Chr(10)
End With

End Sub
 
T

Toppers

Hi,

Try this:


Option Explicit


Sub ChartTitle()

Dim ChartTitles As String, TitleStr As String, i As Integer

ChartTitles = ""
For i = 1 To 4
TitleStr = InputBox("Enter line " & i & " of chart title")
If TitleStr <> "" Then
ChartTitles = ChartTitles + TitleStr + Chr(10)
Else
Exit For
End If
Next i


MsgBox ChartTitle
ActiveSheet.ChartObjects("Curve Chart").Activate
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = ChartTitles
End With

End Sub


HTH
 
J

Joel Mills

Toppers,

Thanks for your help. This does exactly what I wanted. Only had to fix a
typo in your code. MsgBox ChartTitle to MsgBox ChartTitles.
Again thanks. Wow that was a fast reply.
 
J

Joel Mills

Oops, I spoke to soon. I'm positive my users will run this macro and then
decide to close it without inputting anything. If they do this it will
clear out the ChartTitle. Is there a way to have cancel close the InputBox
without clearing the Chart Title?
 
T

Toppers

Hi again,

Try:


ActiveSheet.ChartObjects("Curve Chart").Activate
With ActiveChart
.HasTitle = True
If ChartTitles <> "" then ' Replace only if there is an entry in
ChartTitles
.ChartTitle.Characters.Text = ChartTitles
End If
End With

HTH
 
J

Joel Mills

Hi Toppers,

Thanks for your help. I've been trying to figure this out since your first
post. Pulling out what little hair I have. I was trying write the code
based on TitleStr instead of the ChartTitle being empty or not.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top