Insertar una imagen como fondo en un comentario Excel

276 views
Skip to first unread message

Cesar J PaEs

unread,
Jan 6, 2016, 3:02:37 PM1/6/16
to publice...@googlegroups.com
 
Hola comunidad, estoy tratando de insertar un fondo a un comentario en Excel, la verdad le he dado varias vueltas pero no logro hacerlo, si pudiera darme una manito.
 
*para saber cuantas fotos tengo con relación a un archivo.
fotosnro = ADIR(photos, 'FOTOS PARTE\'+ALLTRIM(archivo)+'*.JPG') && Create array
 
*como las fotos las debo poner una al lado de otro
L1="ABCDEFGHIJKLMNOPQRSTU"

FOR nCount = 1 TO fotosnro && Loop for number of databases
     L2=SUBSTR(L1,6+nCount,1)  && a partir de la columna G se debe insertar el comentario con fondo.
     xfoto=SYS(5)+SYS(2003)+"\FOTOS PARTE\"+ALLTRIM(Archivo)+"-"+RIGHT("0"+ALLTRIM(STR(nCount)),2)+".JPG"
     XLSheet.Range((l2+ALLTRIM(STR(x)))+":"+(l2+ALLTRIM(STR(x)))).Select
 
           *hasta aquí ok
 
     XLSheet.ShapeRange.Fill.Visible=.t.   && aquí vota el error...
     XLSheet.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 255)
     XLSheet.ShapeRange.Fill.BackColor.RGB = RGB(255, 255, 225)
     XLSheet.ShapeRange.Fill.UserPicture=xfoto
     XLSheet.ShapeRange.ScaleWidth= 4.09
     XLSheet.ShapeRange.ScaleHeight= 4.51

 
ENDFOR
 
gracias de antemano.

Allan Raúl Acuña

unread,
Jan 6, 2016, 3:08:02 PM1/6/16
to publice...@googlegroups.com
Te recomiendo que crees la macro y traduzcas el código, así podrías resolverlo.

Por otro lado seria bueno que pongas una muestra de como lo necesitas.

Saludos cordiales.

Lic. Allan Raúl Acuña
Analista Programador
msn= allan...@hotmail.com
skype= NicEasySoft
            +(505) 8 999 8950
Managua, Nicaragua
Centroamérica



From: libra...@hotmail.com
To: publice...@googlegroups.com
Subject: [vfp] Insertar una imagen como fondo en un comentario Excel
Date: Wed, 6 Jan 2016 20:02:32 +0000

Jairo Miranda

unread,
Jan 6, 2016, 3:33:44 PM1/6/16
to publicesvfoxpro
Si es posible hacer un reporte, mejor y después exportarlo con la magnifica herramienta de foxypreviewer.. y listo....

JM 

Cesar J PaEs

unread,
Jan 8, 2016, 10:20:21 PM1/8/16
to publice...@googlegroups.com
hice una macro, insertando la imagen, luego trate de convertir el código pero no tuve éxito, he intentado muchas veces.. si alguien me puede apoyar estaría agradecido.
 
el código es el siguiente:
 
Range("E9").AddComment
Range("E9").Comment.Visible = False
Range("E9").Comment.Text Text:="prueba1:" & Chr(10) & ""
Selection.ShapeRange.ScaleWidth 2.09, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 2.51, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.Fill.Transparency = 0#
Selection.ShapeRange.Line.Weight = 0.75
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Transparency = 0#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.ForeColor.RGB = RGB(0, 0, 0)
Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.Fill.BackColor.RGB = RGB(255, 255, 225)
Selection.ShapeRange.Fill.UserPicture "D:\fotos 26-04-2015\DSC00530.JPG"
Range("E9").Select
 
 
 
 
 
 

 

From: allan...@hotmail.com
To: publice...@googlegroups.com
Subject: RE: [vfp] Insertar una imagen como fondo en un comentario Excel
Date: Wed, 6 Jan 2016 20:07:57 +0000

Fidel Charny

unread,
Jan 9, 2016, 8:45:55 AM1/9/16
to Comunidad de Visual Foxpro en Español
Mirá el siguiente código. Tal vez te ayude en algo. Para probar, reemplaza los path y referencia a archivos de imagen.
TRY
    LOCAL lcImage
