From: JoeBoynton on
I'll try your suggestion later, couldnt just now
btw i converted the cells from text to number 1 by 1 as follows:

Dim oRange = oWs.Range("A1").Resize(reszRow, rs.Fields.Count)
oRange.Value = TheArray

' rs is from legacy Acucobol vision files read with odbc/dao off of
Linux server

For myOrRow = 1 To ArrayRowCount + 1

' Extra row count above because I loaded headers into row 1

For myOrColumn = 1 To rs.Fields.Count
If IsNumeric(oRange(myOrRow, myOrColumn).Value) Then
oRange(myOrRow, myOrColumn).Value = oRange(myOrRow,
myOrColumn).Value.ToString * 1
End If
Next
Next

This seems to fix the problem, but its a time killer cause it's cell by cell

Thx for suggestions

"p45cal" wrote:

>
> How are you getting the numbers-stored-as text into cells to test?
> I'll do the same and test again..
>
>
>
>
Peter T;705601 Wrote:
> >
> Not here it doesn't -:)
> >
> > Regards,
> > Peter T
> >
> >
> > "p45cal" <p45cal.49s8qt(a)thecodecage.com> wrote in message
> > news:p45cal.49s8qt(a)thecodecage.com...
> > >
> > > the likes of:
> > >
> > >
> > > VBA Code:
> > > --------------------
> > >
> > >
> > > Range("A1:M200")=Range("A1:M200").value
> > > --------------------
> > >
> > >
> > >
> > > seems to work here.
> > >
> > >
> > > JoeBoynton;705352 Wrote:[color=green]
> > >>
> > > Hi,
> > >> I need help on how to automate the conversion of a range of Excel
>
>
> --
> p45cal
>
> *p45cal*
> ------------------------------------------------------------------------
> p45cal's Profile: http://www.thecodecage.com/forumz/member.php?u=558
> View this thread: http://www.thecodecage.com/forumz/showthread.php?t=197375
>
> http://www.thecodecage.com/forumz
>
> .
>
From: Peter T on
That's just about the slowest way you could contrive to do it. You could try
doing as p45cal suggests (depends, it might not always work)
with rng
..numberformat = "General"
..value = .value
arr = .value
end with

or pastevalues with multiply 1 as I suggested (I also posted code sample)

If you don't want to change cells at all, read the entire range to an array,
then loop the array to change items as required (that'd be very
significantly faster than looping cells though probably not as quick as the
pastespecial multiply approach).

Regards,
Peter T


"JoeBoynton" <JoeBoynton(a)discussions.microsoft.com> wrote in message
news:9221B23A-45B9-4596-BBB5-E39D0B1D0759(a)microsoft.com...
> I'll try your suggestion later, couldnt just now
> btw i converted the cells from text to number 1 by 1 as follows:
>
> Dim oRange = oWs.Range("A1").Resize(reszRow, rs.Fields.Count)
> oRange.Value = TheArray
>
> ' rs is from legacy Acucobol vision files read with odbc/dao off of
> Linux server
>
> For myOrRow = 1 To ArrayRowCount + 1
>
> ' Extra row count above because I loaded headers into row 1
>
> For myOrColumn = 1 To rs.Fields.Count
> If IsNumeric(oRange(myOrRow, myOrColumn).Value) Then
> oRange(myOrRow, myOrColumn).Value = oRange(myOrRow,
> myOrColumn).Value.ToString * 1
> End If
> Next
> Next
>
> This seems to fix the problem, but its a time killer cause it's cell by
> cell
>
> Thx for suggestions
>
> "p45cal" wrote:
>
>>
>> How are you getting the numbers-stored-as text into cells to test?
>> I'll do the same and test again..
>>
>>
>>
>>
> Peter T;705601 Wrote:
>> >
>> Not here it doesn't -:)
>> >
>> > Regards,
>> > Peter T
>> >
>> >
>> > "p45cal" <p45cal.49s8qt(a)thecodecage.com> wrote in message
>> > news:p45cal.49s8qt(a)thecodecage.com...
>> > >
>> > > the likes of:
>> > >
>> > >
>> > > VBA Code:
>> > > --------------------
>> > >
>> > >
>> > > Range("A1:M200")=Range("A1:M200").value
>> > > --------------------
>> > >
>> > >
>> > >
>> > > seems to work here.
>> > >
>> > >
>> > > JoeBoynton;705352 Wrote:[color=green]
>> > >>
>> > > Hi,
>> > >> I need help on how to automate the conversion of a range of Excel
>>
>>
>> --
>> p45cal
>>
>> *p45cal*
>> ------------------------------------------------------------------------
>> p45cal's Profile: http://www.thecodecage.com/forumz/member.php?u=558
>> View this thread:
>> http://www.thecodecage.com/forumz/showthread.php?t=197375
>>
>> http://www.thecodecage.com/forumz
>>
>> .
>>


