Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 34
Default SAP BW Report - Putting the Unit of Measure or Currency in another Cell based on Format Cell

I have an SAP BW (Business Warehouse) report that is downloaded to Excel.
In this report the Volume is reported with various Units of Measure (e.g.
KG, EA, LB, etc) and the Revenue is reported in different currency (e.g.
EUR, CHF, JPY, or blank if it is USD).

These formats are achieve via the "Format Cells - Custom" command with the
format:

#,##0 "KG";-#,##0 "KG";

or

#,##0 "EUR";-#,##0 "EUR";

depending upon the unit of measure or currency of each record US Dollar
sales are formated with a simple

#,##0;-#,##0

I would like to move the text associated with the format (e.g. KG or EUR) to
the column next to the cell the amount is in. I can not figure out how to
identify the text part of the format of the cell such that cell A1 would
contain the number in its current format (e.g. 123 EUR) and cell B1 would
contain the text (e.g. EUR or KG). Can someone point me in the right VBA
direction?

Thanks,

Frank


  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 34
Default SAP BW Report - Putting the Unit of Measure or Currency in another Cell based on Format Cell

With some help I was able to build the following function to accomplish
this.

Option Explicit


Function CustomFormatText(Cell) As String

' This function was written by Frank Hayes of DuPont with help
' from Rich Eagles of Deloitte Consulting and
' Niek Otten from the microsoft.public.excel.misc newsgroup
'
' The function will strip out the text between the first set
' of quote marks in the target cell and write them to
' the cell from which the function was called.
'
' It is meant to be used when you are trying to strip out the
' currency name from a cell that is format as a number with
' a custom format such as #,##0 "EUR"
'

Dim i As Long
Dim x As String
Dim CustomFormatString As String

Dim FirstQuote As Boolean
Dim SecondQuote As Boolean

FirstQuote = False
SecondQuote = False

CustomFormatString = Cell.NumberFormat

For i = 1 To Len(CustomFormatString)
x = Mid$(CustomFormatString, i, 1)

' Find the first quote sign in the custom format
If FirstQuote = False Then
If Asc(x) = 34 Then
FirstQuote = True
GoTo GetNextCharacter
End If
End If

' Find the second quote sign in the custom format
If FirstQuote = True Then
If Asc(x) = 34 Then
SecondQuote = True
GoTo TheEnd
End If
End If

' Write out the characters between the first and second quote
If FirstQuote = True And SecondQuote = False Then
CustomFormatText = CustomFormatText + x
End If

GetNextCharacter:
Next i

TheEnd:
End Function





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
How to add new currency Symbol in Format/Cell/Currency NOORZAD Excel Discussion (Misc queries) 2 June 22nd 09 07:59 AM
How to set 2 currency format in 1 cell?? Lee Excel Discussion (Misc queries) 2 April 22nd 08 07:29 PM
Change Currency Format of Cell based on another Cell Simon Excel Worksheet Functions 2 September 2nd 07 04:53 PM
How do I change default unit of measure from cm to inches? Woodster Setting up and Configuration of Excel 4 August 24th 06 04:24 AM
start a macro or procedure based on user putting an x in a cell mathew Excel Discussion (Misc queries) 0 August 17th 06 06:21 PM


All times are GMT +1. The time now is 07:32 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"