,lcTexto,;
        lnLeft
,lnTop,lnWidth,lnHeight,;
        lcPath
,;
        lnIma
,;
        i_
,;
        oExcel
as Object,;
        oSheet
as Object,;
        loShape
as Object,;
        loText
as Object,;
        loFill
as Object,;
        loEx
as Exception

    LOCAL ARRAY laPicture
(1)

    lcImage
= "c:\Theodore\EGIPTO.png"
    lcPath
= "c:\theodore\graphics"
    lnIma
= ADIR(laPicture,ADDBS(lcPath)+"*.jpg","",1)
   
    lcTexto
= "Este es el texto que se quiere agregar a una caja de texto." + CHR(10) ;
           
+"Es una caja de texto superpuesta a una imagen."
           
    lnLeft
= 5
    lnTop
= 20
    lnWidth
= 400
    lnheight
= 200

   
* Objeto Excel
    oExcel
= NEWOBJECT("Excel.application")
    oExcel
.Workbooks.Add
    oSheet
= oExcel.ActiveSheet
   
   
* Objeto Imagen
    loShape
= oSheet.Shapes.AddPicture(lcImage,1,1,lnLeft,lntop,lnWidth,lnHeight)
    loshape
.ZOrder(4)

   
* Objeto TextBox
    loText
= oSheet.Shapes.AddTextbox(1,lnLeft,lntop,lnWidth,lnHeight)
    lotext
.TextFrame.Characters.Text = lcTexto
    lotext
.TextFrame.Characters.Font.Background = 2

    lcTexto
= "Este es el texto que se quiere agregar a una caja de texto." + CHR(10) ;
       
+"Es una forma rectangular con color de fondo."
    lnTop
= lnTop + 210

   
* Objeto Rectangle    
    loFill
= oSheet.Shapes.AddShape(1,lnLeft,lntop,lnWidth,lnHeight)
    loFill
.TextFrame.Characters.Text= m.lcTexto
    WITH lofill
.Fill
       
.ForeColor.RGB = 15136767
       
.BackColor.RGB = 11589887
       
.TwoColorGradient( 1, 1 )

    ENDWITH

    lnTop
= 1
    lnHeight
= 12.75
    lnLeft
= 420
    lnWidth
= 10.71
   
   
* Crea varios objetos Imagen.
    FOR i_
= 1 TO m.lnIma
        loShape
= oSheet.Shapes.AddPicture( ADDBS(lcPath)+laPicture[i_,1],1,1,lnLeft,lntop,lnWidth,lnHeight)
        lnTop
= lnTop + lnHeight
    NEXT

    oexcel
.Visible = .t.
CATCH TO loex
    loex
.UserValue = PROGRAM()
   
* ShowError(loex) && Mostrar error
FINALLY
    STORE
null TO loFill,loShape,lotext, oSheet, oExcel
ENDTRY

Cesar J PaEs

unread,
Jan 11, 2016, 9:16:39 PM1/11/16
to publice...@googlegroups.com
Muchas gracias por tu código, me sirvió mucho, ahora en la primea hoja llamada "OCURRENCIAS" inserto los registros del 1 hasta el final, tengo un campo que me referencia el nombre de la imagen por ejemplo: P001-2016
las imágenes tendrían como nombre:
P001-2016-01
P001-2016-02
P001-2016-03
P001-2016-04.......
 
no son muchas las imágenes hasta un máximo de 10 aprox.
para esto creo otra hoja con el nombre de referencia (P001-2016) e inserto todas las imágenes que y así sucesivamente; hasta ahí todo ok, gracias a tu código, ahora lo que quiero hacer es insertar un vinculo desde la hoja principal "OCURRENCIAS" hasta la hoja donde se encuentran las fotos del registro y en esta hoja otro vinculo para regresar hasta la hoja inicial; no se si me dejé entender; estoy trabajando en eso ahora, el que sigue la consigue... bueno
 
muchas gracias por el apoyo..

 

Date: Sat, 9 Jan 2016 05:45:55 -0800
From: fjch...@gmail.com
To: publice...@googlegroups.com
Subject: Re: [vfp] Insertar una imagen como fondo en un comentario Excel

Cesar J PaEs

unread,
Jan 14, 2016, 2:19:53 PM1/14/16
to publice...@googlegroups.com
Quiero agradecer el aporte que me brindaron, gracias comunidad; ya terminé de hacer el código y todo esta ok, por si a alguien le puede hacer de ayuda les muestro el código:
 
Oexcel = CREATEOBJECT("Excel.Application")
XLApp = Oexcel
 
XLApp.workbooks.ADD()
XLSheet = XLApp.ActiveSheet
 
XLSheet.NAME='Ocurrencias'

XLApp.Sheets(1).SELECT

Oexcel.VISIBLE=.F.
OExcel.ActiveWindow.DisplayZeros = "FALSE"

 
XLSheet.PageSetup.Orientation = 2 && pagina xlLandscape
XLSheet.Range("A1:F1").Merge
XLSheet.Range("A2:F2").Merge
XLSheet.Range("A3:F3").Merge
XLSheet.Range("A1:F4").HorizontalAlignment = -4108 && centrado
XLSheet.Range("A2:F4").VerticalAlignment = -4108 && centrado
XLSheet.Range("A1:F3").Font.Size=13
XLSheet.Range("A1:F3").WrapText = .T.
XLSheet.Cells(1,1).VALUE='OCURRENCIAS DEL SERVICIO DE SEGURIDAD Y VIGILANCIA '+ALLTRIM(CLIENTE)+" "+ALLTRIM(Unidad)

XLSheet.Cells(1,1).Font.Underline = 2 && subrayado
XLSheet.Cells(1,1).Font.Bold=.t.
XLSheet.Cells(2,1).VALUE="( del "+TRANSFORM(thisform.fecha1.Value,"@E")+" al "+transform(thisform.fecha2.Value,"@E")+" )"

XLSheet.Cells(2,1).font.color=rgb(255,0,0)
XLSheet.Cells(3,1).VALUE="Coordinador de Seguridad Sunat Sr. "+ALLTRIM(unidos.jefe_seg)
XLSheet.Cells(3,1).font.color=rgb(0,92,184) && azul
XLSheet.Cells(3,1).HorizontalAlignment = 2 &&izquierdo
XLSheet.Range("A4:F4").Interior.colorIndex=40 && anaranjado
WITH XLSheet.Range("A4:F4")
.Borders(1).LineStyle = 1
.Borders(2).LineStyle = 1
.Borders(3).LineStyle = 1
.Borders(4).LineStyle = 1
ENDWITH

 
 
XLSheet.Cells(4, 1).VALUE='N°'
XLSheet.Cells(4, 2).VALUE='DATOS'
XLSheet.Cells(4, 3).VALUE='RESUMEN DE LA OCURRENCIA'
XLSheet.Cells(4, 4).VALUE='ACCIONES REALIZADAS'
XLSheet.Cells(4, 5).VALUE='RESULTADOS'
XLSheet.Cells(4, 6).VALUE='AREA'
XLSheet.Range("A4:F4").Font.Bold=.t.
XLSheet.Range("A4:F4").RowHeight=35
XLSheet.Range("A4:F4").HorizontalAlignment = 3 && 3=CENTERADO
XLSheet.Range("A4:F4").Font.Size = 11
XLSheet.Columns("A").ColumnWidth=3
XLSheet.Columns("B").ColumnWidth=35
XLSheet.Columns("C").ColumnWidth=65
XLSheet.Columns("D:E").ColumnWidth=30
XLSheet.Columns("F").ColumnWidth=20
 
 
x=5
 
SET DATE dmy
SET CENTURY ON
GO top

DO WHILE !EOF()
XLSheet.Range("A"+ALLTRIM(STR(x))+":F"+ALLTRIM(STR(x))).Font.Size = 10
XLSheet.Range("A"+ALLTRIM(STR(x))+":F"+ALLTRIM(STR(x))).VerticalAlignment = 1
XLSheet.Range("B"+ALLTRIM(STR(x))+":F"+ALLTRIM(STR(x))).HorizontalAlignment = 2 &&izquierdo
XLSheet.Range("B"+ALLTRIM(STR(x))+":F"+ALLTRIM(STR(x))).WrapText = .T.
WITH XLSheet.Range("A"+ALLTRIM(STR(x))+":F"+ALLTRIM(STR(x)))
.Borders(1).LineStyle = 1
.Borders(2).LineStyle = 1
.Borders(3).LineStyle = 1
.Borders(4).LineStyle = 1

 
ENDWITH

