Visual Basic - pasar un dato de visual basic a excel

Life is soft - evento anual de software empresarial
   
Vista:

pasar un dato de visual basic a excel

Publicado por Alberto  (3 intervenciones) el 09/02/2010 16:19:13
Hola amigos tngo el siguiente codigo :

Dim ac As Long
Dim z As Integer
z = 0
For ac = 1 To MSFlexGrid1.Rows - 1
If MSFlexGrid1.TextMatrix(ac, ad) = "CE_01" And MSFlexGrid1.TextMatrix(ac, ad) = "4001" Then
z = z + 1
End If
Next ac

lo que hace este codigo es comparar 2 columnas y cada vez que se cumpla las coincidencias me las guarde, ahora mi problema viene ahora.... necesito guardar este dato en un archivo excel existente llamado CE_01 el cual tiene 2 hojas la hoja dia y la hoja noche, en cada hoja tengo como campo (filas) las fechas y como columna unos códigos (como el 4001), entonces en mi formulario(form) tengo un msflexgrid en donde importo archivos de excel, tngo 2 option (option dia y option noche) y un dtpicker (para ingresar la fecha)........entonces hago la comparacion de las columnas en el msflexgrid, guardo las coincidencias (z) y ahora lo que quiero es que si tengo el option 1 activado (option dia) me guade el dato en la hoja dia ... en donde me va a guardar el dato? tngo que hacer otra comparacion que me compare el dtpicker con las fecha que tngo en la hoja y cuando la encuentre me guade la celda (a) despues comparar todas las columnas con el codigo en nuestro caso seria 4001 si lo pilla guade la celda (b), entonces el datos se guardara en la hoja en donde el option este activado y en la celda (a,b) espero se entienda desde ya gracias .

si la fecha en el dtpicker es el 4/3/2010

libro CE_01 hoja dia o noche (depende del option)

fechas 3/3/2010 4/3/2010 5/3/2010 6/3/2010 7/3/2010 8/3/2010
codigos
4001 z
4002
4003
4004

algo asi seria, notese que que esto lo tngo que hacer para cada combinacion codigo 4001-camion1
CE_01 - 4001; CE_01-4002; CE_01-4003
pero como es igual me sirve el codigo para el primer camion y codigo de error total los demas son lo mismo

lo que me queda en la duda es que si guardo el dato z depues lo hago z=0 y vuelvo con el mismo codigo pero para la combinacion codigo 2002-camion 1 no me presentara problemas bueno ojala que no y si pueden me responden esto tb des de ya gracias y disculpen lo largo de la consulta espero que alguien me ayude y se pueda solucionar este problemita confio en uds chao.
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:pasar un dato de visual basic a excel

Publicado por Alberto (3 intervenciones) el 09/02/2010 21:07:39
para que me ayuden un poco mejor estoy trabajando con el siguiente codigo se que algunas cosas estan malas pero es lo que se me ah ocurrido hacer por el momento como solución;
Dim ac As Long
Dim z As Integer
Dim objExcel As Excel.Application
Dim xLibro As Excel.Workbook
Dim Col As Integer, Fila As Integer
Dim c As Integer
Dim d As Integer
Dim b As Integer
Dim a As Integer
z = 0
For ac = 1 To MSFlexGrid1.Rows - 1
If MSFlexGrid1.TextMatrix(ac, 0) = "CE_01" And MSFlexGrid1.TextMatrix(ac, 10) = "4001" Then
z = z + 1
End If
Next ac
Set objExcel = New Excel.Application
Set xLibro = objExcel.Workbooks.Open(FileName:="C:\Proyecto Komatsu\CE_01.xls")
objExcel.Visible = False
With xLibro
If Option1 = False And Option2 = False Then
MsgBox "Debe elegir un turno"
End If
If Option1 = True Then
objExcel.Sheets("Dia").Select
For b = cells(1, 2) To cells(1, 1000)
If DTPicker1.Value = b Then
c = b
End If
Next b
For a = cells(2, 1) To cells(192, 1) ' Aqui me marca desbordamiento de datos debe
If a = "4001" Then ' estar mal definida mi funcion for
d = a
End If
Next a
z = cells(c, d)
End If
If Option2 = True Then
objExcel.Sheets("Noche").Select
For b = cells(1, 2) To cells(1, 1000)
If DTPicker1.Value = b Then
c = b
End If
Next b
For a = cells(2, 1) To cells(192, 1)
If a = "4001" Then
d = a
End If
Next a
z = cells(c, d)
End If
End With
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:pasar un dato de visual basic a excel

