[Risolto] Immagini come risultato
[Risolto] Immagini come risultato
Buonasera a tutti,
è il mio primo post su questo forum e spero di non sbagliare sezione per porre la mia domanda.
Innanzitutto premetto che utilizzo Windows 10 e la versione 5.2.3.3 di Libreoffice.
Tempo fa ho chiesto aiuto in un altro forum (che adesso è chiuso) e mi aiutarono due utenti attivi di questo forum, Gaetanopr e patel, per creare un file di calc che avesse queste caratteristiche:
1- richiamare delle immagini in una determinata cella (e cancellazione dell'immagine precedente) a secondo del valore presente in un'altra cella;
2- ripetizione delle immagini fino al foglio n.5;
3- impostazione delle immagini sullo sfondo del livello.
Ho perso purtroppo il file che utilizzavo e adesso sto provando a ricrearlo ma mi da sempre degli errori e non essendo pratico di VBA non so come risolvere il problema.
Allego il file con la speranza che qualcuno di voi esperti possa darmi una mano!
Giosi
è il mio primo post su questo forum e spero di non sbagliare sezione per porre la mia domanda.
Innanzitutto premetto che utilizzo Windows 10 e la versione 5.2.3.3 di Libreoffice.
Tempo fa ho chiesto aiuto in un altro forum (che adesso è chiuso) e mi aiutarono due utenti attivi di questo forum, Gaetanopr e patel, per creare un file di calc che avesse queste caratteristiche:
1- richiamare delle immagini in una determinata cella (e cancellazione dell'immagine precedente) a secondo del valore presente in un'altra cella;
2- ripetizione delle immagini fino al foglio n.5;
3- impostazione delle immagini sullo sfondo del livello.
Ho perso purtroppo il file che utilizzavo e adesso sto provando a ricrearlo ma mi da sempre degli errori e non essendo pratico di VBA non so come risolvere il problema.
Allego il file con la speranza che qualcuno di voi esperti possa darmi una mano!
Giosi
- Allegati
-
- prova.ods
- (9.2 KiB) Scaricato 242 volte
Ultima modifica di giosipan il martedì 24 gennaio 2017, 17:02, modificato 1 volta in totale.
Libreoffice 7.6.0.3 su Win11
Re: Immagini come risultato
Prova in questo modo
Naturalmente devi modificare il percorso della cartella contenente le immagini
Codice: Seleziona tutto
Sub Immagine1(Target)
Dim Sh As Object, addr As Object
Dim Doc As Object
Dim Drw As Object, Image As Object, Gp As Object
Dim positionImage As New com.sun.star.awt.Point
Dim props(0) As New com.sun.star.beans.PropertyValue
Doc = ThisComponent
fpath = left(Doc.geturl(),revinstr(Doc.geturl(),"/"))
Sh = Target.getSpreadsheet()
oCellT() = Split(Target.AbsoluteName, ".")
oCellTarget = oCellT(1)
If oCellTarget = "$A$37" Or oCellTarget = "$C$37" Then
If oCellTarget = "$A$37" Then
ITarget = sh.getCellRangeByName("A15") ' serve per le coordinate di inserimento dell'immagine
oCell = "$A$15"
ElseIf oCellTarget = "$C$37" Then
ITarget = sh.getCellRangeByName("D37") ' serve per le coordinate di inserimento dell'immagine
oCell = "$D$37"
End If
NomeImage = Target.String
For s = 0 To 4
Gp = createUnoservice("com.sun.star.graphic.GraphicProvider")
props(0).Name = "URL" ' D:\Users\Gaetano\Desktop\download.png
props(0).Value = ConvertToURL("D:\Users\Gaetano\Desktop\" & NomeImage & ".jpg") '("C:\Documents and Settings\Administrator\Desktop\" & NomeImage & ".jpg")
Image=Doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
Image.Graphic = Gp.queryGraphic( props() )
' Controllo se è presente l'immagine in archivio
If IsNull(Image.Graphic) Then MsgBox "Immagine non presente in archivio" : exit sub
' Elimino se presente immagine precedente nella cella di destinazione
Drw = Sh.DrawPage
For i = 0 To Drw.Count - 1
CellaImmagine() = Split(Drw(i).Anchor.AbsoluteName, ".")
If CellaImmagine(1) = oCell Then
Drw.Remove(Drw(i))
Exit For
End If
Next i
' Aggiungo l'immagine
Drw.add(Image)
' Ridimensiono l'immagine
Larg = 5000
resizeImageByWidth(Image,Larg)
positionImage.x = ITarget.position.x
positionImage.y = ITarget.position.y
Image.Position = positionImage
Image.Name = NomeImage
Image.Anchor = Sh
Image.LayerId = 1 'imposta l'immagine sullo sfondo
Next s
End if
End Sub
Sub resizeImageByWidth(ImageCmp As Object, Larg As Long)
Dim imageInfo As Object, Proporzione As Double, SizeImage As Object
imageInfo = ImageCmp.Graphic
SizeImage = imageInfo.SizePixel
Proporzione = SizeImage.Height / SizeImage.Width
SizeImage.Width = Larg
SizeImage.Height = SizeImage.Width * Proporzione
ImageCmp.Size = SizeImage
End Sub
function revinstr(s as string, slash as string) as string
dim ii as integer
ii=0
do
if instr(ii+1,s,slash)=0 then exit do
ii=instr(ii+1,s,slash)
loop
revinstr = ii
end function
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Immagini come risultato
Ciao Gaetano!
Grazie per la risposta
La tua macro mi ancora le immagini nella cella A1 e non cancella l'immagine precedente... in più non si ripetono le immaagini nei fogli successivi...
Grazie per la risposta
La tua macro mi ancora le immagini nella cella A1 e non cancella l'immagine precedente... in più non si ripetono le immaagini nei fogli successivi...
Libreoffice 7.6.0.3 su Win11
Re: Immagini come risultato
io ho aperto il file e mi sembra vuoto, non ho capito bene cosa viene richiesto
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Re: Immagini come risultato
Ciao Patel,
c'è una macro nel file.
La richiesta sarebbe che ad ogni valore scritto in a 37 appare un'immagine diversa in A15.
Questa immagine deve essere portata sullo sfondo, e ripetuta nei fogli successivi fino al foglio n.5
c'è una macro nel file.
La richiesta sarebbe che ad ogni valore scritto in a 37 appare un'immagine diversa in A15.
Questa immagine deve essere portata sullo sfondo, e ripetuta nei fogli successivi fino al foglio n.5
Libreoffice 7.6.0.3 su Win11
Re: Immagini come risultato
prova adesso
Codice: Seleziona tutto
Sub Immagine1(Target)
Dim Sh As Object, addr As Object
Dim Doc As Object
Dim Drw As Object, Image As Object, Gp As Object
Dim positionImage As New com.sun.star.awt.Point
Dim props(0) As New com.sun.star.beans.PropertyValue
Doc = ThisComponent
fpath = left(Doc.geturl(),revinstr(Doc.geturl(),"/"))
Sh = Target.getSpreadsheet()
oCellT() = Split(Target.AbsoluteName, ".")
oCellTarget = oCellT(1)
If oCellTarget = "$A$37" Or oCellTarget = "$C$37" Then
If oCellTarget = "$A$37" Then
ITarget = sh.getCellRangeByName("A15") ' serve per le coordinate di inserimento dell'immagine
oCell = "$A$15"
ElseIf oCellTarget = "$C$37" Then
ITarget = sh.getCellRangeByName("D37") ' serve per le coordinate di inserimento dell'immagine
oCell = "$D$37"
End If
NomeImage = Target.String
For s = 0 To 4
Gp = createUnoservice("com.sun.star.graphic.GraphicProvider")
props(0).Name = "URL" ' D:\Users\Gaetano\Desktop\download.png
props(0).Value = ConvertToURL("D:\Users\Gaetano\Desktop\" & NomeImage & ".jpg") '("C:\Documents and Settings\Administrator\Desktop\" & NomeImage & ".jpg")
Image=Doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
Image.Graphic = Gp.queryGraphic( props() )
' Controllo se è presente l'immagine in archivio
If IsNull(Image.Graphic) Then MsgBox "Immagine non presente in archivio" ': exit sub
' Elimino se presente immagine precedente nella cella di destinazione
Drw = Doc.sheets(s).DrawPage
For i = 0 To Drw.Count - 1
CellaImmagine() = Split(Drw(i).Anchor.AbsoluteName, ".")
If CellaImmagine(1) = oCell Then
Drw.Remove(Drw(i))
Exit For
End If
Next i
' Aggiungo l'immagine
Drw.add(Image)
' Ridimensiono l'immagine
Larg = 5000
resizeImageByWidth(Image,Larg)
positionImage.x = ITarget.position.x
positionImage.y = ITarget.position.y
Image.Position = positionImage
Image.Name = NomeImage
Image.Anchor = Doc.Sheets(s).getCellrangebyname(oCell)
Image.LayerId = 1 'imposta l'immagine sullo sfondo
Next s
End if
End Sub
Sub resizeImageByWidth(ImageCmp As Object, Larg As Long)
Dim imageInfo As Object, Proporzione As Double, SizeImage As Object
imageInfo = ImageCmp.Graphic
SizeImage = imageInfo.SizePixel
Proporzione = SizeImage.Height / SizeImage.Width
SizeImage.Width = Larg
SizeImage.Height = SizeImage.Width * Proporzione
ImageCmp.Size = SizeImage
End Sub
function revinstr(s as string, slash as string) as string
dim ii as integer
ii=0
do
if instr(ii+1,s,slash)=0 then exit do
ii=instr(ii+1,s,slash)
loop
revinstr = ii
end function
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Immagini come risultato
Perfetto!!!
E' quello che mi serviva!!!
Grazie ancora Gaetano sei il numero 1!!!!
E' quello che mi serviva!!!
Grazie ancora Gaetano sei il numero 1!!!!
Libreoffice 7.6.0.3 su Win11
Re: [Risolto] Immagini come risultato
Ciao!
ho bisogno di fare una cosa analoga... ma non riesco a svilupparla partendo dal file che trovo in allegato... potreste condividere il file finito per favore?
Grazie mille!
ho bisogno di fare una cosa analoga... ma non riesco a svilupparla partendo dal file che trovo in allegato... potreste condividere il file finito per favore?
Grazie mille!
Open Office 4.1.2, Sistema Operativo OSx
Re: [Risolto] Immagini come risultato
è passato troppo tempo, allega un file di esempio, spiega cosa vuoi ottenere e vediamo di adattare il codice
meglio sarebbe aprire una nuova discussione tua facendo riferimento a questa
meglio sarebbe aprire una nuova discussione tua facendo riferimento a questa
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Re: [Risolto] Immagini come risultato
Buonasera a tutti!
Ho un quesito da rivolgervi.
Ho creato un file .ods seguendo le vostre preziose indicazioni in questo thread e funziona benissimo.
L'unico problema è che lentissima la stampa. Il file è composto da cinque fogli e per stamparli tutti impiega circa 2/3 minuti.
Non so se può essere questo il problema:
mi sono reso conto che le immagini non vengono cancellate ma si sovrappongono una sopra l'altra e quindi mi ritrovo un file carico di immagini...
Può essere questo che fa rallentare l'operazione di stampa?
Ho un quesito da rivolgervi.
Ho creato un file .ods seguendo le vostre preziose indicazioni in questo thread e funziona benissimo.
L'unico problema è che lentissima la stampa. Il file è composto da cinque fogli e per stamparli tutti impiega circa 2/3 minuti.
Non so se può essere questo il problema:
mi sono reso conto che le immagini non vengono cancellate ma si sovrappongono una sopra l'altra e quindi mi ritrovo un file carico di immagini...
Può essere questo che fa rallentare l'operazione di stampa?
Libreoffice 7.6.0.3 su Win11
Re: [Risolto] Immagini come risultato
La macro del post elimina l'immagine precedente, quindi non dovrebbero esserci immagini sovrapposte, bisognerebbe vedere la macro da te modificata e una copia del tuo file.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: [Risolto] Immagini come risultato
Il file non me lo fa allegare perché più grande di 256 kb.
Queste sono le macro contenute nel mio file:
Queste sono le macro contenute nel mio file:
Codice: Seleziona tutto
REM ***** BASIC *****
sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$F$30"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = "=F22"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$F$31"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "StringName"
args4(0).Value = "=F23"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args4())
end sub
sub Macro1
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$F$30"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "$F$31"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())
end sub
Sub Immagine1(Target)
Dim Sh As Object, addr As Object
Dim Doc As Object
Dim Drw As Object, Image As Object, Gp As Object
Dim positionImage As New com.sun.star.awt.Point
Dim props(0) As New com.sun.star.beans.PropertyValue
Doc = ThisComponent
fpath = left(Doc.geturl(),revinstr(Doc.geturl(),"/"))
Sh = Target.getSpreadsheet()
oCellT() = Split(Target.AbsoluteName, ".")
oCellTarget = oCellT(1)
If oCellTarget = "$F$76" Or oCellTarget = "$N$75" Then
If oCellTarget = "$F$76" Then
ITarget = sh.getCellRangeByName("E79") ' serve per le coordinate di inserimento dell'immagine
oCell = "$E$79"
ElseIf oCellTarget = "$N$75" Then
ITarget = sh.getCellRangeByName("K79") ' serve per le coordinate di inserimento dell'immagine
oCell = "$K$79"
End If
NomeImage = Target.String
For s = 0 To 4
Gp = createUnoservice("com.sun.star.graphic.GraphicProvider")
props(0).Name = "URL" ' D:\Users\Gaetano\Desktop\download.png
props(0).Value = fpath & "Firme/" & NomeImage & ".jpg" '("C:\Documents and Settings\Administrator\Desktop\" & NomeImage & ".jpg")
Image=Doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
Image.Graphic = Gp.queryGraphic( props() )
' Controllo se è presente l'immagine in archivio
If IsNull(Image.Graphic) Then MsgBox "Immagine non presente in archivio" ': exit sub
' Elimino se presente immagine precedente nella cella di destinazione
Drw = Doc.sheets(s).DrawPage
For i = 0 To Drw.Count - 1
CellaImmagine() = Split(Drw(i).Anchor.AbsoluteName, ".")
If CellaImmagine(1) = oCell Then
Drw.Remove(Drw(i))
Exit For
End If
Next i
' Aggiungo l'immagine
Drw.add(Image)
' Ridimensiono l'immagine
Larg = 10000
resizeImageByWidth(Image,Larg)
positionImage.x = ITarget.position.x
positionImage.y = ITarget.position.y
Image.Position = positionImage
Image.Name = NomeImage
Image.Anchor = Doc.Sheets(s).getCellrangebyname(oCell)
Image.LayerId = 1 'imposta l'immagine sullo sfondo
Next s
End if
End Sub
Sub resizeImageByWidth(ImageCmp As Object, Larg As Long)
Dim imageInfo As Object, Proporzione As Double, SizeImage As Object
imageInfo = ImageCmp.Graphic
SizeImage = imageInfo.SizePixel
Proporzione = SizeImage.Height / SizeImage.Width
SizeImage.Width = Larg
SizeImage.Height = SizeImage.Width * Proporzione
ImageCmp.Size = SizeImage
End Sub
function revinstr(s as string, slash as string) as string
dim ii as integer
ii=0
do
if instr(ii+1,s,slash)=0 then exit do
ii=instr(ii+1,s,slash)
loop
revinstr = ii
end function
REM ***** BASIC *****
sub Giosi
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$F$76"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = "Giosi"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())
end sub
sub Manuela
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$F$76"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = "Manuela"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())
end sub
sub Vuoto
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$F$76"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = "Vuoto"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())
end sub
sub Sonia
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$F$76"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = "Sonia"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())
end sub
sub Paolo
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$F$76"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = "Paolo"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())
end sub
sub Ordine_Alf
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$2:$E$296"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())
end sub
sub PrimaCellaVuotaA
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$1" 'Funziona sulla colonna A
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "By"
args2(0).Value = 1
args2(1).Name = "Sel"
args2(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "By"
args3(0).Value = 1
args3(1).Name = "Sel"
args3(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args3())
end sub
Ultima modifica di charlie il lunedì 1 luglio 2019, 19:01, modificato 1 volta in totale.
Motivazione: Formattato codice
Motivazione: Formattato codice
Libreoffice 7.6.0.3 su Win11
Re: [Risolto] Immagini come risultato
Buonasera!
Ho di nuovo bisogno del vostro aiuto.
Vorrei cambiare la cella di input del comando con una che è contenuta in un altro foglio.
Come posso fare?
Questa è la macro:
Grazie!
Ho di nuovo bisogno del vostro aiuto.
Vorrei cambiare la cella di input del comando con una che è contenuta in un altro foglio.
Come posso fare?
Questa è la macro:
Codice: Seleziona tutto
Sub Immagine1(Target)
Dim Sh As Object, addr As Object
Dim Doc As Object
Dim Drw As Object, Image As Object, Gp As Object
Dim positionImage As New com.sun.star.awt.Point
Dim props(0) As New com.sun.star.beans.PropertyValue
Doc = ThisComponent
fpath = left(Doc.geturl(),revinstr(Doc.geturl(),"/"))
Sh = Target.getSpreadsheet()
oCellT() = Split(Target.AbsoluteName, ".")
oCellTarget = oCellT(1)
If oCellTarget = "$A$37" Or oCellTarget = "$C$37" Then
If oCellTarget = "$A$37" Then
ITarget = sh.getCellRangeByName("A15") ' serve per le coordinate di inserimento dell'immagine
oCell = "$A$15"
ElseIf oCellTarget = "$C$37" Then
ITarget = sh.getCellRangeByName("D37") ' serve per le coordinate di inserimento dell'immagine
oCell = "$D$37"
End If
Libreoffice 7.6.0.3 su Win11
Re: [Risolto] Immagini come risultato
patel ha scritto:è passato troppo tempo, allega un file di esempio, spiega cosa vuoi ottenere e vediamo di adattare il codice
......
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Re: [Risolto] Immagini come risultato
Buongiorno e grazie per la risposta!
Ho dovuto eliminare alcuni fogli perché il file da allegare superava il limite consentito.
La macro come è impostata adesso prende gli input nel foglio "Mittente" dalle celle F76 e N75 e il risultato (inserisce un'immagine) appare sulle celle E79 e N20.
Quello che vorrei modificare sono le celle di input e le vorrei sul foglio "Inserimento dati". Il resto deve rimanere tutto uguale.
E' possibile?
Grazie
Ho dovuto eliminare alcuni fogli perché il file da allegare superava il limite consentito.
La macro come è impostata adesso prende gli input nel foglio "Mittente" dalle celle F76 e N75 e il risultato (inserisce un'immagine) appare sulle celle E79 e N20.
Quello che vorrei modificare sono le celle di input e le vorrei sul foglio "Inserimento dati". Il resto deve rimanere tutto uguale.
E' possibile?
Grazie
- Allegati
-
- CMR Compilabile_new - Copia.ods
- (111.19 KiB) Scaricato 102 volte
Libreoffice 7.6.0.3 su Win11
Re: [Risolto] Immagini come risultato
Non hai detto quali celle sul foglio "Inserimento dati", inoltre la macro deve ancora essere attivata al modificarsi di queste celle o tramite pulsante ?
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Re: [Risolto] Immagini come risultato
Le celle sono B16 e B19.
Se possibile la macro dovrebbe attivarsi nel momento in cui viene modificata.
Grazie.
Se possibile la macro dovrebbe attivarsi nel momento in cui viene modificata.
Grazie.
Libreoffice 7.6.0.3 su Win11
Re: [Risolto] Immagini come risultato
quale cella deve attivare la macro ? una qualsiasi delle 2 ? inoltre mi sembra che la macro Immagine1 non vada d'accordo con i foglio Mittente, dovresti descrivere cosa vuoi ottenere.
Riprendere vecchie discussioni non è consigliato proprio per questo motivo, tu dai per scontate cose che ad un nuovo interlocutore non lo sono
Riprendere vecchie discussioni non è consigliato proprio per questo motivo, tu dai per scontate cose che ad un nuovo interlocutore non lo sono
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Re: [Risolto] Immagini come risultato
Ok, capisco!
Quello che vorrei ottenere è questo:
1- richiamare delle immagini in una determinata cella del foglio n.2 (e cancellazione dell'eventuale immagine precedente) a secondo del valore presente in un'altra cella del foglio n.1;
2- ripetizione delle immagini dal foglio n.3 al foglio n.6;
3- impostazione delle immagini sullo sfondo del livello.
Le celle sono:
- INPUT 1 - cella B16 foglio1
risultato in cella F76 foglio2
- INPUT 2 - cella B19 foglio 1
risutlto in cella K79 foglio 2
Spero di essere stato chiaro.
Grazie ancora.
Quello che vorrei ottenere è questo:
1- richiamare delle immagini in una determinata cella del foglio n.2 (e cancellazione dell'eventuale immagine precedente) a secondo del valore presente in un'altra cella del foglio n.1;
2- ripetizione delle immagini dal foglio n.3 al foglio n.6;
3- impostazione delle immagini sullo sfondo del livello.
Le celle sono:
- INPUT 1 - cella B16 foglio1
risultato in cella F76 foglio2
- INPUT 2 - cella B19 foglio 1
risutlto in cella K79 foglio 2
Spero di essere stato chiaro.
Grazie ancora.
Libreoffice 7.6.0.3 su Win11
Re: [Risolto] Immagini come risultato
non mi sembra, quando una discussione è marcata come risolta nessuno la apre più, insistendo con questa ti precludi l'intervento di altri oltre a me, magari proprio quelli che avrebbero la soluzione già pronta.giosipan ha scritto:Ok, capisco!.....
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta