[Risolto] ricavare le coordinate della cella selezionata

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
ottaviane
Messaggi: 24
Iscritto il: mercoledì 6 luglio 2011, 9:43

[Risolto] ricavare le coordinate della cella selezionata

Messaggio da ottaviane »

salve a tutti.
non riesco a creare una semplice funzione che controlla il valore della cella in cui ho inserito l'ultimo dato e lo corregge qualora è sbagliato.
ecco il codice:

Codice: Seleziona tutto

Sub OnCellChanged
  oRange=ThisComponent.getcurrentselection
  aPos=oRange.getRangeAddress
  gcol=aPos.StartRow
  grow=aPos.StartColumn
  v=ThisComponent.CurrentController.ActiveSheet.getcellbyposition(gcol,grow).string
  ThisComponent.CurrentController.ActiveSheet.getcellbyposition(gcol,grow).string=UCase(v)
End Sub
la funzione è stata assegnata all'evento della pagina "Contenuto modificato"
ma i valori di gcol e di grow restano sempre a zero.
Ho dato una occhiata sulle API ma non ho trovato niente di esaustivo.
Qualcuno saprebbe indicarmi il giusto metodo per ricavare le coordinate della cella selezionata o modificata?
grazie.
ciao
Ultima modifica di charlie il giovedì 4 dicembre 2014, 8:32, modificato 2 volte in totale.
Motivazione: inserito segno di spunta verde
LibreOffice 3.3.2 su Kubuntu 11.04
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: ricavare le coordinate della cella selezionata o modific

Messaggio da patel »

Codice: Seleziona tutto

Sub OnCellChanged(Target) 
If NOT Target.supportsService("com.sun.star.sheet.SheetCell") then exit sub
Sh = Target.getSpreadsheet()
addr = Target.getCellAddress()
r = addr.row
c= addr.column
print "riga = " & r & "  colonna = " & c
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
ottaviane
Messaggi: 24
Iscritto il: mercoledì 6 luglio 2011, 9:43

Re: ricavare le coordinate della cella selezionata o modific

Messaggio da ottaviane »

grazie mille.
ora è tutto chiaro.
ecco cosa ho fatto:

Codice: Seleziona tutto

Sub OnSelectionChange(Target)
 If NOT Target.supportsService("com.sun.star.sheet.SheetCell") then  
   oRange=ThisComponent.getcurrentselection()
   aPos=oRange.getRangeAddress()
   c=aPos.StartRow
   r=aPos.StartColumn
 else
   Sh = Target.getSpreadsheet()
   addr = Target.getCellAddress()
   r = addr.row
   c= addr.column  
 end if
End Sub
in questo modo se la selezione è di una sola cella si ottiene l'indirizzo con la funzione getcelladdress se invece la selezione è di un'area di più celle mi tiro fuori solo la cella più in alto a sinistra.
grazie e ciao.
LibreOffice 3.3.2 su Kubuntu 11.04
ottaviane
Messaggi: 24
Iscritto il: mercoledì 6 luglio 2011, 9:43

Re: ricavare le coordinate della cella selezionata o modific

Messaggio da ottaviane »

COME SI FA A METTERE [RISOLTO]?
LibreOffice 3.3.2 su Kubuntu 11.04
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: ricavare le coordinate della cella selezionata o modific

Messaggio da patel »

si modifica il titolo del primo post
-------------------
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
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: ricavare le coordinate della cella selezionata o modific

Messaggio da Gaetanopr »

ottaviane ha scritto:in questo modo se la selezione è di una sola cella si ottiene l'indirizzo con la funzione getcelladdress se invece la selezione è di un'area di più celle mi tiro fuori solo la cella più in alto a sinistra.
grazie e ciao.
Non è necessario effettuare il controllo se hai selezionato una o più celle

Codice: Seleziona tutto

Sub OnSelectionChange(Target)
   oRange=ThisComponent.getcurrentselection()
   aPos=oRange.getRangeAddress()
   c=aPos.StartRow
   r=aPos.StartColumn
End Sub
Puoi usare la proprietà getRangeAddress anche se modifichi-selezioni una sola cella
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Rispondi