[Risolto] inserire numeri progressivi in più fogli

Creare una macro - Scrivere uno script - Usare le API
Rispondi
samurai76
Messaggi: 23
Iscritto il: martedì 20 marzo 2018, 20:45

[Risolto] inserire numeri progressivi in più fogli

Messaggio da samurai76 »

Ciao, premetto che non conosco bene il Basic e spulciando dalla documentazione online e dalle guide di Pitonyak mi trovo a volte a scrivere delle semplici macro in calc per velocizzare dei lavori ripetitivi.
Sta volta però non riesco a venirne fuori per cui chiedo se qualcuno può dare un occhio al codice che ho scritto nelle macro nel file di esempio allegato.

Mi spiego meglio... la macro "inserisci" inserisce appunto nella riga 4 di ogni foglio i numeri progressivi a partire dall'1 finchè trova una stringa nelle celle della riga 1. E questa funziona a meraviglia.
Il mio obiettivo però è quello di inserire nei fogli dal secondo in poi i numeri progressivi partendo all'ultimo inserito nel foglio precedente. Per cui se nel primo foglio i numeri vengono inseriti da 1 a 22 nella riga 4, nel secondo partiranno dal 23 in poi. Per questo ho cercato di adattare la macro "inserisci" scrivendo "inserisci2" ma questa non mi funziona e non riesco a trovare l'errore.

Per favore potreste darmi una mano?

Grazie
Samuele
Allegati
lavoro.ods
(11.53 KiB) Scaricato 119 volte
Ultima modifica di samurai76 il giovedì 2 gennaio 2020, 17:19, modificato 1 volta in totale.
Libreoffice 6 su ubuntu 17.04
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: inserire numeri progressivi in più fogli

Messaggio da patel »

prova questa

Codice: Seleziona tutto

Sub inserisci
NumSheets = thisComponent.getSheets.getCount ' totale fogli
colonna = 0 : n = 0 ' devi usare 2 variabili
for foglio = 0 to NumSheets - 1 ' per ogni foglio del documento
	oSheet = ThisComponent.Sheets.getByIndex(foglio)
	do
		piazzati = oSheet.getCellByPosition(colonna,0).GetString ' tutte le celle della prima riga
		if piazzati = "" then
		   colonna = 0
		   exit do 
		end if   
		 
		oCell = oSheet.getCellByPosition(colonna,3)
		colonna = colonna + 1
		n = n +1
		oCell.String = n ' ...inserisci i numeri progressivi nella riga 4
	loop
next
End Sub
-------------------
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
samurai76
Messaggi: 23
Iscritto il: martedì 20 marzo 2018, 20:45

Re: inserire numeri progressivi in più fogli

Messaggio da samurai76 »

Magico Patel!!!
Mi ero incasinato troppo la vita...immaginavo ci fosse una soluzione più "pulita".

Grazie infinite...anche per la rapidità della risposta!
Libreoffice 6 su ubuntu 17.04
Rispondi