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