[Risolto] formulalocal con funzione INDIRETTO

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
zanoneg
Messaggi: 4
Iscritto il: domenica 12 febbraio 2017, 10:57

[Risolto] formulalocal con funzione INDIRETTO

Messaggio da zanoneg »

Un saluto a tutti,

ecco il problema : con un loop vado ad inserire nella colonna A i nomi dei fogli creati in precedenza.

Poi con la macro che segue vado ad inserire nella colonna B il collegamento per poter richiamare i singoli fogli e fin qui tutto bene.

Quello che non produce risultato è la composizione della formula che con la funzione INDIRETTO mi deve caricare il contenuto di una cella (nell'esempio E8) presente nel foglio il cui nome è nella colonna A. ( ES. =INDIRETTO(A12 & ".E8") che così funziona )

for i=5 to oSheets.count -1
oCell=oSheet.getCellByPosition(1,i+6)
ocell.formulalocal = "=COLLEGAMENTO(k" & i+1+6 & ";L1)" ' --- creo collegamento TUTTO OK

oCell3=oSheet.getCellByPosition(2,i+6)
ocell3.formulalocal = "=INDIRETTO(A" & i+1+6 & ".E8)" ' --- visualizzo sulla colonna C nome relativo all'intestatario del documento da richiamare NON FUNGE

next

Quello che ottengo è : #RIF!
Come posso dunque scrivere in maniera corretta la formula ?
Grazie per l'attenzione e per il Vs eventuale aiuto.
Ultima modifica di zanoneg il domenica 12 febbraio 2017, 16:04, modificato 1 volta in totale.
OpenOffice 4.1.3 windows 10
XLUPOGRIGIOX
Messaggi: 142
Iscritto il: domenica 10 maggio 2015, 18:17
Località: Busto Arsizio (VA)

Re: formulalocal con funzione INDIRETTO

Messaggio da XLUPOGRIGIOX »

Ciao,prova ad allegare un file di esempio con le macro,in modo da aiutare di più ;)
OpenOffice 4.1.1 su windows seven
zanoneg
Messaggi: 4
Iscritto il: domenica 12 febbraio 2017, 10:57

Re: formulalocal con funzione INDIRETTO

Messaggio da zanoneg »

Ciao grazie Ti allego l'estratto dell'applicativo interessato la macro usata è quella denominata: elenco

Posto anche il codice:

' --------------------------------------

' MACRO ELENCO DA SISTEMARE

' --------------------------------------

Sub elenco

dim oSheets as object , oSheet as object

oDoc=ThisComponent
oSheet =oDoc.CurrentController.ActiveSheet
oSheets=oDoc.Sheets
'oSheet=oSheets(1)
riga_inizio=6 'riga 1
col_inizio=0 'col A

for i=1 to oSheets.count-1

Nomefoglio=oSheets.getbyIndex(i).Name
' print Nomefoglio
oCell=oSheet.getCellByPosition(col_inizio,riga_inizio+i)
oCell2=oSheet.getCellByPosition(10,riga_inizio+i)
oCell.string = Nomefoglio
oCell2.string = "#" + Nomefoglio

oSheet.getCellRangeByName("L1").string = "Apri"

next

for i=1 to oSheets.count -1

oCell=oSheet.getCellByPosition(1,i+6)
ocell.formulalocal = "=COLLEGAMENTO(k" & i+1+6 & ";L1)"


oCell3=oSheet.getCellByPosition(2,i+6)
ocell3.formulalocal = "=INDIRETTO(A" & i+1+6 & ".E8)"

next

End Sub
Allegati
Documento.ods
(22.96 KiB) Scaricato 140 volte
OpenOffice 4.1.3 windows 10
XLUPOGRIGIOX
Messaggi: 142
Iscritto il: domenica 10 maggio 2015, 18:17
Località: Busto Arsizio (VA)

Re: formulalocal con funzione INDIRETTO

Messaggio da XLUPOGRIGIOX »

Ciao,nel documento non c'è nessuna macro...sicuro di averla salvata nel documento e non nelle macro personali?
OpenOffice 4.1.1 su windows seven
XLUPOGRIGIOX
Messaggi: 142
Iscritto il: domenica 10 maggio 2015, 18:17
Località: Busto Arsizio (VA)

Re: formulalocal con funzione INDIRETTO

Messaggio da XLUPOGRIGIOX »

Ciao,ho sistemato la macro definendo il nome del foglio e usando un semplice = al posto del tuo indiretto.
Ho salvato la macro nel documento così da non avere problemi in futuro,dimmi se così funziona.
Allegati
Documento XLUPOX.ods
(22.58 KiB) Scaricato 129 volte
OpenOffice 4.1.1 su windows seven
zanoneg
Messaggi: 4
Iscritto il: domenica 12 febbraio 2017, 10:57

Re: formulalocal con funzione INDIRETTO

Messaggio da zanoneg »

Scusa proverò a verificare, se non è troppo disturbo puoi inserire la macro che è scritta nel messaggio.
Appena posso poi controllerò.
OpenOffice 4.1.3 windows 10
XLUPOGRIGIOX
Messaggi: 142
Iscritto il: domenica 10 maggio 2015, 18:17
Località: Busto Arsizio (VA)

Re: formulalocal con funzione INDIRETTO

Messaggio da XLUPOGRIGIOX »

Basterebbe scaricare e provare il file,comunque ti metto la macro modificata:

Codice: Seleziona tutto

REM  *****  BASIC  *****

Sub elenco

dim oSheets as object , oSheet as object 

oDoc=ThisComponent
oSheet =oDoc.CurrentController.ActiveSheet
oSheets=oDoc.Sheets
'oSheet=oSheets(1)
riga_inizio=6 'riga 1 
col_inizio=0 'col A 

for i=1 to oSheets.count-1

Nomefoglio=oSheets.getbyIndex(i).Name
' print Nomefoglio
oCell=oSheet.getCellByPosition(col_inizio,riga_inizio+i)
oCell2=oSheet.getCellByPosition(10,riga_inizio+i)
oCell.string = Nomefoglio
oCell2.string = "#" + Nomefoglio

oSheet.getCellRangeByName("L1").string = "Apri"

next

for i=1 to oSheets.count -1

oCell=oSheet.getCellByPosition(1,i+6)
ocell.formulalocal = "=COLLEGAMENTO(k" & i+1+6 & ";L1)"

fattura = oSheet.getCellByPosition(0,i+6).string 'definisco nome foglio
oCell3=oSheet.getCellByPosition(2,i+6)
ocell3.formulalocal = "=" & fattura & ".E8" 'formula cambiata

next

End Sub
OpenOffice 4.1.1 su windows seven
zanoneg
Messaggi: 4
Iscritto il: domenica 12 febbraio 2017, 10:57

Re: formulalocal con funzione INDIRETTO

Messaggio da zanoneg »

Perfetto Ti ringrazio tanto, ho visto correzioni interessanti le studierò bene.
Allego il risultato ottenuto con la macro memorizzata a livello documento.
Ciao alla prossima
Allegati
Documento.ods
(23.59 KiB) Scaricato 139 volte
OpenOffice 4.1.3 windows 10
Rispondi