Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.scripting.vbscript,microsoft.public.excel.programming
external usenet poster
 
Posts: 6
Default How to insert the Thousands Separator (comma) in Excel?

Hello all.

I've got a VBScript that takes a CSV file, makes some formatting
changes, and saves it to an XLS file. What I'd like to add to this
script is the command to insert the Thousands Separator in column B
for the entire column. Column B contains numbers in every cell except
for the top cell which has a word.

In searching I did find the Constant "Const xlThousandsSeparator = 4"
but I can't quite figure out how to write the line to implement it.

Any suggestions would be greatly appreciated. Thanks!

My script:

Const xlDescending = 2
Const xlNormal = 1
Const xlCenter = -4108

Set objFSO = CreateObject("Scripting.FileSystemObject")

Dim CurDir
CurDir = objFSO.GetFolder(".").Path
Set Folder = objFSO.GetFolder(CurDir)
Set Folder = nothing

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True

Set objWorkbook = objExcel.Workbooks.Open(CurDir & "\Results.csv")
Set objWorksheet = objWorkbook.Worksheets(1)

'~~ Sort by Column B, Descending
Set objRange = objWorksheet.UsedRange
Set objRange2 = objExcel.Range("B1")
objRange.Sort objRange2,2

'~~ Insert blank row at Row 1
sRow = "1"
objExcel.Worksheets(1).Rows(sRow).Insert xlDown

'~~ Insert Header text
objExcel.Worksheets(1).Cells(1,1).Value = "Server"
objExcel.Worksheets(1).Cells(1,2).Value = "Error Amount"

'~~ Bold the Header row
Set objRange3 = objExcel.Range("A1:B1")
objRange3.Font.Bold = True

'~~ Auto Fit and Center both Columns
objExcel.Cells.EntireColumn.AutoFit
objExcel.Cells.EntireColumn.HorizontalAlignment = xlCenter

'~~ Insert blank row at Row 2
sRow = "2"
objExcel.Worksheets(1).Rows(sRow).Insert xlDown

objWorkbook.SaveAs CurDir & "\Results.xls",1

objWorkbook.Close
objExcel.Quit

Set objFSO = nothing
Set objExcel = nothing
Set objWorkbook = nothing
Set objWorksheet = nothing
Set objRange = nothing
Set objRange2 = nothing
Set objRange3 = nothing

  #2   Report Post  
Posted to microsoft.public.scripting.vbscript,microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default How to insert the Thousands Separator (comma) in Excel?

On Jun 14, 10:58 am, Highlander wrote:
Hello all.

I've got a VBScript that takes a CSV file, makes some formatting
changes, and saves it to an XLS file. What I'd like to add to this
script is the command to insert the Thousands Separator in column B
for the entire column. Column B contains numbers in every cell except
for the top cell which has a word.

In searching I did find the Constant "Const xlThousandsSeparator = 4"
but I can't quite figure out how to write the line to implement it.

Any suggestions would be greatly appreciated. Thanks!

My script: (trimmed out to save valuable electronic trees)


The approach I take in cases like this is to record an Excel Macro.
This creates VBA code to implement what I need. I then translate the
VBA into VBScript.

I believe this will work for your case. Hope it helps.




  #3   Report Post  
Posted to microsoft.public.scripting.vbscript,microsoft.public.excel.programming
external usenet poster
 
Posts: 6
Default How to insert the Thousands Separator (comma) in Excel?

On Jun 14, 10:52 am, LakeGator wrote:
On Jun 14, 10:58 am, Highlander wrote:

Hello all.


I've got a VBScript that takes a CSV file, makes some formatting
changes, and saves it to an XLS file. What I'd like to add to this
script is the command to insert the Thousands Separator in column B
for the entire column. Column B contains numbers in every cell except
for the top cell which has a word.


In searching I did find the Constant "Const xlThousandsSeparator = 4"
but I can't quite figure out how to write the line to implement it.


Any suggestions would be greatly appreciated. Thanks!


My script: (trimmed out to save valuable electronic trees)


The approach I take in cases like this is to record an Excel Macro.
This creates VBA code to implement what I need. I then translate the
VBA into VBScript.

I believe this will work for your case. Hope it helps.


Cool!

Recording a macro gave me this:

Sub Comma()
Columns("B:B").Select
Selection.NumberFormat = "#,##0"
End Sub

After a little tweaking and testing, adding these two lines to my
script produced the desired results:

objExcel.ActiveSheet.Range("B:B").Select
objExcel.Selection.NumberFormat = "#,##0"

Thanks LakeGator!

- Dave

  #4   Report Post  
Posted to microsoft.public.scripting.vbscript,microsoft.public.excel.programming
external usenet poster
 
Posts: 131
Default How to insert the Thousands Separator (comma) in Excel?


"Highlander" wrote:


objExcel.ActiveSheet.Range("B:B").Select
objExcel.Selection.NumberFormat = "#,##0"


No need to select the column:

objExcel.ActiveSheet.Columns("B:B").NumberFormat = "#,##0"

--
urkec


  #5   Report Post  
Posted to microsoft.public.scripting.vbscript,microsoft.public.excel.programming
external usenet poster
 
Posts: 6
Default How to insert the Thousands Separator (comma) in Excel?

On Jun 14, 1:53 pm, urkec wrote:
"Highlander" wrote:

objExcel.ActiveSheet.Range("B:B").Select
objExcel.Selection.NumberFormat = "#,##0"


No need to select the column:

objExcel.ActiveSheet.Columns("B:B").NumberFormat = "#,##0"

--
urkec


That pares it down to just one line. Thanks urkec.

While we're on a roll, I have another question. I want to implement
conditional formatting; where if a cell value in Column C is greater
than 50000, then that cell font will be changed to bold. Recording a
macro gave me this:

