Prev Previous Post   Next Post Next
  #5   Report Post  
Posted to microsoft.public.excel.misc
Scott
 
Posts: n/a
Default Array Problem

I rewrote the question... Dialogbox use Pivot or Array Forms?
I am working on the array logic more then anything else, eventually i can
get it to run but I have only been working in vba for a week now so I am
really confused about a ton of this stuff. I would look through the previous
posts but it is so hard to find anything that directly applies.

--
Scott Miller
University of Washington
Chemistry


"Dave Peterson" wrote:

Instead of reformulating the question, you may want to look to see if there's
anything in that code that would solve the underlying question.

Scott wrote:

You certainly answered the question! I will have to reformulate the question
to get the answer to what is currently the trouble. Lost of great stuff in
the code though. i thank you for your time.
--
Scott Miller
University of Washington
Chemistry

"Dave Peterson" wrote:

First, I'm gonna guess that this is code from a commandbutton from the control
toolbox toolbar placed on a worksheet.

If that's the case, then you have a few unqualified range objects. And since
they're not qualified, they belong to the worksheet that holds the code (the
worksheet with the commandbutton).

This would cause errors when you try to select a range on a sheet that wasn't
active--and opening a workbook would make the worksheet that's active in that
workbook the activesheet.

Because I'm confused about what ranges belong to what sheets/workbooks, this
suggested code may not work as you intended. But I think you'll be able to
modify it pretty easily.

I also don't like selecting stuff and activating windows. Selecting stuff
usually makes the code more difficult to read and slower to run. And activating
a window relies on the correct worksheet being active--and that might not happen
all the time.

Heck, if there are multiple windows into that workbook, the windows().activate
may not even work correctly.

I didn't test this, but it did compile ok.

Option Explicit
Private Sub CommandButton1_Click()

Dim PlayerNum() As Variant

Dim ImportWks As Worksheet
Dim ImportWkbkName As String
Dim ImportWksName As String

Dim RngToCopy As Range
Dim LastRow As Long
Dim LastCol As Long

Dim DataWks As Worksheet
Dim myRng As Range
Dim myCell As Range

'integers have no advantage over longs
'and longs have many advantages over integers
'number of rows in a worksheet for example.
Dim i As Long

Set DataWks = Me.Parent.Worksheets("Data")
'or just
'Set DataWks = Me
'if the button was on the Data worksheet

'It might be easier to just have a variable for each string.
'then when/if they change, you just have to change it once.
ImportWkbkName = "C:\Documents and Settings\Scott Miller" _
& "\My Documents\Handicap\Data.xls"
ImportWksName = "Sheet1" '<-- change the name here

Set ImportWks = Nothing
On Error Resume Next
Set ImportWks = Workbooks.Open(Filename:=ImportWkbkName, ReadOnly:=True) _
.Worksheets(ImportWksName)
On Error GoTo 0

If ImportWks Is Nothing Then
MsgBox "Design error--contact Scott!"
Exit Sub
End If

With ImportWks
'I used the data in column A to find the last row
'and the data in row 1 to find the last column
'this may need to be changed for your data
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
Set RngToCopy = .Range("a1", .Cells(LastRow, LastCol))

'clean up existing data?
DataWks.Cells.ClearContents
'me means the worksheet that holds the code

RngToCopy.Copy _
Destination:=DataWks.Range("a1")

'close the workbook that was just opened
.Parent.Close savechanges:=False

End With

With DataWks
'start in A2
Set myRng = .Range("A2", .Cells(.Rows.Count, "A").End(xlUp))

i = 0
For Each myCell In myRng.Cells
If IsEmpty(myCell.Value) Then
'do nothing -- just in case??
Else
i = i + 1
ReDim Preserve PlayerNum(1 To i)
PlayerNum(i) = myCell.Value
End If
Next myCell
End With

'just to show you the results...
If i = 0 Then
MsgBox "something very bad happened."
Else
For i = LBound(PlayerNum) To UBound(PlayerNum)
MsgBox PlayerNum(i)
Next i
End If

End Sub

By the way, this doesn't insure unique values in that array--they'll only be
unique if the range you copied/pasted was a unique list.

If you really wanted a unique list, John Walkenbach has some sample code that
you could use:
http://j-walk.com/ss/excel/tips/tip47.htm


Scott wrote:

I am having trouble with this program and I think it is something minor...It
scans the first column in the sheet "Data" and returns unique values to be
stored in an array "PlayerNum".

Private Sub CommandButton1_Click()
Dim PlayerNum() As Variant
Dim x As Integer
Dim i As Integer

ChDir "C:\Documents and Settings\Scott Miller\My Documents\Handicap"
Workbooks.Open Filename:= _
"C:\Documents and Settings\Scott Miller\My
Documents\Handicap\Data.xls"
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("Handicap.xls").Activate
Range("A1").Select
ActiveSheet.Paste
Windows("Data.xls").Activate
ActiveWindow.Close
Windows("Handicap.xls").Activate
Sheets("Data").Select

x = 3
i = 1
PlayerNum(i).Value = Sheets("Data").Cells(2, 1).Value

Do
Sheets("Data").Cells(x, 1).Select
If ActiveCell.Value = PlayerNum(i).Value Then
x = x + 1
Else
i = i + 1
ReDim Preserve PlayerNum(i) As Variant
PlayerNum(i).Value = ActiveCell.Value
End If

Loop Until Cells(x, 1).Value = ""


End Sub

Scott Miller
University of Washington
Chemistry

--

Dave Peterson


--

Dave Peterson



 
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
Array Formula Not Working with Range with Formulas [email protected] Excel Discussion (Misc queries) 4 February 1st 06 02:01 PM
Array Brad Excel Worksheet Functions 9 October 17th 05 09:00 PM
Sumproduct / Max array formula problem Andibevan Excel Worksheet Functions 5 August 25th 05 01:18 AM
Problem with array and msgbox aking1987 Excel Worksheet Functions 0 November 1st 04 08:57 AM
Problem with array and msgbox aking1987 Excel Worksheet Functions 1 October 29th 04 01:57 PM


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