Visual Basic - imprimir en excel

Life is soft - evento anual de software empresarial
 
Vista:

imprimir en excel

Publicado por vibet (25 intervenciones) el 17/09/2005 03:47:20
estoy intentando crear un programa para imprimir etiquetas, el problema me surge porque uso folios de estos con muchos adhesivos.Cómo puedo recogiendo los datos desde acces por medio de sql, colocar en cada pegatina los datos correspondientes??
por ejemplo tengo los datos direccion, codigo postal y nombre de 5 personas , se puede ajustar a 5 adhesicvos del folio recogiendo los datos de una base acces??
logro sacar los datos seguidos en horizontal pero al tener que usar varias columnas no lo logro ya que son diferentes usuarios, los puedo sacar todos de golpe?

gracias de antemano
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:imprimir en excel

Publicado por vibet (25 intervenciones) el 17/09/2005 04:19:27
Os dejo el código que uso, querría hacer esto pero rellenando toda la hoja.
el problema es que voy añadiendo líneas en vertical y me sobra folio a la derecha el cúal me gustaría rellenar siguiendo esta función.

gracias


Dim I As Integer
Dim nLast As Integer

Dim PrimeraVez As Boolean
Dim FormaP As Double

Dim ContaLin As Integer
Dim DesForma As String
Dim titulo As String
Dim xExcel As Excel.Application
Dim wBook As Workbook
titulo = "Asidep"

If Val(Me.GrdInfoClientes.TextMatrix(Me.GrdInfoClientes.Row, 0)) <= 0 Then
MsgBox "No Hay Datos Para Listar ", vbCritical, titulo
Else

Set xExcel = New Excel.Application
xExcel.Workbooks.Add App.Path & "\ACREDITACION.xlt"

Me.MousePointer = vbHourglass
ContaLin = 7
Total = 0
For nInd = 1 To Me.GrdInfoClientes.Rows - 1
'nombre
xExcel.Range(Chr(Asc("E")) & ContaLin).Select
xExcel.ActiveCell.FormulaR1C1 = GrdInfoClientes.TextMatrix(nInd, 2)
xExcel.Selection.HorizontalAlignment = xlCenter


ContaLin = ContaLin + 15
Next nInd


Me.MousePointer = vbHourglass
ContaLin = 9
Total = 0

For nInd = 1 To Me.GrdInfoClientes.Rows - 1
'codigo
xExcel.Range(Chr(Asc("C")) & ContaLin).Select
xExcel.ActiveCell.FormulaR1C1 = GrdInfoClientes.TextMatrix(nInd, 0)

xExcel.Range(Chr(Asc("B")) & ContaLin).Select
xExcel.ActiveCell.FormulaR1C1 = "ID/Nº"


ContaLin = ContaLin + 15
Next nInd


Me.MousePointer = vbHourglass
ContaLin = 11
Total = 0
For nInd = 1 To Me.GrdInfoClientes.Rows - 1
'equipo
xExcel.Range(Chr(Asc("C")) & ContaLin).Select
xExcel.ActiveCell.FormulaR1C1 = GrdInfoClientes.TextMatrix(nInd, 1)
' xExcel.Rows.RowHeight = 19.5
xExcel.Range(Chr(Asc("B")) & ContaLin).Select
xExcel.ActiveCell.FormulaR1C1 = "Equipo/Nº"


ContaLin = ContaLin + 15
Next nInd

Me.MousePointer = vbHourglass
ContaLin = 13
Total = 0
For nInd = 1 To Me.GrdInfoClientes.Rows - 1
'pais
xExcel.Range(Chr(Asc("C")) & ContaLin).Select
xExcel.ActiveCell.FormulaR1C1 = GrdInfoClientes.TextMatrix(nInd, 3)

xExcel.Range(Chr(Asc("B")) & ContaLin).Select
xExcel.ActiveCell.FormulaR1C1 = "Pais"


ContaLin = ContaLin + 15
Next nInd

Me.MousePointer = vbHourglass
ContaLin = 6
Total = 0
For nInd = 1 To Me.GrdInfoClientes.Rows - 1
'Funcion
xExcel.Range(Chr(Asc("E")) & ContaLin).Select
xExcel.ActiveCell.FormulaR1C1 = GrdInfoClientes.TextMatrix(nInd, 4)
xExcel.Selection.HorizontalAlignment = xlCenter