Sub Bold_Column()
Columns("C:C").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue,
Operator:=xlGreater, _
Formula1:="50000"
With Selection.FormatConditions(1).Font
.Bold = True
.Italic = False
End With
End Sub

I've tried transposing the code from this macro into my script, with
no luck. Any suggestions would be greatly appreciated.

Thanks!

- Dave



  #6   Report Post  
Posted to microsoft.public.scripting.vbscript,microsoft.public.excel.programming
external usenet poster
 
Posts: 2
Default How to insert the Thousands Separator (comma) in Excel?

Highlander schrieb:
On Jun 14, 1:53 pm, urkec wrote:
"Highlander" wrote:

objExcel.ActiveSheet.Range("B:B").Select
objExcel.Selection.NumberFormat = "#,##0"

No need to select the column:

objExcel.ActiveSheet.Columns("B:B").NumberFormat = "#,##0"

--
urkec


That pares it down to just one line. Thanks urkec.

While we're on a roll, I have another question. I want to implement
conditional formatting; where if a cell value in Column C is greater
than 50000, then that cell font will be changed to bold. Recording a
macro gave me this:

Sub Bold_Column()
Columns("C:C").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue,
Operator:=xlGreater, _
Formula1:="50000"
With Selection.FormatConditions(1).Font
.Bold = True
.Italic = False
End With
End Sub

I've tried transposing the code from this macro into my script, with
no luck. Any suggestions would be greatly appreciated.

Thanks!

- Dave

From your

Const xlDescending = 2
Const xlNormal = 1
Const xlCenter = -4108

code I gather, you'll have no problems to add the constants
for xlCellValue and xlGreater. That leaves you with the task to
convert the VBA named parameters like "Type:=xlCellValue" to
VBScript positional ones: Use the Excel/VBA documentation
to determine the prototype of the FormatConditions.Add method;
if you are lucky the method's parameter list looks like

Add Type, Operator, Formula1, Formula2

then you can write

Selection.FormatConditions.Add xlCellValue, xlGreater, "50000"

otherwise you'll have to distribute your values to the correct
positions. E.g.

Add Operator, Formula2, Type, Formula1

==

Selection.FormatConditions.Add xlGreater, , xlCellValue, "50000"

(use , , to skip (optional) parameters you can't/won't set)



  #7   Report Post  
Posted to microsoft.public.scripting.vbscript,microsoft.public.excel.programming
external usenet poster
 
Posts: 6
Default How to insert the Thousands Separator (comma) in Excel?

On Jun 15, 2:04 pm, "ekkehard.horner"
wrote:
Highlander schrieb:



On Jun 14, 1:53 pm, urkec wrote:
"Highlander" wrote:


objExcel.ActiveSheet.Range("B:B").Select
objExcel.Selection.NumberFormat = "#,##0"
No need to select the column:


objExcel.ActiveSheet.Columns("B:B").NumberFormat = "#,##0"


--
urkec


That pares it down to just one line. Thanks urkec.


While we're on a roll, I have another question. I want to implement
conditional formatting; where if a cell value in Column C is greater
than 50000, then that cell font will be changed to bold. Recording a
macro gave me this:


Sub Bold_Column()
Columns("C:C").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue,
Operator:=xlGreater, _
Formula1:="50000"
With Selection.FormatConditions(1).Font
.Bold = True
.Italic = False
End With
End Sub


I've tried transposing the code from this macro into my script, with
no luck. Any suggestions would be greatly appreciated.


Thanks!


- Dave


From your

Const xlDescending = 2
Const xlNormal = 1
Const xlCenter = -4108

code I gather, you'll have no problems to add the constants
for xlCellValue and xlGreater. That leaves you with the task to
convert the VBA named parameters like "Type:=xlCellValue" to
VBScript positional ones: Use the Excel/VBA documentation
to determine the prototype of the FormatConditions.Add method;
if you are lucky the method's parameter list looks like

Add Type, Operator, Formula1, Formula2

then you can write

Selection.FormatConditions.Add xlCellValue, xlGreater, "50000"

otherwise you'll have to distribute your values to the correct
positions. E.g.

Add Operator, Formula2, Type, Formula1

==

Selection.FormatConditions.Add xlGreater, , xlCellValue, "50000"

(use , , to skip (optional) parameters you can't/won't set)- Hide quoted text -

- Show quoted text -


Okay I've added these Constants:

Const xlCellValue = 1
Const xlGreater = 5

And then the following code works:

'~~ Insert Bold and Red Font for any value greater than 50000 in
Column C
objExcel.Range("C:C").Select
objExcel.Selection.FormatConditions.Delete
objExcel.Selection.FormatConditions.Add xlCellValue, xlGreater,
"50000"
With objExcel.Selection.FormatConditions(1).Font
.Bold = True
.ColorIndex = 3 'Red
.Italic = False
End With

There is one problem though. Some of the cells in Column C contain
text, not a number, and the text is getting changed to Bold and Red
font. I only want the font to change for cells that contain a number.
How do I exclude the text cells from the conditional formatting?

Thanks in advance!

- Dave

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
separator of thousands Antonio Excel Discussion (Misc queries) 0 April 4th 08 01:28 AM
How do I default separator for thousands when working in XLS in t. Kamal Singh Oberh Excel Worksheet Functions 3 April 30th 07 07:20 AM
Convert a number to text and add a comma separator for thousands prahz Excel Programming 2 December 7th 06 06:19 PM
thousands comma separator in VBA Wendy Francis Excel Discussion (Misc queries) 2 October 25th 05 01:14 AM
separator of thousands excelFan Excel Discussion (Misc queries) 2 December 27th 04 12:27 PM


All times are GMT +1. The time now is 07:36 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"