Pagina 1 di 1
[Risolto] formulalocal con funzione INDIRETTO
Inviato: domenica 12 febbraio 2017, 11:25
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.
Re: formulalocal con funzione INDIRETTO
Inviato: domenica 12 febbraio 2017, 13:43
da XLUPOGRIGIOX
Ciao,prova ad allegare un file di esempio con le macro,in modo da aiutare di più
Re: formulalocal con funzione INDIRETTO
Inviato: domenica 12 febbraio 2017, 14:32
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
Re: formulalocal con funzione INDIRETTO
Inviato: domenica 12 febbraio 2017, 14:53
da XLUPOGRIGIOX
Ciao,nel documento non c'è nessuna macro...sicuro di averla salvata nel documento e non nelle macro personali?
Re: formulalocal con funzione INDIRETTO
Inviato: domenica 12 febbraio 2017, 15:05
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.
Re: formulalocal con funzione INDIRETTO
Inviato: domenica 12 febbraio 2017, 15:09
da zanoneg
Scusa proverò a verificare, se non è troppo disturbo puoi inserire la macro che è scritta nel messaggio.
Appena posso poi controllerò.
Re: formulalocal con funzione INDIRETTO
Inviato: domenica 12 febbraio 2017, 15:12
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
Re: formulalocal con funzione INDIRETTO
Inviato: domenica 12 febbraio 2017, 16:04
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