XLSheet.Range("A"+ALLTRIM(STR(x))+":F"+ALLTRIM(STR(x))).
XLSheet.Cells( x,1).VALUE=X-4
XLSheet.Cells( x,1).HorizontalAlignment = 3 && 3=CENTERADO
XLSheet.Cells( x,2).VALUE='Fecha : '+DTOC(fecha)+CHR(13)+CHR(10)+ALLTRIM(parte)+CHR(13)+CHR(10)+ALLTRIM(superv)

XLSheet.Cells( x,3).VALUE=ALLTRIM(ocurre)
XLSheet.Cells( x,4).VALUE=ALLTRIM(accion)
XLSheet.Cells( x,5).VALUE=ALLTRIM(resultado)
XLSheet.Cells( x,6).VALUE=ALLTRIM(area)

fotosnro = ADIR(imagenes, 'FOTOS PARTE\'+ALLTRIM(archivo)+'*.JPG',"",1) && Create array

IF fotosnro<>0

&& Agregar una nueva hoja al libro

XLSheet.Cells( x,7).VALUE="Fotos ->"
XLSheet.Cells( x,7).HorizontalAlignment = -4108 && 3=CENTERADO
XLSheet.Cells( x,7).VerticalAlignment = -4108 && 3=CENTERADO
XLSheet.Range("G"+ALLTRIM(STR(x))).Select
oExcel.ActiveSheet.Hyperlinks.Add(oExcel.Selection, "",[']+archivo+"'"+"!A1")
XLSheet.Cells( x,7).Font.Bold=.t.
XLSheet.Cells( x,7).Font.Size = 11
XLSheet.Cells( x,7).font.color=rgb(255,0,0)
OExcel.application.Sheets.Add()
XLSheet.application.ActiveSheet.Name = archivo
XLSheet.application.Sheets(archivo).SELECT
lnTop = 5
lnHeight = 200
lnLeft = 1
lnWidth = 250

* Crea varios objetos Imagen.
FOR i_ = 1 TO fotosnro
loShape = XLSheet.application.ActiveSheet.Shapes.AddPicture(SYS(5)+SYS(2003)+;
 
 
'\FOTOS PARTE\'+imagenes[i_,1],1,1,lnLeft,lntop,lnWidth,lnHeight)

IF MOD(i_,2)<>0 && para que las imagenes se pongan en dos columnas
lnleft = lnleft + lnWidth+5
ELSE

lntop=lntop+200
lnleft = 1
 
ENDIF
 
 
 

NEXT

 
 
XLSheet.application.range("K3").Select
XLSheet.application.Cells( 3,11).VALUE="<-Retornar"
XLSheet.application.Cells( 3,11).HorizontalAlignment = -4108 && CENTERADO
XLSheet.application.Cells( 3,11).VerticalAlignment = -4108 && CENTERADO
oExcel.ActiveSheet.Hyperlinks.Add(oExcel.Selection, "","'OCURRENCIAS'"+"!A1")
XLSheet.application.Cells( 3,11).Font.Bold=.t.
XLSheet.application.Cells( 3,11).Font.Size = 11
XLSheet.application.Cells( 3,11).font.color=rgb(255,0,0)

ENDIF

XLApp.Sheets("ocurrencias").SELECT
x=x+1
SKIP
ENDDO

XLSheet.PageSetup.Zoom = 95
OExcel.APPLICATION.VISIBLE=.T.
SELECT OCURRENC

GO TOP

RETURN
 
 
nuevamente gracias. bye

 
Subject: RE: [vfp] Insertar una imagen como fondo en un comentario Excel
Date: Tue, 12 Jan 2016 02:16:33 +0000
Reply all
Reply to author
Forward
0 new messages