From: Peter T on
Yeah I know, but you didn't mention that originally. Also I'm almost sure
from memory that approach doesn't work in some scenarios (I might be wrong)

Regards,
Peter T

"p45cal" <p45cal.49sfg1(a)thecodecage.com> wrote in message
news:p45cal.49sfg1(a)thecodecage.com...
>
> I suspect that could be because you're changing the format of the cells
> and not changing it back. Try this on a virgin sheet:
>
>
> VBA Code:
> --------------------
>
>
> Sub test2()
> Debug.Print Range("A1").NumberFormat 'to establish pre-existing format i
> General
> With Range("A1:A10")
> .NumberFormat = "@"
> .Value = "0123" ' also try 123 without quotes
> .NumberFormat = "General" 'reset to default format, now you have numbers
> stored as text.
> Debug.Print VarType(Range("A1").Value) ' 8 or vbString
> .Value = .Value
> Debug.Print VarType(Range("A1").Value) ' 5
> End With
> End Sub
>
> --------------------
>
>
>
>
>
> Peter T;705675 Wrote:
>>
> Sub test2()
>> With Range("A1:A10")
>> .NumberFormat = "@"
>> .Value = "0123" ' also try 123 without quotes
>> .Value = .Value
>> End With
>>
>> Debug.Print VarType(Range("A1").Value) ' 8 or vbString
>>
>> With Range("B1")
>> .Value = 1
>> .Copy
>> End With
>>
>> Range("A1:A10").PasteSpecial Operation:=xlMultiply
>>
>> Debug.Print VarType(Range("A1").Value) ' 5 or vbDouble
>>
>> End Sub
>>
>> Regards,
>> Peter T
>>
>> "p45cal" <p45cal.49sc7m(a)thecodecage.com> wrote in message
>> news:p45cal.49sc7m(a)thecodecage.com...
>> >
>> > How are you getting the numbers-stored-as text into cells to test?
>> > I'll do the same and test again..
>> >
>> >
>> >
>> > Peter T;705601 Wrote:
>> >>
>> > Not here it doesn't -:)
>> >>
>> >> Regards,
>> >> Peter T
>> >>
>> >>
>> >> "p45cal" <p45cal.49s8qt(a)thecodecage.com> wrote in message
>> >> news:p45cal.49s8qt(a)thecodecage.com...
>> >> >
>> >> > the likes of:
>> >> >
>> >> >
>> >> > VBA Code:
>> >> > --------------------
>> >> >
>> >> >
>> >> > Range("A1:M200")=Range("A1:M200").value
>> >> > --------------------
>> >> >
>> >> >
>> >> >
>> >> > seems to work here.
>> >> >
>> >> >
>> >> > JoeBoynton;705352 Wrote:[color=green]
>> >> >>
>> >> > Hi,
>> >> >> I need help on how to automate the conversion of a range of Excel
>> >
>> >
>> > --
>> > p45cal
>> >
>> > *p45cal*
>> >
> ------------------------------------------------------------------------
>> > p45cal's Profile: http://www.thecodecage.com/forumz/member.php?u=558
>> > View this thread:
>> > 'Excel Convert text to Number - The Code Cage Forums'
> (http://www.thecodecage.com/forumz/showthread.php?t=197375)
>> >
>> > 'Microsoft Office Help - Microsoft Office Discussion - Excel VBA
> Programming - Access Programming' (http://www.thecodecage.com/forumz)
>> >
>
>
> --
> p45cal
>
> *p45cal*
> ------------------------------------------------------------------------
> p45cal's Profile: http://www.thecodecage.com/forumz/member.php?u=558
> View this thread:
> http://www.thecodecage.com/forumz/showthread.php?t=197375
>
> http://www.thecodecage.com/forumz
>


From: p45cal on

so after:


VBA Code:
--------------------



oRange.Value = TheArray

--------------------



just have:


VBA Code:
--------------------



Orange.Value = Orange.Value

--------------------



you could also temporarily put the line:


VBA Code:
--------------------



Orange.numberformat = "General"

--------------------


before the -orange.value = orange.value- line but I'd expect you
wouldn't need that after the first run, especially if there are special
formats you want to keep in that range?

Anyway, try it and see, fingers crossed. At least it should be quick.

Afterthought: you don't have to do this for the whole range, you could
do it for just a few columns:


VBA Code:
--------------------



Orange.columns(2).value = Orange.columns(2).value

--------------------


or for more:


VBA Code:
--------------------



Set rngToMakeNos = Union(orange.Columns(3), orange.Columns(5), orange.Columns(7))
rngToMakeNos.Value = rngToMakeNos.Value

--------------------







J
o
e
B
o
y
n
t
o
n
;
7
0
5
7
2
3

W
r
o
t
e
:


>
I'll try your suggestion later, couldnt just now
> btw i converted the cells from text to number 1 by 1 as follows:
>
> Dim oRange = oWs.Range("A1").Resize(reszRow, rs.Fields.Count)
> oRange.Value = TheArray
>
> ' rs is from legacy Acucobol vision files read with odbc/dao off of
> Linux server
>
> For myOrRow = 1 To ArrayRowCount + 1
>
> ' Extra row count above because I loaded headers into row 1
>
> For myOrColumn = 1 To rs.Fields.Count
> If IsNumeric(oRange(myOrRow, myOrColumn).Value) Then
> oRange(myOrRow, myOrColumn).Value = oRange(myOrRow,
> myOrColumn).Value.ToString * 1
> End If
> Next
> Next
>
> This seems to fix the problem, but its a time killer cause it's cell by
cell
>
> Thx for suggestions
>
> "p45cal" wrote:
>
> >
> > How are you getting the numbers-stored-as text into cells to test?
> > I'll do the same and test again..
> >
> >
> >
> >
> Peter T;705601 Wrote:
> > >
> > Not here it doesn't -:)
> > >
> > > Regards,
> > > Peter T
> > >
> > >
> > > "p45cal" <p45cal.49s8qt(a)thecodecage.com> wrote in message
> > > news:p45cal.49s8qt(a)thecodecage.com...
> > > >
> > > > the likes of:
> > > >
> > > >
> > > > VBA Code:
> > > > --------------------
> > > >
> > > >
> > > > Range("A1:M200")=Range("A1:M200").value
> > > > --------------------
> > > >
> > > >
> > > >
> > > > seems to work here.
> > > >
> > > >
> > > > JoeBoynton;705352 Wrote:[color=green]
> > > >>
> > > > Hi,
> > > >> I need help on how to automate the conversion of a range of
Excel
> >
> >
> > --
> > p45cal
> >
> > *p45cal*
> >
------------------------------------------------------------------------
> > p45cal's Profile: http://www.thecodecage.com/forumz/member.php?u=558
> > View this thread: 'Excel Convert text to Number - The Code Cage
Forums' (http://www.thecodecage.com/forumz/showthread.php?t=197375)
> >
> > 'Microsoft Office Help - Microsoft Office Discussion - Excel VBA
Programming - Access Programming' (http://www.thecodecage.com/forumz)
> >
> > .
> >


--
p45cal

*p45cal*
------------------------------------------------------------------------
p45cal's Profile: http://www.thecodecage.com/forumz/member.php?u=558
View this thread: http://www.thecodecage.com/forumz/showthread.php?t=197375

http://www.thecodecage.com/forumz