[Risolto] formulalocal con funzione INDIRETTO
[Risolto] formulalocal con funzione INDIRETTO
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.
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
-
- Messaggi: 142
- Iscritto il: domenica 10 maggio 2015, 18:17
- Località: Busto Arsizio (VA)
Re: formulalocal con funzione INDIRETTO
Ciao,prova ad allegare un file di esempio con le macro,in modo da aiutare di più
OpenOffice 4.1.1 su windows seven
Re: formulalocal con funzione INDIRETTO
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
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
-
- Messaggi: 142
- Iscritto il: domenica 10 maggio 2015, 18:17
- Località: Busto Arsizio (VA)
Re: formulalocal con funzione INDIRETTO
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
-
- Messaggi: 142
- Iscritto il: domenica 10 maggio 2015, 18:17
- Località: Busto Arsizio (VA)
Re: formulalocal con funzione INDIRETTO
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.
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 130 volte
OpenOffice 4.1.1 su windows seven
Re: formulalocal con funzione INDIRETTO
Scusa proverò a verificare, se non è troppo disturbo puoi inserire la macro che è scritta nel messaggio.
Appena posso poi controllerò.
Appena posso poi controllerò.
OpenOffice 4.1.3 windows 10
-
- Messaggi: 142
- Iscritto il: domenica 10 maggio 2015, 18:17
- Località: Busto Arsizio (VA)
Re: formulalocal con funzione INDIRETTO
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
Re: formulalocal con funzione INDIRETTO
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
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