ContaLin = ContaLin + 15
Next nInd

Me.MousePointer = vbHourglass
ContaLin = 3
Total = 0
For nInd = 1 To Me.GrdInfoClientes.Rows - 1
'titulo
xExcel.Range(Chr(Asc("E")) & ContaLin).Select
xExcel.ActiveCell.FormulaR1C1 = GrdInfoClientes.TextMatrix(nInd, 5)
xExcel.Selection.HorizontalAlignment = xlCenter


ContaLin = ContaLin + 15
Next nInd

Me.MousePointer = vbHourglass
ContaLin = 4
Total = 0
For nInd = 1 To Me.GrdInfoClientes.Rows - 1
'foto
xExcel.Range(Chr(Asc("E")) & ContaLin).Select
'xExcel.ActiveSheet.Pictures.Insert (GrdInfoClientes.TextMatrix(nInd, 6))
'xExcel.ActiveSheet.Pictures.Select
'xExcel.Selection.ShapeRange.LockAspectRatio = msoFalse
'xExcel.Selection.ShapeRange.Height = 57#
'xExcel.Selection.ShapeRange.Width = 51#
'xExcel.Selection.ShapeRange.Rotation = 0#

xExcel.Rows(ContaLin).RowHeight = 57.75


ContaLin = ContaLin + 15
Next nInd

Me.MousePointer = vbHourglass
ContaLin = 9
Total = 0
For nInd = 1 To Me.GrdInfoClientes.Rows - 1
'logo
xExcel.Range(Chr(Asc("F")) & ContaLin).Select
'xExcel.ActiveSheet.Pictures.Insert (GrdInfoClientes.TextMatrix(nInd, 7))
' xExcel.ActiveSheet.Pictures.Select
' xExcel.Selection.ShapeRange.LockAspectRatio = msoFalse
' xExcel.Selection.ShapeRange.Height = 57#
' xExcel.Selection.ShapeRange.Width = 51#
'xExcel.Selection.ShapeRange.Rotation = 0#



ContaLin = ContaLin + 15
Next nInd
''!!!!!!!!!!Plantilla excel(caracteristicas)!!!!!!!!!!!!!!

'ocultar fila 5

ContaLin = 5
For nInd = 1 To Me.GrdInfoClientes.Rows - 1
xExcel.Range(Chr(Asc("a")) & ContaLin).Select
xExcel.Rows(ContaLin).RowHeight = 0
ContaLin = ContaLin + 15
Next nInd

ContaLin = 1
For nInd = 1 To Me.GrdInfoClientes.Rows - 1
xExcel.Range(Chr(Asc("a")) & ContaLin).Select
xExcel.Rows(ContaLin).RowHeight = 4.25
ContaLin = ContaLin + 15
Next nInd

ContaLin = 2
For nInd = 1 To Me.GrdInfoClientes.Rows - 1
xExcel.Range(Chr(Asc("a")) & ContaLin).Select
xExcel.Rows(ContaLin).RowHeight = 5.25
ContaLin = ContaLin + 15
Next nInd

ContaLin = 10
For nInd = 1 To Me.GrdInfoClientes.Rows - 1
xExcel.Range(Chr(Asc("a")) & ContaLin).Select
xExcel.Rows(ContaLin).RowHeight = 11.25
ContaLin = ContaLin + 15
Next nInd


ContaLin = 12
For nInd = 1 To Me.GrdInfoClientes.Rows - 1
xExcel.Range(Chr(Asc("a")) & ContaLin).Select
xExcel.Rows(ContaLin).RowHeight = 11.25
ContaLin = ContaLin + 15
Next nInd

ContaLin = 14
For nInd = 1 To Me.GrdInfoClientes.Rows - 1
xExcel.Range(Chr(Asc("F")) & ContaLin).Select
xExcel.ActiveCell.FormulaR1C1 = "Desde"

ContaLin = ContaLin + 15
Next nInd


ContaLin = 15
For nInd = 1 To Me.GrdInfoClientes.Rows - 1
xExcel.Range(Chr(Asc("F")) & ContaLin).Select
xExcel.ActiveCell.FormulaR1C1 = "Hasta"

ContaLin = ContaLin + 15
Next nInd
'PIntar raya desde/hasta

