[Risolto] File che si blocca durante il salvataggio
[Risolto] File che si blocca durante il salvataggio
Buongiorno,
ho un problema con un file che avevo creato qualche anno fa grazie al vostro aiuto (https://forum.openoffice.org/it/forum/v ... 769#p56769).
Da un giorno all'altro è successo che si blocca durante il salvataggio però solamente se viene cambiato il valore contenuto nelle celle D4 e D22 del foglio 'Input' dove c'è un menù a tendina.
Se vado a modificare gli atri campi lui salva correttamente.
Utilizzo la versione di Libreoffice 7.6.0.3.
Sul un altro PC ho invece installato una versione più vecchia, la 5.7 mi sembra, e lì non da nessun tipo di problema.
Questo è il file Qualcuno può aiutarmi a capire cosa è successo?
ho un problema con un file che avevo creato qualche anno fa grazie al vostro aiuto (https://forum.openoffice.org/it/forum/v ... 769#p56769).
Da un giorno all'altro è successo che si blocca durante il salvataggio però solamente se viene cambiato il valore contenuto nelle celle D4 e D22 del foglio 'Input' dove c'è un menù a tendina.
Se vado a modificare gli atri campi lui salva correttamente.
Utilizzo la versione di Libreoffice 7.6.0.3.
Sul un altro PC ho invece installato una versione più vecchia, la 5.7 mi sembra, e lì non da nessun tipo di problema.
Questo è il file Qualcuno può aiutarmi a capire cosa è successo?
Ultima modifica di giosipan il venerdì 25 agosto 2023, 14:53, modificato 1 volta in totale.
Libreoffice 7.6.0.3 su Win11
Re: File che si blocca durante il salvataggio
Io ho cambiato d4 e d22 e poi salvato senza problemi.
-------------------
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: File che si blocca durante il salvataggio
Siccome il nome che si sceglie dai menù a tendina va a richiamare un' immagine specifica contenuta all'interno di una cartella e la va a posizionare in un determinato punto dei fogli successivi ad 'Input', dopo il tuo messaggio ho provato a togliere la cartella e mi da l'avviso 'immagine non trovata' però, effettivamente, il salvataggio lo fa correttamente anche a me.
Deve esserci quindi qualche problema con l'inserimento delle immagini
Deve esserci quindi qualche problema con l'inserimento delle immagini
Libreoffice 7.6.0.3 su Win11
- Lanfranchi G.Luigi
- Messaggi: 116
- Iscritto il: venerdì 12 aprile 2019, 16:54
Re: File che si blocca durante il salvataggio
Cambiando D4 e D22 mi da un errore di immagine non trovata ma il salvataggio va a buon fine.
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
Re: File che si blocca durante il salvataggio
Esatto, anche a me se elimino la cartella contenente le immagini che vengono richiamate il salvataggio va a buon fine.Lanfranchi G.Luigi ha scritto: ↑giovedì 24 agosto 2023, 11:03 Cambiando D4 e D22 mi da un errore di immagine non trovata ma il salvataggio va a buon fine.
Se però ripristino la cartella il salvataggio si blocca.
Libreoffice 7.6.0.3 su Win11
Re: File che si blocca durante il salvataggio
D'altra parte noi non abbiamo la cartella di salvataggio, magari spiega meglio cosa dobbiamo fare per riprodurre il problema.
-------------------
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: File che si blocca durante il salvataggio
Se volete posso caricarla sul cloud altrimenti basta creare una cartella 'Firme' con all'interno delle immagini .jpg denominate 'Giosi', 'Paolo', 'Sonia', 'Manuela' e metterla sulla stessa cartella del file CMR.ods.
In questo caso si va ad interagire solo con l'elenco della cella D4.
In questo caso si va ad interagire solo con l'elenco della cella D4.
Libreoffice 7.6.0.3 su Win11
- Lanfranchi G.Luigi
- Messaggi: 116
- Iscritto il: venerdì 12 aprile 2019, 16:54
Re: File che si blocca durante il salvataggio
L'istruzione che blocca il salvataggio è questa.
Nella sub Immagine1(target).
Image.LayerId = 1 'imposta l'immagine sullo sfondo
Se la trasformo in commento (') il salvataggio non si blocca.
Sono però a digiuno per quel che riguarda la sintassi di questo comando.
Nella sub Immagine1(target).
Image.LayerId = 1 'imposta l'immagine sullo sfondo
Se la trasformo in commento (') il salvataggio non si blocca.
Sono però a digiuno per quel che riguarda la sintassi di questo comando.
Ultima modifica di Lanfranchi G.Luigi il giovedì 24 agosto 2023, 14:56, modificato 1 volta in totale.
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
Re: File che si blocca durante il salvataggio
Bhé è già un ottimo inizio direi e ti ringrazio!Lanfranchi G.Luigi ha scritto: ↑giovedì 24 agosto 2023, 14:46 L'istruzione che blocca il salvataggio è questa.
Image.LayerId = 1 'imposta l'immagine sullo sfondo
Se la trasformo in commento (') il salvataggio non si blocca.
Sono però a digiuno per quel che riguarda la sintassi di questo comando.
Spero che ci sia qualcun altro che possa darmi qualche consiglio per risolvere.
Da capire anche perché ha sempre funzionato e poi tutto ad un tratto ha smesso.
Libreoffice 7.6.0.3 su Win11
- Lanfranchi G.Luigi
- Messaggi: 116
- Iscritto il: venerdì 12 aprile 2019, 16:54
Re: File che si blocca durante il salvataggio
Stavo facendo alcune prove e mi sono accorto di un altro errore.
Se scelgo più immagini nel menù a cascata in D4 il programma mi sostituisce la foto vecchia (cancellandola) con quella nuova.
Se però salvo il file con un immagine memorizzata, questa non viene più cancellata dal programma ma viene sovrapposta dalla nuova scelta nel menu D4.
Se si esegue un "taglia" sulla foto appena immessa, comparirà la foto sottostante precedentemente salvata.
Se scelgo più immagini nel menù a cascata in D4 il programma mi sostituisce la foto vecchia (cancellandola) con quella nuova.
Se però salvo il file con un immagine memorizzata, questa non viene più cancellata dal programma ma viene sovrapposta dalla nuova scelta nel menu D4.
Se si esegue un "taglia" sulla foto appena immessa, comparirà la foto sottostante precedentemente salvata.
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
Re: File che si blocca durante il salvataggio
Ho segnalato la discussione a Gaetanopr, l'autore della macro.
-------------------
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: File che si blocca durante il salvataggio
Questo lo avevo notato anch'io e infatti una volta a settimana cancellavo manualmente tutte le immagini perché altrimenti il file diventava troppo grande ed era tutto rallentato.Lanfranchi G.Luigi ha scritto: ↑venerdì 25 agosto 2023, 8:24 Stavo facendo alcune prove e mi sono accorto di un altro errore.
Se scelgo più immagini nel menù a cascata in D4 il programma mi sostituisce la foto vecchia (cancellandola) con quella nuova.
Se però salvo il file con un immagine memorizzata, questa non viene più cancellata dal programma ma viene sovrapposta dalla nuova scelta nel menu D4.
Se si esegue un "taglia" sulla foto appena immessa, comparirà la foto sottostante precedentemente salvata.
Libreoffice 7.6.0.3 su Win11
- Lanfranchi G.Luigi
- Messaggi: 116
- Iscritto il: venerdì 12 aprile 2019, 16:54
Re: File che si blocca durante il salvataggio
Il programma va a vedere l' ancoraggio dell'immagine e se corrisponde alla cella, l'immagine viene cancellata/sostituita.
Quando si apre il file con immagini già salvate il programma non vede l'ancoraggio e quindi non esegue le istruzioni a seguire.
Per questo non cancella le immagini salvate con il file.
C'è forse qualche parametro da dare a Calc perchè memorizzi l'ancoraggio delle immagini alle celle ?
Ecco l'allegato che lo dimostra.
Ho agito solo su un foglio per semplificare... serve chiaramente la cartella con le immagini.
Se, dopo aver inserito i nomi si salva il file, alla riapertura il programma non trova più gli ancoraggi.
Quando si apre il file con immagini già salvate il programma non vede l'ancoraggio e quindi non esegue le istruzioni a seguire.
Per questo non cancella le immagini salvate con il file.
C'è forse qualche parametro da dare a Calc perchè memorizzi l'ancoraggio delle immagini alle celle ?
Ecco l'allegato che lo dimostra.
Ho agito solo su un foglio per semplificare... serve chiaramente la cartella con le immagini.
Se, dopo aver inserito i nomi si salva il file, alla riapertura il programma non trova più gli ancoraggi.
- Allegati
-
- CMR - Copia.ods
- (87.88 KiB) Scaricato 59 volte
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
Re: File che si blocca durante il salvataggio
Salve, purtroppo Libreoffice presenta dei bug con gli ancoraggi alle celle delle immagini, almeno in passato li aveva e credo anche adesso, facendo un test la macro ancora alla cella correttamente ma alla riapertura l'immagine risulta ancorata alla pagina per cui la macro non trovando l'indirizzo dell'ancoraggio non provvede alla cancellazione e le immagini vengono sovrapposte, due possibili soluzioni sarebbero, solo in caso nelle pagine sia presente una sola immagine, effettuare la cancellazione senza verifica, l'altra cancellare tutte le immagini che riportino un nome specifico.
Togliendo questa parte ImageLayerid come fatto notare da Luigi
Codice: Seleziona tutto
For i = 0 To Drw.Count - 1
If Drw(i).Name = "Sonia" Or Drw(i).Name = "Giosi" Then'
Drw.Remove(Drw(i))
Exit For
end if
Next i
Codice: Seleziona tutto
For i = 0 To Drw.Count - 1
Drw.Remove(Drw(i))
Next i
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: File che si blocca durante il salvataggio
Non avevo visto la tua risposta, comunque l'istruzione è già presente nella macro ed è questaLanfranchi G.Luigi ha scritto: ↑venerdì 25 agosto 2023, 11:17 C'è forse qualche parametro da dare a Calc perchè memorizzi l'ancoraggio delle immagini alle celle ?
Codice: Seleziona tutto
Image.Anchor = Doc.Sheets(s).getCellrangebyname(oCell)
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: File che si blocca durante il salvataggio
Buongiorno Gaetanopr e grazie per esserti unito alla discussione!Gaetanopr ha scritto: ↑venerdì 25 agosto 2023, 11:30 Salve, purtroppo Libreoffice presenta dei bug con gli ancoraggi alle celle delle immagini, almeno in passato li aveva e credo anche adesso, facendo un test la macro ancora alla cella correttamente ma alla riapertura l'immagine risulta ancorata alla pagina per cui la macro non trovando l'indirizzo dell'ancoraggio non provvede alla cancellazione e le immagini vengono sovrapposte, due possibili soluzioni sarebbero, solo in caso nelle pagine sia presente una sola immagine, effettuare la cancellazione senza verifica, l'altra cancellare tutte le immagini che riportino un nome specifico.Codice: Seleziona tutto
For i = 0 To Drw.Count - 1 If Drw(i).Name = "Sonia" Or Drw(i).Name = "Giosi" Then' Drw.Remove(Drw(i)) Exit For end if Next i
Togliendo questa parte ImageLayerid come fatto notare da LuigiCodice: Seleziona tutto
For i = 0 To Drw.Count - 1 Drw.Remove(Drw(i)) Next i
Diciamo che potrei adottare la prima soluzione che proponi per ovviare al discorso della mancata cancellazione dell'immagine precedente.
Il problema più grande però rimane quello che non mi fa salvare il file e da quanto scritto e verificato da Luigi il problema sta in questa istruzione:
sub Immagine1(target).
Image.LayerId = 1 'imposta l'immagine sullo sfondo
Puoi aiutarmi anche per questo?
Libreoffice 7.6.0.3 su Win11
Re: File che si blocca durante il salvataggio
Un'altra soluzione alternativa sarebbe quella di sfruttare la posizione dell'immagine che dovrebbe essere sempre uguale.
Da provare
For i = 0 To Drw.Count - 1
If Drw(i).Position.X = ITarget.position.x and Drw(i).Position.Y = ITarget.position.y Then'
Drw.Remove(Drw(i))
Exit For
end if
Next i
Da provare
For i = 0 To Drw.Count - 1
If Drw(i).Position.X = ITarget.position.x and Drw(i).Position.Y = ITarget.position.y Then'
Drw.Remove(Drw(i))
Exit For
end if
Next i
Ultima modifica di Gaetanopr il venerdì 25 agosto 2023, 12:20, modificato 1 volta in totale.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: File che si blocca durante il salvataggio
Togli questa istruzione, non conosco il motivo per cui blocca la macro, potrebbe essere un bug di LibreOffice in quanto su OpenOffICE FUNZIONA.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: File che si blocca durante il salvataggio
Il problema è che mi copre le scritte del documento rimanendo in primo piano.
Se non si risolvere proverò a cambiare le immagini in .png per togliere lo sfondo perché quelle scritte devo essere visibili purtroppo.
Libreoffice 7.6.0.3 su Win11
Re: File che si blocca durante il salvataggio
Inverti le istruzioni in questo modo
Image.LayerId = 1 'imposta l'immagine sullo sfondo
Image.Anchor = Doc.Sheets(s).getCellrangebyname(oCell)
Image.LayerId = 1 'imposta l'immagine sullo sfondo
Image.Anchor = Doc.Sheets(s).getCellrangebyname(oCell)
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: File che si blocca durante il salvataggio
Perfetto!!! Adesso non si blocca più al salvataggio!!!
Direi che il problema è stato risolto!
Grazie mille!
Libreoffice 7.6.0.3 su Win11
Re: File che si blocca durante il salvataggio
Per quanto riguarda invece la cancellazione delle immagini presenti queste due istruzioni vanno in errore:
Questa invece funziona ma avendo due immagini presenti sullo stesso foglio non va bene perché le cancella entrambi:
Comunque non è un grosso problema, se si può risolvere bene altrimenti continuo a fare come facevo finora e cioè cancellarle a mano.
Grazie ancora
Codice: Seleziona tutto
For i = 0 To Drw.Count - 1
Drw.Remove(Drw(i))
Next i
Codice: Seleziona tutto
For i = 0 To Drw.Count - 1
If Drw(i).Position.X = ITarget.position.x and Drw(i).Position.Y = ITarget.position.y Then'
Drw.Remove(Drw(i))
Exit For
end if
Next i
Codice: Seleziona tutto
For i = 0 To Drw.Count - 1
If Drw(i).Name = "Sonia" Or Drw(i).Name = "Giosi" Then'
Drw.Remove(Drw(i))
Exit For
end if
Next i
Grazie ancora
Libreoffice 7.6.0.3 su Win11
Re: [Risolto] File che si blocca durante il salvataggio
Prova in questo modo
In pratica prima aggiungo l'immagine, poi tramite un ciclo elimino le immagini con nome diverso che si trovano sulle stesse coordinate dell'ultima inserita.
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 = "$D$4" Or oCellTarget = "$D$22" Then
If oCellTarget = "$D$4" Then
ITarget = sh.getCellRangeByName("E79") ' serve per le coordinate di inserimento dell'immagine
oCell = "$E$79"
ElseIf oCellTarget = "$D$22" Then
ITarget = sh.getCellRangeByName("K79") ' serve per le coordinate di inserimento dell'immagine
oCell = "$K$79"
End If
NomeImage = Target.String
For s = 1 To 5
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")
' props(0).Value = fpath & 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
' 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.LayerId = 1 'imposta l'immagine sullo sfondo
Image.Anchor = Doc.Sheets(s).getCellrangebyname(oCell)
For i = 0 To Drw.Count - 1
If Drw(i).Name <> NomeImage Then
if Drw(i).Position.x = Image.Position.x Then
Drw.Remove(Drw(i))
' Exit For
end if
end if
Next i
Next s
End if
End Sub
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: [Risolto] File che si blocca durante il salvataggio
Va in errore e mi evidenzia questa riga:Gaetanopr ha scritto: ↑venerdì 25 agosto 2023, 15:53 Prova in questo modoIn pratica prima aggiungo l'immagine, poi tramite un ciclo elimino le immagini con nome diverso che si trovano sulle stesse coordinate dell'ultima inserita.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 = "$D$4" Or oCellTarget = "$D$22" Then If oCellTarget = "$D$4" Then ITarget = sh.getCellRangeByName("E79") ' serve per le coordinate di inserimento dell'immagine oCell = "$E$79" ElseIf oCellTarget = "$D$22" Then ITarget = sh.getCellRangeByName("K79") ' serve per le coordinate di inserimento dell'immagine oCell = "$K$79" End If NomeImage = Target.String For s = 1 To 5 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") ' props(0).Value = fpath & 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 ' 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.LayerId = 1 'imposta l'immagine sullo sfondo Image.Anchor = Doc.Sheets(s).getCellrangebyname(oCell) For i = 0 To Drw.Count - 1 If Drw(i).Name <> NomeImage Then if Drw(i).Position.x = Image.Position.x Then Drw.Remove(Drw(i)) ' Exit For end if end if Next i Next s End if End Sub
Codice: Seleziona tutto
If Drw(i).Name <> NomeImage Then
Libreoffice 7.6.0.3 su Win11
Re: [Risolto] File che si blocca durante il salvataggio
Strano a me funziona, allego il file.
Non è che nel tuo originale hai altri tipi di oggetti ?
Non è che nel tuo originale hai altri tipi di oggetti ?
- Allegati
-
- CMR (1).ods
- (96.19 KiB) Scaricato 52 volte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: [Risolto] File che si blocca durante il salvataggio
Trovato l'errore!
Ho messo a confronto il tuo codice con quello mio e mi sono accorto che una virgoletta era finita da un'altra parte e non so come!
Praticamente 'Exit for' era diventato un commento.
Adesso funziona benissimo!
Grazie ancora per il tuo preziosissimo aiuto.
Ho messo a confronto il tuo codice con quello mio e mi sono accorto che una virgoletta era finita da un'altra parte e non so come!
Codice: Seleziona tutto
For i = 0 To Drw.Count - 1
If Drw(i).Name <> NomeImage Then
if Drw(i).Position.x = Image.Position.x Then
Drw.Remove(Drw(i))
' Exit For
end if
end if
Next i
Adesso funziona benissimo!
Grazie ancora per il tuo preziosissimo aiuto.
Libreoffice 7.6.0.3 su Win11
Re: [Risolto] File che si blocca durante il salvataggio
In realtà non era un errore, Exit for non va messo in quanto(non dovrebbe succedere) potrebbero esserci tante immagini e con exit for ne eliminerebbe solo una e poi uscirebbe dal ciclo.
Il codice corretto è il seguente
Ti faccio un esempio, se richiami la macro due volte con il nome Sonia, attualmente la macro inserirebbe due volte la stessa immagine in quanto verrebbe meno la verifica sul nome diverso, al variare di Sonia se lasci exit for cancellerebbe solo una immagine con nome Sonia e non due o tre e così via.
Il codice corretto è il seguente
Codice: Seleziona tutto
For i = Drw.Count - 1 To 0 step - 1
If Drw(i).Name <> NomeImage Then
if Drw(i).Position.x = Image.Position.x Then'
Drw.Remove(Drw(i))
end if
end if
Next i
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: [Risolto] File che si blocca durante il salvataggio
Sei stato chiarissimo!Gaetanopr ha scritto: ↑venerdì 25 agosto 2023, 16:46 In realtà non era un errore, Exit for non va messo in quanto(non dovrebbe succedere) potrebbero esserci tante immagini e con exit for ne eliminerebbe solo una e poi uscirebbe dal ciclo.
Il codice corretto è il seguenteTi faccio un esempio, se richiami la macro due volte con il nome Sonia, attualmente la macro inserirebbe due volte la stessa immagine in quanto verrebbe meno la verifica sul nome diverso, al variare di Sonia se lasci exit for cancellerebbe solo una immagine con nome Sonia e non due o tre e così via.Codice: Seleziona tutto
For i = Drw.Count - 1 To 0 step - 1 If Drw(i).Name <> NomeImage Then if Drw(i).Position.x = Image.Position.x Then' Drw.Remove(Drw(i)) end if end if Next i
Ho applicato quest'ultima modifica e funziona benissimo!
Grazie ancora!!!
Libreoffice 7.6.0.3 su Win11
- Lanfranchi G.Luigi
- Messaggi: 116
- Iscritto il: venerdì 12 aprile 2019, 16:54
Re: [Risolto] File che si blocca durante il salvataggio
Dato che il problema c'è solo all'apertura del file con foto già inserita, un'altra soluzione potrebbe essere questa.
All'apertura del file cancellare tutte le foto (tabula rasa).
Macro da abbinare all'evento "Apri documento"
Sempre che il documento serva solo per la stampa e non per l'archiviazione.
In questo caso si potrebbe abbinare la macro ad un pulsante.
Così si eviterebbe di cancellare le foto manualmente.
Ho ripreso il file originale modificando...
Image.LayerId = 1 'imposta l'immagine sullo sfondo
Image.Anchor = Doc.Sheets(s).getCellrangebyname(oCell)
In allegato la versione con pulsante.
All'apertura del file cancellare tutte le foto (tabula rasa).
Codice: Seleziona tutto
Sub CancellaTutto
Dim Doc As Object
Dim Drw As Object
Doc = ThisComponent
for S=1 to 5
Drw = Doc.sheets(S).DrawPage
Fine=Drw.count-1
For i = 0 To fine
Drw.Remove(Drw(0))
Next i
Next S
End Sub
Sempre che il documento serva solo per la stampa e non per l'archiviazione.
In questo caso si potrebbe abbinare la macro ad un pulsante.
Così si eviterebbe di cancellare le foto manualmente.
Ho ripreso il file originale modificando...
Image.LayerId = 1 'imposta l'immagine sullo sfondo
Image.Anchor = Doc.Sheets(s).getCellrangebyname(oCell)
In allegato la versione con pulsante.
- Allegati
-
- CMR.ods
- (88.16 KiB) Scaricato 58 volte
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit