Necesito ayuda urgente. Pasar datos de arrays de Visual a celdas de excel

anasa
06 de Septiembre del 2004
No encuentro nada claro para mi problema en concreto. Tengo que pasar de Arrays globales de Visual a una tabla de excel. He conseguido que al cargar un formulario abra una página de excel, pero ya no sé seguir. Ayudadme porque lo nencesito hoy mismo.
No creo que sea muy complicado. Yo puedo ir metiendo los datos de mis arrays en alguna variable auxiliar y voy pasándolos a las celdas de excel. No necesito nada más pero es que no encuentro en ningún sitio ese comando.
Por favor, ayudadme.
Tengo:
Private Sub Form_Load()
Dim Id As Long
Id = Shell("C:Archivos de ProgramaMicrosoft OfficeOfficeExcel", vbNormalFocus)
End Sub

Sonia
06 de Septiembre del 2004
Crea un boton con el nombre de EXPORTAR A EXCEL y pega este codigo:
Private Sub cmd2_Click()
Call GridExport(Flex4, "c:ConsFechas.csv", ",", Chr$(34))
End Sub

y crea otro Botón con el nombre de ABRIR DATOS EN EXCEL y pega lo sig:
Private Sub cmd1_Click()
Dim lresult As Long
sNewXlsFile = "C:ConsFechas.csv"
' ShellExecute abre o imprime el archivo especificado

On Error GoTo ErrorHandler
Screen.MousePointer = vbHourglass
lresult = ShellExecute(Me.hWnd, "open", sNewXlsFile & vbNullChar, "", 0, SW_SHOWNORMAL)
Call pDisplayError(lresult)
Exit Sub

ErrorHandler:
Screen.MousePointer = vbDefault
MsgBox Err.Description & " (" & CStr(Err.Number) & ")", vbExclamation, "RECOLECCIÓN"
End Sub

Pega esto en Genera-Declaraciones asi como esta:
Dim sNewXlsFile As String
Dim sXlsTemplate As String

Private Const SW_SHOWNORMAL = 1

Private Const ERROR_FILE_NOT_FOUND = 2&
Private Const ERROR_PATH_NOT_FOUND = 3&
Private Const SE_ERR_ACCESSDENIED = 5
Private Const SE_ERR_OOM = 8
Private Const ERROR_BAD_FORMAT = 11&
Private Const SE_ERR_SHARE = 26
Private Const SE_ERR_ASSOCINCOMPLETE = 27
Private Const SE_ERR_DDETIMEOUT = 28
Private Const SE_ERR_DDEFAIL = 29
Private Const SE_ERR_DDEBUSY = 30
Private Const SE_ERR_NOASSOC = 31
Private Const SE_ERR_DLLNOTFOUND = 32

Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hWnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

CONTINUA....

Sonia
06 de Septiembre del 2004
CONTINUA....
Crea esta secuencia igualita..

Public Sub GridExport(GridToExport _
As Object, FileName As String, Optional _
Delimiter As Variant, Optional _
EncloseStrings As Variant)
Dim iNumRows As Integer
Dim iNumCols As Integer
Dim iFileNumber As Integer

If IsMissing(Delimiter) Then
Delimiter = vbTab
End If
If IsMissing(EncloseStrings) Then
EncloseStrings = ""
End If
iFileNumber = FreeFile
Open FileName For Output As #iFileNumber
For iNumRows = 0 To _
GridToExport.Rows - 1
GridToExport.Row = iNumRows
For iNumCols = 0 To _
GridToExport.Cols - 1
GridToExport.Col = iNumCols
'if it isn't the first column,
'put a delimiter before the value
If iNumCols > 0 Then
Print #iFileNumber, Delimiter;
End If
Print #iFileNumber, EncloseStrings & _
GridToExport.Text & EncloseStrings;
Next iNumCols
Print #iFileNumber, ""
Next iNumRows
Close #iFileNumber
MsgBox "Su Información fué exportada correctamente", vbInformation, "RECOLECCIÓN"
End Sub

y esta tambien PEGALA tal y como esta es otra secuencia:

Public Sub pDisplayError(ByVal lresult As Long)
Dim sError As String
'
' ShellExecute regresa un valor mas grande que 32 si no hay errores.
' checa el valor regresado y manda un mensaje de los posibles errores
'fcfm lcc

Select Case lresult
Case 0
sError = "Falla en Sistema Operativo."
Case ERROR_FILE_NOT_FOUND
sError = "El archivo especificado no fue encontrado."
Case ERROR_PATH_NOT_FOUND
sError = "La ruta especificada no fue encontrada"
Case ERROR_BAD_FORMAT
sError = "El archivo .exe es invalido (non-Win32® .exe o error en .exe image)."
Case SE_ERR_ACCESSDENIED
sError = "El sistema operativo ha denegado el acceso al archivo especificado."
Case SE_ERR_ASSOCINCOMPLETE
sError = "La asociacion con el nombre esta incompleta o es inválida."
Case SE_ERR_DDEBUSY
sError = "La transacción DDE podría no ser completada porque otrar transacción DDE esta en proceso."
Case SE_ERR_DDEFAIL
sError = "La transacción DDE ha fallado."
Case SE_ERR_DDETIMEOUT
sError = "La transacción DDE podría ser no completada porque el tiempo de espera ha sido agotado."
Case SE_ERR_DLLNOTFOUND
sError = "La librería especificada dynamic-link no fue encontrada."
Case SE_ERR_NOASSOC
sError = "No hay aplicación que se asocie con la extensión del archivo."
Case SE_ERR_OOM
sError = "No hay suficiente memoria para realizar la operación."
Case SE_ERR_SHARE
sError = "Violación al compartir."
Case Else
sError = ""
End Select

Screen.MousePointer = vbDefault
If lresult <= 32 Then
MsgBox sError, vbCritical, "RECOLECCIÓN"
End If
End Sub

Y copia este codigo con relacion al FlexiGrid:
Private Sub Flex4_DragDrop(Source As Control, x As Single, y As Single)
If Flex4.Tag = "" Then Exit Sub
Flex4.Redraw = False
Flex4.ColPosition(Val(Flex4.Tag)) = Flex4.MouseCol
DoSort
Flex4.Redraw = True
End Sub

Private Sub Flex4_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Flex4.Tag = ""
If Flex4.MouseRow <> 0 Then Exit Sub
Flex4.Tag = Str(Flex4.MouseCol)
Flex4.Drag 1
End Sub
Sub DoSort()
Flex4.Col = 0
Flex4.ColSel = Flex4.Cols - 1
Flex4.Sort = 1 ' orden ascendente
End Sub

y con esto vas a poder ver tu archivo en Excel!!! Suerte!!
Atte. Sonia