View Single Post
  #9   Report Post  
Posted to microsoft.public.excel.programming
Rick Rothstein \(MVP - VB\)[_2291_] Rick Rothstein \(MVP - VB\)[_2291_] is offline
external usenet poster
 
Posts: 1
Default Creation of a table of n values

As long as I spent the time to develop it, here is another way...

Sub ExpandColumnByValues()
Dim X As Long
Dim Z As Long
Dim Index As Long
Dim LastRow As Long
Dim Total As Long
Dim Contents() As Long
With Worksheets("Sheet3")
LastRow = .Cells(Rows.Count, "A").End(xlUp).Row
Total = Application.WorksheetFunction.Sum(.Range("A1:A" & LastRow))
If Total Rows.Count Then
MsgBox "Error - You will go past the end of the worksheet!"
Exit Sub
End If
ReDim Contents(1 To Total)
For X = 1 To LastRow
For Z = 1 To .Cells(X, "A").Value
Index = Index + 1
Contents(Index) = .Cells(X, "A").Value
Next
Next
For X = 1 To Total
.Cells(X, "A").Value = Contents(X)
Next
End With
End Sub

Rick


wrote in message
...
Rick, I have only one column to create.
Nigel, I am actually using excel 2003. It is indeed possible to run
out of rows with the kind of result I expect, although in my case the
final table is around 30,000 rows.

Gary, thx for your help. I finally succeeded to get what I was looking
for.

On Jul 11, 3:00 pm, "Gary Keramidas" <GKeramidasATmsn.com wrote:
you can change the column letter to what you want

Sub test()
Dim i As Long
Dim j As Long
Dim lastrow As Long
Dim cell As Range
Dim numval As Long
Dim z As Long
Dim ws As Worksheet
z = 1

Set ws = Worksheets("Sheet1")
lastrow = ws.Cells(Rows.Count, "A").End(xlUp).Row
For Each cell In ws.Range("A1:A" & lastrow)
For i = 1 To Len(cell.Value)
numval = Mid(cell.Value, i, 1)
For j = 1 To numval
ws.Cells(z, "B").Value = numval
z = z + 1
Next
Next
Next
End Sub

--

Gary

wrote in message

...

Thx. It is not exactly what I am looking for but I can use it as a
good basis. (I actually don't need to create new columns for each
value, everything should be listed in one column)


On 11 juil, 13:48, "Gary Keramidas" <GKeramidasATmsn.com wrote:
i forgot to ask what you wanted to do if a number had a zero in it.


--


Gary


wrote in message


...


Hi all,


I have a small but anyway very interesting problem with Excel.
I am actually starting from a table with some values inside. For
example:
4
2
5


I am looking for a formula which would give me a new table like this:
4
4
4
4
2
2
5
5
5
5
5


I tried quite a few things, especially with the offset function, but
couldn't set it. Your help would be greatly appreciated!
Of course, I can't do it manually as my numbers look like 127,221 and
not 4 or 5.


Thank you,
Johan