Trova e sostituisci

Creare una macro - Scrivere uno script - Usare le API
cater58
Messaggi: 54
Iscritto il: lunedì 11 settembre 2017, 15:29

trova e sostituisci

Messaggio da cater58 »

non so se ho fatto bene a riaprire qui la discussione
ho il file di cui all'oggetto della precedente discussione, nel quale ho messo una macro che funziona bene per metà.

la macro è quella del module4 (perdiscogs) e non quella del module1che funziona benissimo quindi non va toccata

la macro del modulo4 (perdiscogs) dovrebbe (e in parte fa bene)

1) Rimuove colonne inutili
2)cambia alcune colonne di posizione e di contenuto.
e fino a qu va bene (fino alla riga "REM A TRASFERIMENTO DATI AVVENUTO RIMUOVI LA COLONNA COMMENT INIZIALE")

la macro dovrebbe (ma non fa)
1) chiedere il valore del PRICE (prezzo) sopra il quale cancellare tutti i records
2) cancellare i records maggiori di quel prezzo

Successivamente dovrebbe sostituire i valori dei prezzi (colonna PRICE) 4.9 a 1.0 e 5.9 a 3.0

Invece fa cose che non comprendo.

Qualcuno puo aiutarmi?

Codice: Seleziona tutto


Sub perdiscogs

doc=thiscomponent
Sh1 = Doc.Sheets(0)
c = Sh1.createCursor
c.gotoEndOfUsedArea(false)

Rem ----- Trova ultima riga dati utili nel foglio di lavoro -----
UltimaRiga = c.RangeAddress.EndRow

REM ----- Rimozione delle colonne che inizialmente non servono -----
Sh1.Columns.removeByIndex(0, 6)
Sh1.Columns.removeByIndex(1, 1)
Sh1.Columns.removeByIndex(2, 1)
Sh1.Columns.removeByIndex(6, 4)

REM ----- Inserisci una colonna dopo la colonna "Media" (Quella che diventerà la nuova colonna "Comment") -----
Sh1.Columns.InsertByIndex(4, 1)
REM ----- Copia Intestazione da vecchia a nuova colona "Comment" ----
Sh1.getCellByPosition(4, 0).string = Sh1.getCellByPosition(2, 0).string

REM ----- Inizio Loop -----------
For Riga = 1 to UltimaRiga
REM ----- Il dato della Colonna C "Comments" Iniziale viene scritto nella Colonna "Location" (Ora colonna H) -----
Sh1.getCellByPosition(7, Riga).string = Sh1.getCellByPosition(2, Riga).string
REM ----- Nella nuova colonna "Comments" viene inserita la parola "PROVA" -----
Sh1.getCellByPosition(4, Riga).string = "PLEASE, TRY TO ORDER 4 RECORDS OR MORE, OR SHIPPING COSTS WILL BE TOO EXPENSIVE FOR YOU - REMEMBER THAT WE SHIP ONLY REGISTERED!"
Next Riga

REM ----- A trasferimento dati avvenuto Rimuovi la colonna "Comment" iniziale -----
Sh1.Columns.removeByIndex(2, 1)

Call  CancellazionePricemaggioredi

Rem ----- Trova ultima riga dati utili nel foglio di lavoro -----
UltimaRiga = c.RangeAddress.EndRow

Rem ----- Avvio  variazione dei prezzi  -----
Dim  sostituisci As Object
sostituisci = Sh1.createReplaceDescriptor()
sostituisci.SearchString = "5.9"
sostituisci.ReplaceString = "3.0"
Sh1.ReplaceAll(sostituisci)

sostituisci = Sh1.createReplaceDescriptor()
sostituisci.SearchString = "4.9"
sostituisci.ReplaceString = "1.0"
Sh1.ReplaceAll(sostituisci)

End sub

Sub CancellazionePricemaggioredi
doc=thiscomponent
Sh1 = Doc.Sheets(0)
c = Sh1.createCursor
c.gotoEndOfUsedArea(false)

Rem ----- Trova ultima riga dati utili nel foglio di lavoro -----
UltimaRiga = c.RangeAddress.EndRow

Rem ----- Richiesta inserimento del 'PRICE' di cui vuoi conservare i record.
RecordConPriceDaConservare = InputBox ("- Inserire il 'PREZZO' di cui si vogliono conservare i record;" & CHR$(10) & "- Come separatore decimale utilizzare il PUNTO della tastiera (NON quello del Tastierino)." , "ATTENZIONE:  GESTIONE RECORD PRICE")
Rem ----- In caso annullamento dell'inserimento esci dalla procedura ------
If RecordConPriceDaConservare ="" Then Exit Sub
Rem ----- Richiesta conferma di procedere ----- In caso contrario esci dalla procedura -----
If Msgbox ("- Tutti i record con 'PRICE' diverso da  " & RecordConPriceDaConservare & "  saranno cancellati" & CHR$(10) & "- Confermare con il tasto INVIO o il pulsante OK", 33, "ATTENZIONE:  CANCELLAZIONE DATI") = 2 Then Exit Sub
Rem ----- Avvio loop per la cancellazione dei record previsti -----
For Riga = UltimaRiga To 1 Step -1
	If Sh1.getCellByPosition(1, Riga).string > RecordConPriceDaConservare then
	Sh1.Rows.removeByIndex(Riga, 1)
	End If	
Next
End sub
Allegati
tutto.csv
(238.98 KiB) Scaricato 100 volte
Libreoffice 2.2.3 con MacOS 10.4
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Trova e sostituisci

Messaggio da charlie »

cater58 ha scritto:non so se ho fatto bene a riaprire qui la discussione
Forse era il caso di togliere il [Risolto] nel titolo iniziale. L'ho fatto io ma non so se basterà a dare la necessaria visibilità.
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
patel
Volontario attivo
Volontario attivo
Messaggi: 4019
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Trova e sostituisci

Messaggio da patel »

dopo 7 mesi si rincomincia daccapo, alleghi csv e non il file ods
-------------------
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
cater58
Messaggi: 54
Iscritto il: lunedì 11 settembre 2017, 15:29

Re: Trova e sostituisci

Messaggio da cater58 »

... scusa ma ho allegato il csv (tutto) non l'ods!
Libreoffice 2.2.3 con MacOS 10.4
cater58
Messaggi: 54
Iscritto il: lunedì 11 settembre 2017, 15:29

Re: Trova e sostituisci

Messaggio da cater58 »

ecco il csv gia inviato prima
Allegati
tutto.csv
(238.98 KiB) Scaricato 92 volte
Libreoffice 2.2.3 con MacOS 10.4
patel
Volontario attivo
Volontario attivo
Messaggi: 4019
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Trova e sostituisci

Messaggio da patel »

non c'è niente da fare con te .....
-------------------
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
cater58
Messaggi: 54
Iscritto il: lunedì 11 settembre 2017, 15:29

Re: Trova e sostituisci

Messaggio da cater58 »

scusa ma l'ods di cosa ??
quale?
a che ti serve?
non si fa riferimento ad una tabella esterna ... se mi dici cosa non capisco magari posso anche provare a capire
Libreoffice 2.2.3 con MacOS 10.4
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8786
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Trova e sostituisci

Messaggio da charlie »

Vorrei che i post fossero scritti un po' più correttamente dal punto di vista grammaticale.
Le frasi dovrebbero iniziare con la maiuscola, grazie.
charlie
macOS 14.3 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Rispondi