[Excel] Como determinar la fila..

168 views
Skip to first unread message

ZeRoberto

unread,
Mar 7, 2021, 12:09:49 AM3/7/21
to publicesvfoxpro
Tengo una plantilla en excel que básicamente es una cabecera donde lleno datos de unas tablas, como puedo determinar donde termina la cabecera o desde que linea puedo comenzar a llenar datos?


excel1.png
excel2.png

Saludos

Ze


Miguel A.

unread,
Mar 7, 2021, 5:56:56 AM3/7/21
to Comunidad de Visual Foxpro en Español
Si es una plantilla sabrás cuál es la primera fila en que comienzas a escribir: fila_ini

SCAN 
tuFila=fila_ini+RECNO()-1
tuColumna="A"
tuValor=cur_facturas.numero
oAplicacion.Cells(tuFila, tuColumna).Value = tuValor
tuColumna="B"
tuValor=cur_facturas.fecha
oAplicacion.Cells(tuFila, tuColumna).Value = tuValor
tuColumna="C"
tuValor=cur_facturas.totalf
oAplicacion.Cells(tuFila, tuColumna).Value = tuValor
ENDSCAN 

Espero que sea esto lo que buscas. 
Saludos,
Miguel A.

Víctor Hugo Espínola Domínguez

unread,
Mar 7, 2021, 12:57:47 PM3/7/21
to publice...@googlegroups.com
#Define xlLastCell 11

lcXLBook = Getfile('xls, xlsx, xlsm, xlsb', 'Archivo:', 'Aceptar', 0, 'Seleccione una hoja de cálculo')

If Empty(m.lcXLBook)
     Return .F.
Endif

If Not File(m.lcXLBook)
    Messagebox("Archivo no encontrado", 16)
    Return .F.
Endif

Local loExcel As Excel.Application
loExcel = Createobject("Excel.application")

If Vartype(m.loExcel, .T.) <> 'O'
     Messagebox("No se puede procesar el archivo porque no tiene la aplicación" ;
                          + Chr(13) + "Microsoft Excel instalada en su computador.", 16)
     loExcel = Null
     Release m.loExcel
     Return .F.
Endif

m.loExcel.Workbooks.Open(m.lcXLBook)
m.loExcel.Sheets(1).Select

With m.loExcel.ActiveWorkBook.ActiveSheet
loLastCell = .Cells.SpecialCells( xlLastCell )
lnLastRow  = m.loLastCell.Row
lnLastCol  = m.loLastCell.Column
ENDWITH

MessageBox(lnLastRow)
MessageBox(lnLastCol)

loExcel.ActiveWindow.Close(.F.)
loExcel.Quit()
loExcel = Null
 Release m.loExcel  

Saludos,
Víctor.
Lambaré - Paraguay.



--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CAMkTt8o%2Bwaq%2BHo45S40gnUyDNRWhyEmWuL%3DHZ9LFCu_OH53PjQ%40mail.gmail.com.

ZeRoberto

unread,
Mar 7, 2021, 9:04:52 PM3/7/21
to publicesvfoxpro
Gracias Miguel y Victor por las respuestas le asigne un valor a la celda donde iba a empezar {linea} luego con un for le buscaba y determinaba su posición

Saludos

Ze



ZeRoberto

unread,
Mar 8, 2021, 9:58:26 AM3/8/21
to publicesvfoxpro
Una consulta mas

¿Cómo puedo hacer para copiar todos las características de una celda a las demás?

Ejemplo
Tipo de Letra
Tamaño de Letra
Color
Formato de celda

Saludos

Ze



Zarlu

unread,
Mar 8, 2021, 1:33:52 PM3/8/21
to Comunidad de Visual Foxpro en Español
Buenas tardes ZeRoberto!

Para copiar formato. Cambia según requieras

*#DEFINE xlPasteFormats -4122
oExcel = CreateObject("Excel.Application")
oExcel.WorkBooks.Add
oExcel.Visible= .T.
oExcel.Columns("A:A").Select
oExcel.Selection.NumberFormat = "#,##0.00"
oExcel.Cells(1, 1).Value="4"
oExcel.Cells(2, 1).Value= "1"
oExcel.Cells(3, 1).Value= "2"
oExcel.Cells(4, 1).Value= "3"
oExcel.Cells(1, 2).Value="5"
With oExcel.ActiveWorkbook.ActiveSheet
   .Range("A1:A1").Copy
   .Range("B1").PasteSpecial(-4122)
EndWith
oExcel.Application.CutCopyMode = .F.

Valores/Constantes

Suerte
zarlu
Chetumal, Quintana Roo, México

ZeRoberto

unread,
Mar 8, 2021, 4:07:19 PM3/8/21
to publicesvfoxpro
Hola Zarlu gracias por contestar, como le cambio el format como en el vfp

Celda.Format = "99/99/9999" Fecha
Celda.Format = "999999.99"  Número
Celda.Format = "!"  Texto

Saludos

Ze



Zarlu

unread,
Mar 8, 2021, 4:51:46 PM3/8/21
to Comunidad de Visual Foxpro en Español
Qué tal ZeRoberto!

Formato:
oExcel.Range("A1:A1").Select
oExcel.Selection.NumberFormat = "#,##0.00"

oExcel.Range("A1:A1").Select
oExcel.Selection.NumberFormat="dd/mm/yyyy"

Apoyate en excel para ver la sintaxis de los diferentes formatos.

Mayúsculas:
oExcel.Range("G5").Formula=[=UPPER(B2)]&&En G5 se pone en mayúsculas el dato de B2.
Pero tendrías que poner el resultado en otra celda. Así que mejor te sugiero que mandes el dato ya formateado

Busca aquí un mensaje con varios ejemplos:

zarlu
Chetumal, Quintana Roo, México



ZeRoberto

unread,
Mar 8, 2021, 11:03:04 PM3/8/21
to publicesvfoxpro
Gracias Zarlu el mini tutorial que publicó Edgar Acevedo me ayudo bastante

Saludos

Ze



Reply all
Reply to author
Forward
0 new messages