Macro not running anymore

  • Thread starter Thread starter Andreas
  • Start date Start date
A

Andreas

Hi,

I use the following macro and it used to run fine - until yesterday.
Then, I had to manually stop it (using the windows task manager). Now,
t's not working anymore. Well, it seems as if it's still working, but
the output file is not created.

Any ideas about the problem? Thanks,

Andreas

Sub test()
ListCombos Range("A1:A5"), 3, "Output.csv"
End Sub

Sub ListCombos(r As Range, ByVal m As Long, sFile As String)
' lists the combinations of r choose m to file sFile
' r is a single-column or single-row range
Dim ai() As Long
Dim i As Long
Dim n As Long
Dim sOut As String

Dim iFF As Integer

If r Is Nothing Then Exit Sub
If r.Rows.Count <> 1 And r.Columns.Count <> 1 Then Exit Sub

n = r.Count
If m < 1 Then Exit Sub
If m > n Then m = n

iFF = FreeFile
Open sFile For Output As #iFF

Redim ai(1 To m)

ai(1) = 0
For i = 2 To m
ai(i) = i
Next i

Do
For i = 1 To m - 1
If ai(i) + 1 < ai(i + 1) Then
ai(i) = ai(i) + 1
Exit For
Else
ai(i) = i
End If
Next i
If i = m Then
If ai(m) < n Then
ai(m) = ai(m) + 1
Else
Exit Do
End If
End If

' catenate and write to file
sOut = vbNullString
For i = 1 To m
sOut = sOut & r(ai(i)).Text & ","
Next i
Write #iFF, Left(sOut, Len(sOut) - 1)
Loop

Close #iFF
End Sub
 
hi Andreas,
maybe you´re searching the output.csv in the wrong directory?
If you use file/open to open a file in Excel and start the macro,
output.csv will be saved in the directory of file/open-dialog and not
in the directory of the file with the macro. therefore add a path to
your macro, eg
ListCombos Range("A1:A5"), 3, thisworkbook.path & "\Output.csv"

bye
stefan
 
Thanks, Stefan.

Unfortunately, it's still not working. It's strange because it worked
before, saving the output file in the directory where I saved the
excel file.

I wonder if I crashed my Excel program when stopping the macro using
the task manager?

Andreas
 
hi Andreas,
i can´t believe that the task manager somehow influenced your macro or
file.
you could use Textboxes or Debug.print in your code to check if it`s
running.
Did you check the code adding a path and forgot to insert the \ before
output.csv ?

bye
stefan
 
Back
Top