Visual Basic - colocar datos en el portapapeles

Life is soft - evento anual de software empresarial
 
Vista:

colocar datos en el portapapeles

Publicado por miguel (7 intervenciones) el 01/11/2002 18:57:46
Hola a todos:
Estoy buscando la forma de introducir el contenido de un msflexgrid a portapapeles para poderlo bajar a excel se puede...

nota: el grid lo lleno atravez de codigo no lo enlazo a ningun data control ni nada por el estilo.

espero que me puedan ayudar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:colocar datos en el portapapeles

Publicado por Rodolfo del Peru (454 intervenciones) el 02/11/2002 15:47:51
Yo exporto al excel directamente sin pasar por el portapapeles, mira esto quiza te sirva:

(PARTE 1)

Sub Command1_Click()
Dim J As Integer, K As Integer
Dim Titulo As String, TitExcel As String

Screen.MousePointer = vbHourglass
' Carga Titulos
For I = 0 To flexGrid.Cols - 2
Heading(I) = MSflexGrid1.TextMatrix(0, I + 1)
Next
' Carga Valores
For J = 1 To 24
For K = 1 To 16
Data(J, K) = MSflexGrid1.TextMatrix(J, K)
Next K
Next J
Titulo = Me.Caption & " Año : " & txtAño & " Mes : " & txtMes
TitExcel = "Analisis Año=" & txtAño & " Mes=" & txtMes
Call Inicia_Excel(TitExcel)
Call Formatea_Excel(Titulo, MSflexGrid1.Cols - 1, Heading(), Data())
Screen.MousePointer = Default
Show_Excel Me
End Sub

Saludos desde Lima
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:colocar datos en el portapapeles

Publicado por Rodolfo del Peru (454 intervenciones) el 02/11/2002 15:50:06
(PARTE 2)

Sub Inicia_Excel(wFileName As String)
Dim sXlsTemplate As String

sXlsTemplate = App.Path & "\Analisis.xls"
sNewXlsFile = App.Path & "\" & wFileName & ".xls"

'Borra archivo anterior
If Dir(sNewXlsFile) <> "" Then
On Error Resume Next
Kill sNewXlsFile
End If

Set objExcel = CreateObject("EXCEL.APPLICATION")
With objExcel
.Visible = False
.Workbooks.Open filename:=sXlsTemplate, _
ReadOnly:=True, ignoreReadOnlyRecommended:=True
Set oWs = .ActiveSheet
Set oWb = .ActiveWorkbook
End With

oWs.SaveAs filename:=sNewXlsFile, FileFormat:=xlNormal
End Sub

Saludos desde Lima
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:colocar datos en el portapapeles

Publicado por Rodolfo del Peru (454 intervenciones) el 02/11/2002 15:51:54
(PARTE FINAL)

Sub Formatea_Excel(Titulo As String, Num_Campos As Integer, Nombre_Campos() As String, Valor_Campos() As String)
Dim I As Long, J As Long, K As Long

With oWs 'objExcel.ActiveSheet
.Range(.Cells(3, 1), .Cells(3, Num_Campos)).Borders.LineStyle = xlContinuous
.Range(.Cells(1, 1), .Cells(1, 1)).Font.Bold = True
.Range(.Cells(28, 1), .Cells(28, Num_Campos)).Font.Bold = True
.Range(.Cells(3, 1), .Cells(3, Num_Campos)).Font.Bold = True
.Cells(1, 1) = Titulo
For I = 0 To 15
.Cells(3, I + 1) = Nombre_Campos(I)
Next
End With

I = 4
' Carga Data
For J = 1 To 24
For K = 1 To 16
oWs.Cells(I + J, K) = Valor_Campos(J, K)
Next K
Next J
End Sub

Sub Show_Excel(wform As Form)
Dim lresult As Long

oWb.Save
oWb.Saved = True

objExcel.Quit
Set oWb = Nothing
Set oWs = Nothing
Set objExcel = Nothing

Screen.MousePointer = vbHourglass
lresult = ShellExecute(wform.hWnd, "open", sNewXlsFile & vbNullChar, "", 0, SW_SHOWNORMAL)
End Sub

Saludos desde Lima
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:colocar datos en el portapapeles

Publicado por licjrz (202 intervenciones) el 03/11/2002 09:08:27
Tambie lo puedes hacer asi si vas a utilizar Crystal Report

lo puedes mandar a crystal y despues lo exportas a excell
crystal te da la opcion..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar