Hello,
I want to combine 2 cells to make a title on top of 2 columns,
You can see here an example. How can I make my title "Long title" possible from my FWH-application?
Thanks a lot in advance.
Question about Excel
Question about Excel
Regards,
Michel D.
Genk (Belgium)
_____________________________________________________________________________________________
I use : FiveWin for (x)Harbour v. 21.01 - Harbour 3.2.0 (October 2020) - xHarbour Builder (January 2020) - Bcc7
Michel D.
Genk (Belgium)
_____________________________________________________________________________________________
I use : FiveWin for (x)Harbour v. 21.01 - Harbour 3.2.0 (October 2020) - xHarbour Builder (January 2020) - Bcc7
Re: Question about Excel
oSheet:Range( oSheet:Cells( 1, 1 ), oSheet:Cells( 1, 2 ) ):merge()
Regards,
André Dutheil
FWH 13.04 HB 3.2 BCC 5.82 MinGW 4.5.2 MSVS 10
André Dutheil
FWH 13.04 HB 3.2 BCC 5.82 MinGW 4.5.2 MSVS 10
Re: Question about Excel
Thank you very much for your help.
Can you tell me where I can find all this necessary information?
Can you tell me where I can find all this necessary information?
Regards,
Michel D.
Genk (Belgium)
_____________________________________________________________________________________________
I use : FiveWin for (x)Harbour v. 21.01 - Harbour 3.2.0 (October 2020) - xHarbour Builder (January 2020) - Bcc7
Michel D.
Genk (Belgium)
_____________________________________________________________________________________________
I use : FiveWin for (x)Harbour v. 21.01 - Harbour 3.2.0 (October 2020) - xHarbour Builder (January 2020) - Bcc7
Re: Question about Excel
I don't think there's an online complete guide for FW/Harbour. My advise is you search VBA + Excel and adapt your findings to Hb/Fw. That's the way I did. If you have other specific questions about this topic I may be able to answer because I've done many OLE routines. Here's a sample of function I use to export some data to Excel.
Code: Select all
STATIC FUNCTION ExpToExcel( oMeter )
LOCAL oExcel := NIL
LOCAL oSheet := NIL
LOCAL oWorkb := NIL
LOCAL aRota
LOCAL nL := 0
LOCAL nI
LOCAL aExep := { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } } // exeções pdv radio santa rita, rotas 004800,005000,006000, GAZ SIMOES FILHO 2( reparte, linha planilha, qtd pdv )
LOCAL dData := hora->DATA
LOCAL cStrg
hora->( dbGoTop() )
oMeter:nTotal := hora->( ordKeyCount() )
oExcel := win_oleCreateObject( "Excel.Application" )
oWorkb := oExcel:WorkBooks:Add()
IF oWorkb:Sheets():COUNT = 3
oWorkb:Sheets( 3 ):delete()
oWorkb:Sheets( 2 ):delete()
ENDIF
oSheet := oWorkb:Sheets( 1 )
oSheet:Name := "HORÁRIOS E OCORRENCIAS DA VAV"
oExcel:Visible = .F.
oSheet:Cells:Font:Size := 10
oSheet:Cells:Font:Name := "Arial"
oSheet:Cells:Font:Bold := .T.
oSheet:Rows( 1 ):RowHeight := 37
oSheet:Rows( 1 ):VerticalAlignment := xlCenter
oSheet:Rows( 1 ):HorizontalAlignment := xlCenter
oSheet:Range( oSheet:Cells( 1, 1 ), oSheet:Cells( 1, 7 ) ):Interior:ColorIndex := Violeta
oSheet:Range( oSheet:Cells( 1, 1 ), oSheet:Cells( 1, 7 ) ):Font:ColorIndex := Branco
oSheet:Range( oSheet:Cells( 1, 8 ), oSheet:Cells( 1, 13 ) ):Interior:ColorIndex := Azul
oSheet:Range( oSheet:Cells( 1, 8 ), oSheet:Cells( 1, 13 ) ):Font:ColorIndex := Preto
oSheet:Range( oSheet:Cells( 1, 14 ), oSheet:Cells( 1, 28 ) ):Interior:ColorIndex := Vermelho
oSheet:Range( oSheet:Cells( 1, 14 ), oSheet:Cells( 1, 28 ) ):Font:ColorIndex := Preto
oSheet:Cells( 1, 1 ):value := "HORÁRIO DE DIST.VAV"
oSheet:Cells( 1, 1 ):Font:Size := 14
oSheet:Range( oSheet:Cells( 1, 1 ), oSheet:Cells( 1, 2 ) ):merge()
oSheet:Cells( 1, 3 ):value := "TOTAL TIRAGEM "
oSheet:Cells( 1, 3 ):Font:Size := 12
oSheet:Range( oSheet:Cells( 1, 3 ), oSheet:Cells( 1, 4 ) ):merge()
//oSheet:Cells( 1, 4 ):Value := "=soma( J3:J" + allTrim( str( hora->( ordKeyCount() ) * 3 ) ) + ")"
oSheet:Cells( 1, 4 ):NumberFormat := "#.###"
oSheet:Cells( 1, 4 ):Font:Size := 20
oSheet:Cells( 1, 6 ):value := hora->DATA
oSheet:Cells( 1, 6 ):Font:Size := 11
oSheet:Cells( 1, 7 ):value := cdOW( hora->DATA )
oSheet:Cells( 1, 7 ):Font:Size := 11
oSheet:Cells( 1, 8 ):Font:Size := 11
oSheet:Range( oSheet:Cells( 1, 7 ), oSheet:Cells( 1, 8 ) ):merge()
oSheet:Cells( 1, 9 ):value := "INFORMAÇOES DA ROTA"
oSheet:Cells( 1, 9 ):Font:Size := 10
oSheet:Range( oSheet:Cells( 1, 9 ), oSheet:Cells( 1, 13 ) ):merge()
oSheet:Cells( 1, 14 ):value := "PREENCHIMENTO OBRIGATORIO QUANDO HOUVER ATRASO NA DISTRIBUIÇÃO E OCORRENCIAS NAS ROTAS"
oSheet:Cells( 1, 14 ):Font:Size := 10
//oSheet:Range( oSheet:Cells( 1, 1 ), oSheet:Cells( 1, 2 ) )
oSheet:Range( oSheet:Cells( 1, 14 ), oSheet:Cells( 1, 28 ) ):merge()
oSheet:Rows( 2 ):RowHeight := 37
oSheet:Rows( 2 ):VerticalAlignment := xlCenter
oSheet:Rows( 2 ):HorizontalAlignment := xlCenter
oSheet:Rows( 2 ):WrapText := .T.
oSheet:Range( oSheet:Cells( 2, 1 ), oSheet:Cells( 2, 28 ) ):Interior:ColorIndex := Cinza
oSheet:Range( oSheet:Cells( 2, 1 ), oSheet:Cells( 2, 28 ) ):Font:ColorIndex := Preto
oSheet:Range( oSheet:Cells( 2, 1 ), oSheet:Cells( 2, 28 ) ):Font:Size := 9
oSheet:Cells( 2, 1 ):value := "ROTA"
oSheet:Cells( 2, 2 ):value := "BAIRROS"
oSheet:Cells( 2, 3 ):value := "AMARAÇÃO"
oSheet:Cells( 2, 4 ):value := "SAÍDA CORREIO"
oSheet:Cells( 2, 5 ):value := "1ª Banca"
oSheet:Cells( 2, 6 ):value := "Ult banca"
oSheet:Cells( 2, 7 ):value := "Percurso"
oSheet:Cells( 2, 8 ):value := "Janela"
oSheet:Cells( 2, 9 ):value := "Qtd PDV`S da rota"
oSheet:Cells( 2, 10 ):value := "KM ROTA DISTRIBUIÇÃO"
oSheet:Cells( 2, 11 ):value := "Qtd de jornais da rota"
oSheet:Cells( 2, 12 ):value := "PDV´S atendidos até 6:30"
oSheet:Cells( 2, 13 ):value := "%"
oSheet:Cells( 2, 14 ):value := "PDV´S atendidos após 6:31 até 7:30"
oSheet:Cells( 2, 15 ):value := "%"
oSheet:Cells( 2, 16 ):value := "PDV´S atendidos das 7:31 as 8:30"
oSheet:Cells( 2, 17 ):value := "%"
oSheet:Cells( 2, 18 ):value := "PDV´S atendidos após 8:30"
oSheet:Cells( 2, 19 ):value := "%"
oSheet:Cells( 2, 20 ):value := "Total PDV,S atendidos"
oSheet:Cells( 2, 21 ):value := "OCORRÊNCIAS DA ROTA - PREENCHIMENTO OBRIGATÓRIO "
oSheet:Range( oSheet:Cells( 2, 21 ), oSheet:Cells( 2, 28 ) ):merge()
oSheet:Columns( 1 ):ColumnWidth := 17
oSheet:Columns( 2 ):ColumnWidth := 42
oSheet:Columns( 3 ):ColumnWidth := 15
oSheet:Columns( 4 ):ColumnWidth := 15
oSheet:Columns( 5 ):ColumnWidth := 15
oSheet:Columns( 6 ):ColumnWidth := 14
oSheet:Columns( 7 ):ColumnWidth := 12.14
oSheet:Columns( 8 ):ColumnWidth := 10.43
oSheet:Columns( 9 ):ColumnWidth := 11.57
oSheet:Columns( 10 ):ColumnWidth := 12
oSheet:Columns( 11 ):ColumnWidth := 14.71
oSheet:Columns( 12 ):ColumnWidth := 14.29
oSheet:Columns( 13 ):ColumnWidth := 7.29
oSheet:Columns( 14 ):ColumnWidth := 15.86
oSheet:Columns( 15 ):ColumnWidth := 6.57
oSheet:Columns( 16 ):ColumnWidth := 15.86
oSheet:Columns( 17 ):ColumnWidth := 6.57
WHILE hora->( !eOF() )
oMeter:Set( hora->( ordKeyNo() ) )
SysRefresh()
aRota := SomaTira( aExep, dData, hora->ROTA )
nL := hora->( ordKeyNo() ) * 3
oSheet:Rows( nL ):HorizontalAlignment := xlCenter
oSheet:Range( oSheet:Cells( nL, 21 ), oSheet:Cells( nL, 28 ) ):merge()
cStrg := subStr( hora->EXTR, 1, at( " ", hora->EXTR ) )
oSheet:Cells( nL, 1 ):NumberFormat := "@"
oSheet:Cells( nL, 1 ):value := cStrg// hora->ROTA
oSheet:Cells( nL, 2 ):value := charRem( "-", strTran( hora->EXTR, cStrg, "" ) ) // hora->EXTR
oSheet:Cells( nL, 3 ):value := hora->HAMA
oSheet:Cells( nL, 4 ):value := hora->HSAI
oSheet:Cells( nL, 4 ):Interior:ColorIndex := if( hora->HSAI < "04:00", Verde, Vermelho )
oSheet:Cells( nL, 5 ):value := hora->H1PV
oSheet:Cells( nL, 6 ):value := hora->HUPV
oSheet:Cells( nL, 6 ):Interior:ColorIndex := if( hora->HUPV < "06:31", Verde, Vermelho )
oSheet:Cells( nL, 7 ):value := if( "=F" + allTrim( str( nL ) ) > "E" + allTrim( str( nL ) ), "=F" + allTrim( str( nL ) ) + "-E" + allTrim( str( nL ) ), "=F" + allTrim( str( nL ) ) + "-E" + allTrim( str( nL ) ) + "+24" )// "=F" + allTrim( str( nL ) ) + "-E" + allTrim( str( nL ) )
oSheet:Cells( nL, 8 ):value := if( "=F" + allTrim( str( nL ) ) > "D" + allTrim( str( nL ) ), "=F" + allTrim( str( nL ) ) + "-D" + allTrim( str( nL ) ), "=F" + allTrim( str( nL ) ) + "-D" + allTrim( str( nL ) ) + "+24" ) //"=F" + allTrim( str( nL ) ) + "-D" + allTrim( str( nL ) )
oSheet:Cells( nL, 9 ):value := aRota[ 1 ]
oSheet:Cells( nL, 10 ):value := hora->KMRT
oSheet:Cells( nL, 11 ):value := aRota[ 2 ]
oSheet:Cells( nL, 12 ):value := hora->QAT6
oSheet:Cells( nL, 13 ):value := "=K" + allTrim( str( nL ) ) + "*1/H" + allTrim( str( nL ) )
oSheet:Cells( nL, 13 ):NumberFormat := "###,##%"
oSheet:Range( oSheet:Cells( nL, 12 ), oSheet:Cells( nL, 13 ) ):Interior:ColorIndex := Verde
oSheet:Cells( nL, 14 ):value := hora->QAT7
oSheet:Cells( nL, 15 ):value := "=M" + allTrim( str( nL ) ) + "*1/H" + allTrim( str( nL ) )
oSheet:Cells( nL, 15 ):NumberFormat := "###,##%"
oSheet:Range( oSheet:Cells( nL, 14 ), oSheet:Cells( nL, 15 ) ):Interior:ColorIndex := if( oSheet:Cells( nL, 14 ):value = 0, Verde, Vermelho )
oSheet:Cells( nL, 16 ):value := hora->QAT8
oSheet:Cells( nL, 17 ):value := "=O" + allTrim( str( nL ) ) + "*1/H" + allTrim( str( nL ) )
oSheet:Cells( nL, 17 ):NumberFormat := "###,##%"
oSheet:Range( oSheet:Cells( nL, 16 ), oSheet:Cells( nL, 17 ) ):Interior:ColorIndex := if( oSheet:Cells( nL, 16 ):value = 0, Verde, Vermelho )
oSheet:Cells( nL, 18 ):value := hora->QAT9
oSheet:Cells( nL, 19 ):value := "=Q" + allTrim( str( nL ) ) + "*1/H" + allTrim( str( nL ) )
oSheet:Cells( nL, 19 ):NumberFormat := "###,##%"
oSheet:Range( oSheet:Cells( nL, 18 ), oSheet:Cells( nL, 19 ) ):Interior:ColorIndex := if( oSheet:Cells( nL, 18 ):value = 0, Verde, Vermelho )
oSheet:Cells( nL, 20 ):value := "=(K" + allTrim( str( nL ) ) + "+M" + allTrim( str( nL ) ) + "+O" + allTrim( str( nL ) ) + "+Q" + allTrim( str( nL ) ) + ")*1/H" + allTrim( str( nL ) )
oSheet:Cells( nL, 20 ):NumberFormat := "###,##%"
oSheet:Cells( nL, 21 ):value := if( hora->OCOR == "S", hora->OBSE, "NÃO" )
oSheet:Cells( nL, 21 ):Interior:ColorIndex := if( hora->OCOR == "S", Vermelho, Verde )
//oSheet:Cells( nL, 22 ):value := hora->OBSE
FOR nI := 1 TO 28
oSheet:Range( oSheet:Cells( nL, nI ), oSheet:Cells( nL + 2, nI ) ):merge()
oSheet:Range( oSheet:Cells( nL, nI ), oSheet:Cells( nL + 2, nI ) ):VerticalAlignment := xlCenter
NEXT
IF hora->ROTA == "999999"
aExep[ 1, 2 ] := nL
ENDIF
IF hora->ROTA == "999998"
aExep[ 5, 2 ] := nL
ENDIF
IF hora->ROTA == "004001"
aExep[ 2, 2 ] := nL
ENDIF
IF hora->ROTA == "003301"
aExep[ 3, 2 ] := nL
ENDIF
IF hora->ROTA == "005900"
aExep[ 4, 2 ] := nL
ENDIF
hora->( dbSkip() )
ENDDO
//8 = pdv 10 = jornais
// caso radio santa rita
IF aExep[ 2, 2 ] != 0
oSheet:Cells( aExep[ 1, 2 ], 8 ):value := aExep[ 1, 3 ]
oSheet:Cells( aExep[ 1, 2 ], 10 ):value := aExep[ 1, 1 ]
ENDIF
// caso rota 004800 soma com 004001
SomaTira( aExep, dData, "004800" )
IF aExep[ 2, 2 ] != 0
oSheet:Cells( aExep[ 2, 2 ], 8 ):value += aExep[ 2, 3 ]
oSheet:Cells( aExep[ 2, 2 ], 10 ):value += aExep[ 2, 1 ]
ENDIF
// caso rota 005000 soma com 003301
SomaTira( aExep, dData, "005000" )
IF aExep[ 3, 2 ] != 0
oSheet:Cells( aExep[ 3, 2 ], 8 ):value += aExep[ 3, 3 ]
oSheet:Cells( aExep[ 3, 2 ], 10 ):value += aExep[ 3, 1 ]
ENDIF
// caso rota 006000 soma com 005900
SomaTira( aExep, dData, "006000" )
IF aExep[ 4, 2 ] != 0
oSheet:Cells( aExep[ 4, 2 ], 8 ):value += aExep[ 4, 3 ]
oSheet:Cells( aExep[ 4, 2 ], 10 ):value += aExep[ 4, 1 ]
ENDIF
// caso gazeteiro Simões Filho
IF aExep[ 5, 2 ] != 0
oSheet:Cells( aExep[ 5, 2 ], 8 ):value += aExep[ 5, 3 ]
oSheet:Cells( aExep[ 5, 2 ], 10 ):value += aExep[ 5, 1 ]
ENDIF
oSheet:Cells( 1, 5 ):Value := "=soma( K3:K" + allTrim( str( hora->( ordKeyCount() ) * 3 ) ) + ")" + if( aExep[ 1, 2 ] != 0, "- K" + allTrim( str( aExep[ 1, 2 ] ) ), "" ) + if( aExep[ 5, 2 ] != 0, " - K" + allTrim( str( aExep[ 5, 2 ] ) ), "" )
oSheet:Range( oSheet:Cells( 3, 22 ), oSheet:Cells( hora->( ordKeyCount() ) * 3, 28 ) ):Font:Bold := .F.
oSheet:Range( oSheet:Cells( 1, 1 ), oSheet:Cells( hora->( ordKeyCount() ) * 3, 28 ) ):Borders( xlInsideHorizontal ):LineStyle := xlContinuous
oSheet:Range( oSheet:Cells( 1, 1 ), oSheet:Cells( hora->( ordKeyCount() ) * 3, 28 ) ):Borders( xlInsideHorizontal ):Weight := xlThin
oSheet:Range( oSheet:Cells( 1, 1 ), oSheet:Cells( hora->( ordKeyCount() ) * 3 + 2, 28 ) ):Borders( xlInsideVertical ):LineStyle := xlContinuous
oSheet:Range( oSheet:Cells( 1, 1 ), oSheet:Cells( hora->( ordKeyCount() ) * 3 + 2, 28 ) ):Borders( xlInsideVertical ):Weight := xlThin
oSheet:Range( oSheet:Cells( 1, 1 ), oSheet:Cells( hora->( ordKeyCount() ) * 3 + 2, 28 ) ):Borders( xlEdgeBottom ):LineStyle := xlContinuous
oSheet:Range( oSheet:Cells( 1, 1 ), oSheet:Cells( hora->( ordKeyCount() ) * 3 + 2, 28 ) ):Borders( xlEdgeBottom ):Weight := xlThin
oSheet:Range( oSheet:Cells( 1, 1 ), oSheet:Cells( hora->( ordKeyCount() ) * 3 + 2, 28 ) ):Borders( xlEdgeRight ):LineStyle := xlContinuous
oSheet:Range( oSheet:Cells( 1, 1 ), oSheet:Cells( hora->( ordKeyCount() ) * 3 + 2, 28 ) ):Borders( xlEdgeRight ):Weight := xlThin
oSheet:Range( oSheet:Cells( 1, 1 ), oSheet:Cells( hora->( ordKeyCount() ) * 3 + 2, 28 ) ):Borders( xlEdgeTop ):LineStyle := xlContinuous
oSheet:Range( oSheet:Cells( 1, 1 ), oSheet:Cells( hora->( ordKeyCount() ) * 3 + 2, 28 ) ):Borders( xlEdgeTop ):Weight := xlThin
oSheet:Range( oSheet:Cells( 1, 1 ), oSheet:Cells( hora->( ordKeyCount() ) * 3 + 2, 28 ) ):Borders( xlEdgeLeft ):LineStyle := xlContinuous
oSheet:Range( oSheet:Cells( 1, 1 ), oSheet:Cells( hora->( ordKeyCount() ) * 3 + 2, 28 ) ):Borders( xlEdgeLeft ):Weight := xlThin
nL += 4
oSheet:Rows( nL ):VerticalAlignment := xlCenter
oSheet:Rows( nL ):HorizontalAlignment := xlCenter
oSheet:Range( oSheet:Cells( nL, 1 ), oSheet:Cells( nL, 28 ) ):Interior:ColorIndex := AzulClaro
oSheet:Range( oSheet:Cells( nL, 1 ), oSheet:Cells( nL, 28 ) ):Font:ColorIndex := Preto
//oSheet:Range( oSheet:Cells( nL, 1 ), oSheet:Cells( nL, 10 ) ):Interior:ColorIndex := AzulClaro
//oSheet:Range( oSheet:Cells( nL, 1 ), oSheet:Cells( nL, 10 ) ):Font:ColorIndex := Preto
oSheet:Cells( nL, 1 ):Value := "QUADRO DE LEGENDAS"
oSheet:Range( oSheet:Cells( nL, 1 ), oSheet:Cells( nL, 3 ) ):merge()
//oSheet:Range( oSheet:Cells( nL, 4 ), oSheet:Cells( nL, 9 ) ):Interior:ColorIndex := AzulClaro
//oSheet:Range( oSheet:Cells( nL, 4 ), oSheet:Cells( nL, 9 ) ):Font:ColorIndex := Preto
oSheet:Cells( nL, 6 ):Value := "QUADRO DE LEGENDAS"
oSheet:Range( oSheet:Cells( nL, 4 ), oSheet:Cells( nL, 9 ) ):merge()
//oSheet:Range( oSheet:Cells( nL, 11 ), oSheet:Cells( nL, 17 ) ):Interior:ColorIndex := AzulClaro
//oSheet:Range( oSheet:Cells( nL, 11 ), oSheet:Cells( nL, 17 ) ):Font:ColorIndex := Preto
oSheet:Cells( nL, 11 ):Value := "QUADRO DE LEGENDAS"
oSheet:Range( oSheet:Cells( nL, 11 ), oSheet:Cells( nL, 17 ) ):merge()
//oSheet:Range( oSheet:Cells( nL, 22 ), oSheet:Cells( nL, 28 ) ):Interior:ColorIndex := AzulClaro
//oSheet:Range( oSheet:Cells( nL, 22 ), oSheet:Cells( nL, 28 ) ):Font:ColorIndex := Preto
oSheet:Cells( nL, 22 ):Value := "QUADRO DE LEGENDAS"
oSheet:Range( oSheet:Cells( nL, 22 ), oSheet:Cells( nL, 28 ) ):merge()
nL += 1
oSheet:Rows( nL ):VerticalAlignment := xlCenter
oSheet:Rows( nL ):HorizontalAlignment := xlCenter
oSheet:Range( oSheet:Cells( nL, 1 ), oSheet:Cells( nL, 28 ) ):Interior:ColorIndex := Cinza
oSheet:Range( oSheet:Cells( nL, 1 ), oSheet:Cells( nL, 28 ) ):Font:ColorIndex := Preto
oSheet:Cells( nL, 1 ):Value := "Saída Correio"
oSheet:Range( oSheet:Cells( nL, 1 ), oSheet:Cells( nL, 3 ) ):merge()
oSheet:Cells( nL, 5 ):Value := "Ult. Banca"
oSheet:Range( oSheet:Cells( nL, 4 ), oSheet:Cells( nL, 9 ) ):merge()
//oSheet:Range( oSheet:Cells( nL, 11 ), oSheet:Cells( nL, 17 ) ):Interior:ColorIndex := Cinza
//oSheet:Range( oSheet:Cells( nL, 11 ), oSheet:Cells( nL, 17 ) ):Font:ColorIndex := Preto
oSheet:Cells( nL, 11 ):Value := "PDV´S atendidos até 6:30"
oSheet:Range( oSheet:Cells( nL, 11 ), oSheet:Cells( nL, 17 ) ):merge()
//oSheet:Range( oSheet:Cells( nL, 22 ), oSheet:Cells( nL, 28 ) ):Interior:ColorIndex := Cinza
//oSheet:Range( oSheet:Cells( nL, 22 ), oSheet:Cells( nL, 28 ) ):Font:ColorIndex := Preto
oSheet:Cells( nL, 22 ):Value := "OCORRÊNCIAS DA ROTA - PREENCHIMENTO OBRIGATÓRIO"
oSheet:Range( oSheet:Cells( nL, 22 ), oSheet:Cells( nL, 28 ) ):merge()
nL += 1
oSheet:Rows( nL ):VerticalAlignment := xlCenter
oSheet:Rows( nL ):HorizontalAlignment := xlCenter
oSheet:Rows( nL ):RowHeight := 30
oSheet:Rows( nL ):WrapText := .T.
oSheet:Range( oSheet:Cells( nL, 1 ), oSheet:Cells( nL, 1 ) ):Interior:ColorIndex := Vermelho
oSheet:Cells( nL, 2 ):Value := "FORA DO HORÁRIO EXPEDIÇÃO (ATRASADO)"
oSheet:Range( oSheet:Cells( nL, 2 ), oSheet:Cells( nL, 3 ) ):merge()
oSheet:Range( oSheet:Cells( nL, 4 ), oSheet:Cells( nL, 4 ) ):Interior:ColorIndex := Vermelho
oSheet:Cells( nL, 5 ):Value := "JORNAL ENTREGUE FORA DO HORARIO LIMITE APÓS 6:30"
oSheet:Range( oSheet:Cells( nL, 5 ), oSheet:Cells( nL, 8 ) ):merge()
oSheet:Range( oSheet:Cells( nL, 10 ), oSheet:Cells( nL, 10 ) ):Interior:ColorIndex := Vermelho
oSheet:Cells( nL, 11 ):Value := "FORA DO HORÁRIO EXPEDIÇÃO (ATRASADO)"
oSheet:Range( oSheet:Cells( nL, 11 ), oSheet:Cells( nL, 16 ) ):merge()
oSheet:Range( oSheet:Cells( nL, 21 ), oSheet:Cells( nL, 21 ) ):Interior:ColorIndex := Vermelho
oSheet:Cells( nL, 22 ):Value := "QUANDO HOUVER OCORRENCIAS NA ROTA DE DISTRIBUIÇÃO"
oSheet:Range( oSheet:Cells( nL, 22 ), oSheet:Cells( nL, 28 ) ):merge()
nL += 1
oSheet:Rows( nL ):VerticalAlignment := xlCenter
oSheet:Rows( nL ):HorizontalAlignment := xlCenter
oSheet:Rows( nL ):RowHeight := 30
oSheet:Rows( nL ):WrapText := .T.
oSheet:Range( oSheet:Cells( nL, 1 ), oSheet:Cells( nL, 1 ) ):Interior:ColorIndex := Verde
oSheet:Cells( nL, 2 ):Value := "DENTRO DA GRADE DE HORARIO DE EXPEDIÇÃO"
oSheet:Range( oSheet:Cells( nL, 2 ), oSheet:Cells( nL, 3 ) ):merge()
oSheet:Range( oSheet:Cells( nL, 4 ), oSheet:Cells( nL, 4 ) ):Interior:ColorIndex := Verde
oSheet:Cells( nL, 5 ):Value := "JORNAL ENTREGUE DENTRO DO HORARIO LIMITE ATÉ 6:30"
oSheet:Range( oSheet:Cells( nL, 5 ), oSheet:Cells( nL, 8 ) ):merge()
oSheet:Range( oSheet:Cells( nL, 10 ), oSheet:Cells( nL, 10 ) ):Interior:ColorIndex := Verde
oSheet:Cells( nL, 11 ):Value := "DENTRO DA GRADE DE HORARIO DE EXPEDIÇÃO"
oSheet:Range( oSheet:Cells( nL, 11 ), oSheet:Cells( nL, 16 ) ):merge()
oSheet:Range( oSheet:Cells( nL, 21 ), oSheet:Cells( nL, 21 ) ):Interior:ColorIndex := Verde
oSheet:Cells( nL, 22 ):Value := "QUANDO NÃO HOUVER OCORRENCIAS NA ROTA"
oSheet:Range( oSheet:Cells( nL, 22 ), oSheet:Cells( nL, 28 ) ):merge()
oSheet:Cells( 1, 1 ):Select()
oExcel:Visible = .T.
hora->( dbGoTop() )
RETURN ( NIL )
Regards,
André Dutheil
FWH 13.04 HB 3.2 BCC 5.82 MinGW 4.5.2 MSVS 10
André Dutheil
FWH 13.04 HB 3.2 BCC 5.82 MinGW 4.5.2 MSVS 10
Re: Question about Excel
Create a macro in Excel and look at the generated VBA.driessen wrote: Can you tell me where I can find all this necessary information?
See http://wiki.fivetechsoft.com/doku.php?i ... aq&s=excel . There are 2 links to excel related FAQ that you can use as a starting point
FWH 11.08/FWH 19.03
xHarbour 1.2.1 (Rev 6406) + BCC
Harbour 3.1 (Rev 17062) + BCC
Harbour 3.2.0dev (r1904111533) + BCC
xHarbour 1.2.1 (Rev 6406) + BCC
Harbour 3.1 (Rev 17062) + BCC
Harbour 3.2.0dev (r1904111533) + BCC