ContaLin = 13

For nInd = 1 To Me.GrdInfoClientes.Rows - 1
xExcel.Range(Chr(Asc("a")) & ContaLin).Select
xExcel.Rows(ContaLin).Select

xExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone
xExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
xExcel.Selection.Borders(xlEdgeLeft).LineStyle = xlNone
xExcel.Selection.Borders(xlEdgeTop).LineStyle = xlNone
With xExcel.Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
xExcel.Selection.Borders(xlEdgeRight).LineStyle = xlNone

ContaLin = ContaLin + 15
Next nInd

'!!!!!!!!Recuadro

ContaLin = 30

For nInd = 1 To Me.GrdInfoClientes.Rows - 1
xExcel.Range(Chr(Asc("a")) & ContaLin).Select
xExcel.Rows(ContaLin).Select

xExcel.Rows(ContaLin).Select
xExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone
xExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
xExcel.Selection.Borders(xlEdgeLeft).LineStyle = xlNone
xExcel.Selection.Borders(xlEdgeTop).LineStyle = xlNone
With xExcel.Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
xExcel.Selection.Borders(xlEdgeRight).LineStyle = xlNone

ContaLin = ContaLin + 15

Next nInd

'fijas
xExcel.Columns("A:A").Select
xExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone
xExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
xExcel.Selection.Borders(xlEdgeLeft).LineStyle = xlNone
xExcel.Selection.Borders(xlEdgeTop).LineStyle = xlNone
xExcel.Selection.Borders(xlEdgeBottom).LineStyle = xlNone
With xExcel.Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

xExcel.Columns("G:G").Select
xExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone
xExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
xExcel.Selection.Borders(xlEdgeLeft).LineStyle = xlNone
xExcel.Selection.Borders(xlEdgeTop).LineStyle = xlNone
xExcel.Selection.Borders(xlEdgeBottom).LineStyle = xlNone
With xExcel.Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With


xExcel.Columns("B:B").Select

xExcel.Selection.Font.Name = "Trebuchet MS"
xExcel.Selection.Font.Size = 11
xExcel.Selection.Font.Bold = True
....
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
sin imagen de perfil
Val: 7
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:imprimir en excel

Publicado por Carlos Gomez (262 intervenciones) el 17/09/2005 06:32:11
mmm me intriga tu pregunta, quiero ayudarte pero no entiendo muy bien que es lo que quieres, por lo que leo, tu deseas imprimir en papel membreteado??
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:imprimir en excel

Publicado por vibet (25 intervenciones) el 17/09/2005 14:36:40
quiero imprimir en papel adesivo, el tamaño es igual que un folio pero está dividido en unas 20 pegatinas lo que quiero es imprimir los datos en cada adhesivo. la idea es sacar los datos de x personas , imprimirlas en estas pegatinas para despues pegarlas en un sobre y enviarlas por correo, es como si sacaras etiquetas de artículos con precio descripción etc
Imagina un folio dividido en 20 casillas. Si quisiera imprimir x datos en cada casilla.cómo lo puedo hacer....

gracias
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
sin imagen de perfil
Val: 7
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:imprimir en excel

Publicado por Carlos Gomez (262 intervenciones) el 19/09/2005 00:08:52
Listo ahora si entiendo lo que quieres, bueno mi pregunta es:
esa hoja dividida en 20 pegatinas estan ordenadas verticalmente??
si lo estan podrias utilizar una opcion en Word llamada combinacion de correspondencia, ahora si estas realizando un programa que tome los datos de excel, ya tendrias que diseñar el objeto datareport.
Ahora si lo que deseas es imprimir en excel directamente a las pegatinas, ya la cosa es un poco mas de astusia, bueno primero que todo estoy viendo que el programas excel no tiene combinacion de correspondencia, asi que por aca no es, lo que te aconsejo es que realizes una base de datos en excel o en access y aplicar la opcion combinacion de correspondencia que viene en Word y enlazar esta base de datos con Word.
La verdad si deseas imprimir en excel directamente en las pegatinas no creo que puedas hacer lo que deseas, ya que estoy seguro que manejas mucha informacion, asi que te recomiendo lo ultimo o realizar un programa que te pueda hacer lo que deseas, suerte, cualquier cosa escibeme y con gusto te ayudo
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