A dialog box to change Columns

  • Thread starter Thread starter Steved
  • Start date Start date
S

Steved

Hello from Steved

Is it possible please to change Range("D5:D500")) to say Range("AA5:AA500"))

I've got different columns so I would like to please a Dailog box to come up
when I press the Icon on my Ribbon to ask what column is reqired, for example
Column B

Sub Test()
Dim myS As String
Dim myC As Range

For Each myC In Intersect(ActiveSheet.UsedRange, Range("D5:D500"))
myS = myC.Value
myC.NumberFormat = "@"
myC.Value = myS
If Len(myC.Value) < 4 And myC.Value > "" Then
Do Until Len(myC.Value) = 4
myC.Value = "0" & myC.Value
Loop
End If
With myC.Characters(Start:=4, Length:=1).Font
.FontStyle = "Bold"
.Underline = xlUnderlineStyleSingle
.COLOR = 255
End With
Next myC
End Sub

Thankyou.
 
hi
try adding this after your Dim's...
Dim myR As String
myR = InputBox("Enter a range")

change this line from Range("D5"D500") to Range(myR)
For Each myC In Intersect(ActiveSheet.UsedRange, Range(myR))

regards
FSt1
 
Option Explicit
Sub Test()
Dim myS As String
Dim myC As Range
Dim myRng As Range
Dim myRngToInspect As Range

Set myRng = Nothing
On Error Resume Next
Set myRng = Application.InputBox(Prompt:="Select a column", _
Type:=8).Cells(1)
On Error GoTo 0

If myRng Is Nothing Then
'user hit cancel
Exit Sub '???
End If

Set myRngToInspect = Intersect(myRng.Parent.UsedRange, _
myRng.EntireColumn, _
myRng.Parent.Range("5:500"))

If myRngToInspect Is Nothing Then
MsgBox "nothing to work on!"
Exit Sub
End If

For Each myC In myRngToInspect.Cells
myC.NumberFormat = "@"

If IsEmpty(myC) Then
'skip it
Else
If IsNumeric(myC.Value) Then
'only the numbers < 10000????
If myC.Value < 10000 Then
myC.Value = Format(myC.Value, "0000")
End If
End If
End If

With myC.Characters(Start:=4, Length:=1).Font
.FontStyle = "Bold"
.Underline = xlUnderlineStyleSingle
.Color = 255
End With
Next myC
End Sub
 
Thankyou

Best wishes for the Season

Steved

Dave Peterson said:
Option Explicit
Sub Test()
Dim myS As String
Dim myC As Range
Dim myRng As Range
Dim myRngToInspect As Range

Set myRng = Nothing
On Error Resume Next
Set myRng = Application.InputBox(Prompt:="Select a column", _
Type:=8).Cells(1)
On Error GoTo 0

If myRng Is Nothing Then
'user hit cancel
Exit Sub '???
End If

Set myRngToInspect = Intersect(myRng.Parent.UsedRange, _
myRng.EntireColumn, _
myRng.Parent.Range("5:500"))

If myRngToInspect Is Nothing Then
MsgBox "nothing to work on!"
Exit Sub
End If

For Each myC In myRngToInspect.Cells
myC.NumberFormat = "@"

If IsEmpty(myC) Then
'skip it
Else
If IsNumeric(myC.Value) Then
'only the numbers < 10000????
If myC.Value < 10000 Then
myC.Value = Format(myC.Value, "0000")
End If
End If
End If

With myC.Characters(Start:=4, Length:=1).Font
.FontStyle = "Bold"
.Underline = xlUnderlineStyleSingle
.Color = 255
End With
Next myC
End Sub
 
Thankyou

Best Wishes for the Season

Steved

Dave Peterson said:
Option Explicit
Sub Test()
Dim myS As String
Dim myC As Range
Dim myRng As Range
Dim myRngToInspect As Range

Set myRng = Nothing
On Error Resume Next
Set myRng = Application.InputBox(Prompt:="Select a column", _
Type:=8).Cells(1)
On Error GoTo 0

If myRng Is Nothing Then
'user hit cancel
Exit Sub '???
End If

Set myRngToInspect = Intersect(myRng.Parent.UsedRange, _
myRng.EntireColumn, _
myRng.Parent.Range("5:500"))

If myRngToInspect Is Nothing Then
MsgBox "nothing to work on!"
Exit Sub
End If

For Each myC In myRngToInspect.Cells
myC.NumberFormat = "@"

If IsEmpty(myC) Then
'skip it
Else
If IsNumeric(myC.Value) Then
'only the numbers < 10000????
If myC.Value < 10000 Then
myC.Value = Format(myC.Value, "0000")
End If
End If
End If

With myC.Characters(Start:=4, Length:=1).Font
.FontStyle = "Bold"
.Underline = xlUnderlineStyleSingle
.Color = 255
End With
Next myC
End Sub
 

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

Similar Threads


Back
Top