![]() |
Inputbox Question
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 |
Inputbox Question
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 "Joel Mills" wrote: 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 |
Inputbox Question
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. "Toppers" wrote in message ... 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 "Joel Mills" wrote: 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 |
Inputbox Question
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? "Toppers" wrote in message ... 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 "Joel Mills" wrote: 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 |
Inputbox Question
Hi,
I spotted my typo after posting - just testing you! Glad it helped. "Joel Mills" wrote: 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. "Toppers" wrote in message ... 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 "Joel Mills" wrote: 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 |
Inputbox Question
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 "Joel Mills" wrote: 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? "Toppers" wrote in message ... 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 "Joel Mills" wrote: 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 |
Inputbox Question
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. "Toppers" wrote in message ... 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 "Joel Mills" wrote: 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? "Toppers" wrote in message ... 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 "Joel Mills" wrote: 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 |
All times are GMT +1. The time now is 12:14 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com