Publicado por rafael (44 intervenciones) el 11/02/2010 13:45:30
en un modulo pega esto:

Public Sub pasar(Ssql As String, a As String)
Dim Int_Columnas As Integer
Dim Int_Filas As Integer
Dim Adc As New ADODB.Recordset
Dim excelApp As Excel.Application
Dim excellibro As Excel.Workbook
Dim excelhoja As Excel.Worksheet
Coneccion
With Adc
.CursorLocation = adUseClient
.CursorType = adOpenDynamic
.LockType = adLockBatchOptimistic
Set .ActiveConnection = Cnn
.Open Ssql
End With
Set excelApp = New Excel.Application
Set excellibro = excelApp.Workbooks.Add
Set excelhoja = excellibro.ActiveSheet
Screen.MousePointer = vbHourglass
Int_Columnas = Adc.Fields.Count
For i = 1 To Int_Columnas
excelhoja.Cells(1, i) = Adc.Fields(i - 1).Name
Next
If Adc.RecordCount > 0 Then
Adc.MoveFirst
For Int_Filas = 1 To Adc.RecordCount
For j = 0 To Int_Columnas - 1
If IsNull(Adc(j).Value) Then
excelhoja.Cells(Int_Filas + 2, j + 1) = ""
Else
'validamos la si el campo es fecha
If UCase(Trim(excelhoja.Cells(1, j + 1))) = "FECHA" Then
'si lo es entonces lo convertimos a fecha y le damos el formato que deseas
excelhoja.Cells(Int_Filas + 1, j + 1) = Format(CDate(Adc(j).Value), "mm/dd/yyyy")
Else 'si es otro campo, entonces se pasa tal cual el valor
excelhoja.Cells(Int_Filas + 1, j + 1) = CStr(Adc(j).Value)
End If
End If
Next
Adc.MoveNext
Next
End If

excelhoja.Rows(1).Font.Bold = True
excelhoja.Rows(1).Font.Color = vbBlue
excelhoja.Rows(1).Font.Size = 11
'excelhoja.Columns(3).Font.Color = vbRed
excelhoja.Columns("A:Z").AutoFit
excelApp.Visible = True
Set excelApp = Nothing
Set excellibro = Nothing
Set excelhoja = Nothing

Screen.MousePointer = Arrows

y en tu boton de comando solo agrega esto:
Call pasar (adodc1.recordsource, adodc1.conectionstring)

y listo,

espero te sirva

hasta pronto
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:pasar un dato de visual basic a excel

Publicado por josias (2 intervenciones) el 05/04/2010 04:16:49
1- tengo el codigo echo en Microsoft Visual Basic 2008 Express Edition.
2-quiero convertir el codigo fuente en c#
3-como puedo convertir de Microsoft Visual Basic 2008 Express Edition a Microsoft Visual C# 2008 Express Edition
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

Pasar este codigo de visual Studio 2008 a C# 2008

Publicado por josias (2 intervenciones) el 06/04/2010 06:17:08
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Val(TextBox1.Text) < 29110 Then
MsgBox("Este Monto es Exento")
TextBox1.Text = " "
End If
If Val(TextBox1.Text) > 29110 And Val(TextBox1.Text) < 43665 Then
TextBox2.Text = Val(TextBox1.Text) * 0.15
End If
If Val(TextBox1.Text) > 43665.67 And Val(TextBox1.Text) < 60646.24 Then
TextBox2.Text = Val(TextBox1.Text) * 0.2
End If
If Val(TextBox1.Text) > 60646.24 Then
TextBox2.Text = Val(TextBox1.Text) * 0.15 * 0.2 * 0.25

End If

End Sub
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