Converting Text To Hexadecimal Flash CS5 - flash-cs5

I am making a colour tester which consist of a background and 3 text box. You can enter the hexadecimal in each of the boxes which will change the background e.g.
_ _ _ 0xF59900 _ _ _
Box1:F5 _ _ _ Box2:99 _ _ _ Box3:00
The top bit where it says "0xF59900" is a text field. How do I convert this to uint so that I can change the background colour.

Try something like:
var bgColor = "0x123456";
var bgColor:uint = uint(bgColor);

Related

VBA Excel - Proper Case Exceptions?

I have a macro written to convert customer names and titles to proper case if they aren't already. The problem with that is I sometimes have a list with abbreviations or acronyms (ie "High School" = "HS" ; Limited Partnership = "LP").
The issue is that my macro will proper case what should remain in upper case. To work around this I have a few exceptions written into my macro. Here's an example:
Dim fndList As Variant
Dim rplcList As Variant
Dim F As Long
fndList = Array("'S", "Xdock", "Llc", "Us ", "Urs", "Lc ", "Bbq", "Dq")
rplcList = Array("'s", "XDock", "LLC", "US ", "URS", "LC ", "BBQ", "DQ")
For F = 0 To UBound(fndList)
Selection.Replace What:=fndList(F), Replacement:=rplcList(F), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
Is there a way to write a rule that recognizes if the term is not a word then it defaults to upper case?
The other issue I have with my temporary solution is that some words containing the array will revert to upper case (ie: "Famous" = "FamoUS" ; "Alcohol" = "ALCohol" ; "Yourselves" = `YoURSelves").
Appreciate any help, pleae let me know if you require more info on my part.

VBA - Txt file with two delimiters for rows and columns

I have a .txt file where columns are delimited with | (pipe) but rows are delimited with the following string: _ ~|~ _
Is there a way to import this by delimiting rows based on the string? If I could just do that, I would be able to do text to columns easily.
This is tricky because the space in each row in Notepad is being exhausted. For example:
Policy|Name|Cost _ ~|~ _ 11924|Joe|$20 _ ~|~ _ 154 (end of notepad space)
35|Bob|$40 _ ~|~ _ 18439|Jane|$30 _ ~|~ _ 18492|Ri
chard|$50
I need this to read:
Policy Name Cost
11924 Joe $20
15435 Bob $40
18439 Jane $30
18492 Richard $50
and so on. Note that values at the far right are split because notepad has exhausted its line length.
Thanks for any ideas!
You can pre-process the text before importing to Excel using a more powerful text editor such as TextPad.
In TextPad, do a Replace (F8 key). First let's get rid of your so called "end of notepad space" which I read as line breaks.
Use regular expression to replace double carriage returns "\n\n" with nothing:
Then, replace pipes "\|" with spaces " ":
Then, replace "_ ~ ~ _ " with a carriage return "\n":
This is the final text that should be ready to import into Excel:
Hope that helps! TextPad is a great tool to have around.
You can do this in a single step using a VBA macro.
Read in the entire file to a VBA String variable
Remove the newline characters
Split on the row delimiter
This results in a 1D array
Convert the array to a 2D array
write the results to the worksheet
Do text to columns using the pipe as the delimiter
Option Explicit
'SET REFERENCE to Microsoft Scripting Runtime
Sub ImportSpecial()
Dim FSO As FileSystemObject
Dim TS As TextStream
Dim sFN As Variant
Dim S As String
Dim V As Variant
Dim R As Range
sFN = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If Not sFN = False Then
Set FSO = New FileSystemObject
Set TS = FSO.OpenTextFile(sFN, ForReading, False, TristateFalse)
'Remove the linefeeds
S = TS.ReadAll
S = Replace(S, vbNewLine, "")
'If data is large, will need to transpose manually
V = Application.WorksheetFunction.Transpose(Split(S, "_ ~|~ _"))
Set R = ActiveSheet.Cells(1, 1).Resize(UBound(V), 1)
With R
.EntireColumn.Clear
.Value = V
.TextToColumns Destination:=R(1), _
DataType:=xlDelimited, _
Tab:=False, semicolon:=False, comma:=False, Space:=False, _
other:=True, otherchar:="|"
.EntireColumn.AutoFit
End With
End If
End Sub

How to sort using a defined name in Excel?

I have a Macro that sorts a database column by the category name with a custom order. I'm not sure if it is possible but I would like to use a defined name that contains all of the category names that is called Sorting_List. I would like for the defined name Sorting_List to replace the "FL,MF,HF,Furnace Eng,Launder,CM,CM Eng,ML,PP,Lab SOT,Lab AT,SSP,SII,NAPS,ES,FM,PW,C2H2,CA,Fluids,Fluids Eng,Elec,PMDA,Elec Eng,CH SW,CH SII,CH Std,CH High,CH Elec,CH Eng,CH FS,FS SW,FS SII,FS Elec,Eng,Train,Lab,Lab SW" so if I ever change anything in that defined name list it will automatically change in my macro. Below is my code. Any help is much appreciated.
ActiveWorkbook.Worksheets("Database").ListObjects("Database").Sort.SortFields. _
Add Key:=Range("Database[Category]"), SortOn:=xlSortOnValues, Order:= _
xlAscending, CustomOrder:= _
"FL,MF,HF,Furnace Eng,Launder,CM,CM Eng,ML,PP,Lab SOT,Lab AT,SSP,SII,NAPS,ES,FM,PW,C2H2,CA,Fluids,Fluids Eng,Elec,PMDA,Elec Eng,CH SW,CH SII,CH Std,CH High,CH Elec,CH Eng,CH FS,FS SW,FS SII,FS Elec,Eng,Train,Lab,Lab SW" _
, DataOption:=xlSortNormal
Dim sCustomOrder as String
Dim rng as Range
sCustomOrder = ""
For Each rng in ActiveWorkbook.Names("Sorting_List").RefersToRange
If rng.Text <> "" Then sCustomOrder = sCustomOrder & "," & rng.Text
Next rng
ActiveWorkbook.Worksheets("Database").ListObjects("Database").Sort.SortFields.Add _
Key:=Range("Database[Category]"), _
SortOn:=xlSortOnValues, _
Order:= xlAscending, _
CustomOrder:= sCustomOrder, _
DataOption:=xlSortNormal

Macro for Text to columns

Sub Macro9()
'
' Macro9 Macro
'
'
Selection.TextToColumns Destination := Range("A3"), DataType := xlFixedWidth, _
FieldInfo := Array(Array(0,1),Array(60,1),Array(63,1),Array(68,1),Array(71,1), _
Array(85,1),Array(88,1),Array(93,1),Array(99,1),Array(107,1),Array(111,1),Array _
(120,1),Array(123,1),Array(127,1),Array(130,1),Array(134,1),Array(143,1),Array( _
147,1),Array(157,1),Array(162,1),Array(165,1),Array(170,1),Array(202,1),Array( _
233,1),Array(236,1),Array(238,1),Array(248,1),Array(251,1),Array(260,1),Array( _
265,1),Array(277,1),Array(283,1),Array(287,1),Array(291,1),Array(295,1),Array( _
299,1),Array(302,1),Array(306,1),Array(310,1),Array(322,1),Array(326,1),Array( _
332,1),Array(335,1),Array(338,1),Array(344,1),Array(348,1),Array(356,1),Array( _
360,1),Array(367,1),Array(373,1),Array(375,1),Array(384,1),Array(387,1),Array( _
394,1),Array(398,1),Array(403,1),Array(409,1),Array(413,1),Array(419,1),Array( _
424,1),Array(429,1),Array(432,1),Array(438,1),Array(444,1),Array(449,1),Array( _
454,1),Array(458,1),Array(463,1),Array(468,1),Array(474,1),Array(478,1),Array( _
481,1),Array(484,1),Array(489,1),Array(493,1),Array(524,1),Array(554,1),Array( _
557,1),Array(563,1),Array(565,1),Array(577,1),Array(594,1),Array(613,1),Array( _
616,1),Array(620,1),Array(626,1),Array(629,1),Array(634,1),Array(646,1),Array( _
654,1),Array(659,1),Array(667,1),Array(669,1),Array(675,1),Array(683,1),Array( _
689,1),Array(696,1),Array(699,1),Array(706,1),Array(714,1),Array(717,1),Array( _
721,1),Array(728,1),Array(730,1),Array(743,1),Array(751,1),Array(754,1),Array( _
758,1),Array(767,1),Array(774,1),Array(779,1),Array(787,1),Array(790,1),Array( _
798,1),Array(805,1),Array(808,1),Array(817,1),Array(822,1),Array(826,1),Array( _
835,1),Array(845,1),Array(853,1),Array(857,1),Array(864,1),Array(869,1),Array( _
877,1),Array(881,1),Array(891,1),Array(895,1),Array(903,1),Array(912,1),Array( _
916,1),Array(920,1),Array(927,1),Array(933,1),Array(937,1),Array(941,1),Array( _
End Sub
I have 800 words in cell A3 in sheet input1, i recorded above macro by using function "Text to columns" in Excel 2007 which is giving error "Too many line continuations".
Can someone tell me the exact code please, indeed I want to add all the 800 words in different individual cells as one word in each cell in the same row.
I do not believe it is possible to tell the Macro Recorder to create longer lines so I do not think TextToColumns can be made to record this code for you.
You are using the fixed width option so words are starting at position 0, 60, 63, 68, 71 and so on. The start positions for about 120 words have been have been recorded so, if you wanted to build an array like this, you will have a lot of typing.
You say "words". To me that implies variable length strings separated by spaces. If that is correct, try the code below. It uses function Split to split cell A3 into words by space. These are then spread out along row 4 with any gaps created by double or triple spaces ignored.
Option Explicit
Sub SplitCell()
Dim CellCrnt As Long
Dim InxW As Long
Dim Word() As String
With Worksheets("input1")
Word = Split(.Range("A3"), " ")
CellCrnt = 1
For InxW = LBound(Word) To UBound(Word)
' Any double spaces will cause empty entries in Word.
' Ignore these empty entries
If Word(InxW) <> "" Then
.Cells(4, CellCrnt).Value = Word(InxW)
CellCrnt = CellCrnt + 1
End If
Next
End With
End Sub

excel formulaarray

hi why do i get the runtime error 13: type mismatch error
while running the following code
Application.Goto Reference:="R1C1:R232C221"
Selection.FormulaArray = "=ROUND(a(),0)"
Selection.Replace What:="a()", Replacement:="IF(IF(Sheet4!A1:HM232+Sheet5!A1:HM232=2,0," & _
"Sheet4!A1:HM232+Sheet5!A1:HM232)+IF(Sheet4!A1:HM232+Sheet5!A1:HM232=2,0," & _
"Sheet4!A1:HM232+Sheet5!A1:HM232)=2,0,IF(Sheet4!A1:HM232+Sheet5!A1:HM232=2,0," & _
"Sheet4!A1:HM232+Sheet5!A1:HM232)+IF(Sheet4!A1:HM232+Sheet5!A1:HM232=2,0,Sheet4!A1:HM232+Sheet5!A1:HM232))", LookAt _
:=xlPart, SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
Range("I9").Select
1) i know that formulaarray should be in R1C1 style... but A1 style is not required, it also works without any problems in A1 style
http://msdn.microsoft.com/en-us/library/bb208529.aspx
2) i found this way of writing from
http://www.dailydoseofexcel.com/archives/2005/01/10/entering-long-array-formulas-in-vba/
Let's analyze your Replacement:
Replacement:="IF(IF(Sheet4!A1:HM232+Sheet5!A1:HM232=2,0," & _
"Sheet4!A1:HM232+Sheet5!A1:HM232)+IF(Sheet4!A1:HM232+Sheet5!A1:HM232=2,0," & _
"Sheet4!A1:HM232+Sheet5!A1:HM232)=2,0,IF(Sheet4!A1:HM232+Sheet5!A1:HM232=2,0," & _
"Sheet4!A1:HM232+Sheet5!A1:HM232)+IF(Sheet4!A1:HM232+Sheet5!A1:HM232=2,0,Sheet4!A1:HM232+Sheet5!A1:HM232))"
(1) change Sheet4!A1:HM232+Sheet5!A1:HM232 to X:
Replacement:="IF(IF(X=2,0," & _
"X)+IF(X=2,0," & _
"X)=2,0,IF(X=2,0," & _
"X)+IF(X=2,0,X))"
(2) glue the broken pieces back together:
Replacement:="IF(IF(X=2,0,X)+IF(X=2,0,X)=2,0,IF(X=2,0,X)+IF(X=2,0,X))"
(3) change IF(X=2,0,X) to Y:
Replacement:="IF(Y+Y=2,0,Y+Y)"
(4) some evaluation:
If X is 2, Y is 0, and the result is 0.
If X is 1, Y is 1, and the result is
0.
If X is anything else, Y is X, and the
result is 2*X.
(5) so the formula is equivalent to:
Replacement:="IF(OR(X=2,X=1),0,2*X)"
(6) so the next step would be to replace X (step 1 in reverse) ...
I'll just leave you with a question or two: How did it become so messy? Have you heard of "DRY" (Don't Repeat Yourself)?
I believe the "replacement" argument is too long. You need to keep that string under 255 characters. Put more of the formula into the Selection.FormulaArray line so that the replacement is less than 255 characters.

Resources