Macro inserimento ora scrittura cella

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
Serpico
Messaggi: 14
Iscritto il: martedì 21 aprile 2020, 8:02

Macro inserimento ora scrittura cella

Messaggio da Serpico »

Salve, vorrei sapere se è possibile una vba che in pratica quando scrivo in una cella, in quella successiva in automatico inserisce l orario statico in formato hh.mm.

Grazie in anticipo.
Ultima modifica di charlie il lunedì 27 aprile 2020, 10:44, modificato 1 volta in totale.
Motivazione: Sostituito titolo - Argomento spostato
Open office 3.3.0 windows 7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Help vba in calc

Messaggio da charlie »

Ciao e benvenuto/a sul forum.
Se intanto ti vuoi presentare, farai cosa gradita. Puoi farlo in questa sezione -> viewforum.php?f=16
Se desideri avere una panoramica delle regole del forum puoi consultare il Manuale di sopravvivenza -> http://forum.openoffice.org/it/forum/vi ... hp?f=1&t=2

Buon proseguimento.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Help vba in calc

Messaggio da unlucky83 »

Si è possibile
La seguente macro è associata all'evento di Foglio1 "Contenuto modificato", in questo modo si avvia ogni volta che effettui una modifica.
TargetRange è l'oggetto che rappresenta le celle per le quali vorrei scrivere l'orario nelle celle adiacenti, quando il loro contenuto viene modificato.
Se la cella che viene modificata ("CellSelected") non fa parte dell'area interessata la macro termina senza fare nulla, altrimenti viene eseguita la macro "Orario"

Codice: Seleziona tutto

Sub foglio_modificato
Doc=ThisCOmponent
Sh=Doc.CurrentController.ActiveSheet
TargetRange = Sh.getCellRangeByName("Elenco")
CellSelected = Doc.currentselection	
if CellSelected.supportsService("com.sun.star.sheet.SheetCell") and _
   TargetRange.queryIntersection(CellSelected.getRangeAddress()).getCount >= 1 then
	Orario(CellSelected)
End If
End Sub
La macro Orario riporta data e ora correnti nella cella adiacente e imposta il formato in "hh.mm"

Codice: Seleziona tutto

Sub Orario(oCell As object)
row=oCell.CellAddress.Row
col=oCell.CellAddress.Column
with oCell.SpreadSheet.getcellbyposition(col+1,row)
	.value=Now
	.numberformat=40
End with
End Sub
Per dire alla macro quale area deve considerare come area di interesse, ho scelto di usare Dati>Definisci Area>Nome:Elenco, cioè ho assegnato il nome d'area "Elenco" all'intervallo di celle
Allegati
Prova1.ods
(11.51 KiB) Scaricato 167 volte
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Serpico
Messaggi: 14
Iscritto il: martedì 21 aprile 2020, 8:02

Re: Help vba in calc

Messaggio da Serpico »

Ciao, grazie 1000 x la celere risposta....
Open office 3.3.0 windows 7
Serpico
Messaggi: 14
Iscritto il: martedì 21 aprile 2020, 8:02

Re: Help vba in calc

Messaggio da Serpico »

Mi servirebbe un altro aiuto, so che esiste una formula, ma non posso usarla perche quella cella deve contenere altri valori, insomma mi servirebbe un altra vba che faccia un controllo sulla celllae7 se essa è vuota cancella anche la cella f7.
Grazie!!!
Open office 3.3.0 windows 7
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Macro inserimento ora scrittura cella

Messaggio da charlie »

Ciao, perché ti ostini a chiamare vba quelle che si chiamano macro? Anche in vba che, fra l'altro, qui non c'entra proprio.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Serpico
Messaggi: 14
Iscritto il: martedì 21 aprile 2020, 8:02

Re: Macro inserimento ora scrittura cella

Messaggio da Serpico »

Ciao, se invece dell orario volessi inserire la data gg/mm/aa che numero devo inserire in number format?
Grazie
Open office 3.3.0 windows 7
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Help vba in calc

Messaggio da unlucky83 »

Serpico ha scritto:mi servirebbe un altra vba che faccia un controllo sulla celllae7 se essa è vuota cancella anche la cella f7.
Ma la macro deve operare in automatico come l'altra oppure devi avviarla manualmente con un pulsante?
Serpico ha scritto:Ciao, se invece dell orario volessi inserire la data gg/mm/aa che numero devo inserire in number format?
Grazie
Numero 30

Se sei curioso di scoprire altri NumberFormat, tra cui quelli personalizzati, imposta il formato manualmente nel primo foglio cella A1 ed esegui questa macro

Codice: Seleziona tutto

sub ScopriNumberFormatA1
Doc=ThisComponent
Sh=Doc.Sheets(0)
oCell=Sh.getcellrangebyname("A1")
msgbox oCell.numberformat
End sub
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Serpico
Messaggi: 14
Iscritto il: martedì 21 aprile 2020, 8:02

Re: Macro inserimento ora scrittura cella

Messaggio da Serpico »

Grazie...si lo farò perche sono curioso di sapere...molto gentile...
Open office 3.3.0 windows 7
Serpico
Messaggi: 14
Iscritto il: martedì 21 aprile 2020, 8:02

Re: Macro inserimento ora scrittura cella

Messaggio da Serpico »

Mi servirebbe un piccolo aiuto ancora...
Mi servirebbe quando una cella contiene dei dati mi inserisca in automatico la data odierna in un altra cella.
In partica ho questo range di celle da e7 a e51 quando le celle in questo range hanno un valore, nella riga corrispondente ma nella colonna N mi inserisca la data, e quando invece poi il valore nella cella E viene cancellato anche il suo corrispondente nella cella N viene cancellato...spero di non essere stato contorto nel ragionamento.
Grazie!!!
Open office 3.3.0 windows 7
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Macro inserimento ora scrittura cella

Messaggio da unlucky83 »

Ho aggiunto una macro al precedente codice che riporta la data come vuoi te. Se la macro per l'orario non ti interessa più, provvedi a escluderla dal tuo progetto. Buon lavoro e scusa per l'attesa.

Codice: Seleziona tutto

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

Sub foglio_modificato
Doc=ThisCOmponent
Sh=Doc.CurrentController.ActiveSheet
TargetRange = Sh.getCellRangeByName("Elenco")
CellSelected = Doc.currentselection   
if CellSelected.supportsService("com.sun.star.sheet.SheetCell") and _
   TargetRange.queryIntersection(CellSelected.getRangeAddress()).getCount >= 1 then
   Orario(CellSelected)
   DataOggi(CellSelected)
End If
End Sub

Sub Orario(oCell As object)
row=oCell.CellAddress.Row
col=oCell.CellAddress.Column
with oCell.SpreadSheet.getcellbyposition(col+1,row)
   .value=Now
   .numberformat=40
End with
End Sub

Sub DataOggi(oCell As object)
row=oCell.CellAddress.row

with oCell.SpreadSheet.getcellRangeByName("N" & row+1)
	If oCell.string<>"" then
   	.value=Now
   	.numberformat=30
   	Else
   	.ClearContents(7)
   	End If
End with
End Sub
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
bobo779256
Messaggi: 161
Iscritto il: mercoledì 2 maggio 2012, 16:05

Re: Macro inserimento ora scrittura cella

Messaggio da bobo779256 »

Se posso permettermi un suggerimento, almeno per quest'ultima richiesta di Serpico (esempio su una cella)

se la necessità è quella di avere in N10 la data di prima compilazione di E10 e che rimanga tale anche per successivi cambiamenti di E10, si azzera N10 solo se si azzera E10

Mettere tale formula nella cella N10: =SE(E10="";"";SE(N10="";ADESSO();N10))

Bisogna preventivamente abilitare la casella Strumenti>Opzioni>Calc>Calcola>Iterazioni, altrimenti da errore

L'ho presa ed usata da questo forum, forse la versione inglese
OpenOffice 4.1.13 su Windows 10 PRO 64bit
Serpico
Messaggi: 14
Iscritto il: martedì 21 aprile 2020, 8:02

Re: Macro inserimento ora scrittura cella

Messaggio da Serpico »

Ok...grazie...purtoppo non sono molto bravo, non mi rwsta che provare...grazie a tutti x la celere risposta...
Open office 3.3.0 windows 7
Serpico
Messaggi: 14
Iscritto il: martedì 21 aprile 2020, 8:02

Re: Macro inserimento ora scrittura cella

Messaggio da Serpico »

Salve, ho appena provato il codice, ma non inserisce in automatico, devo sempre lanciare la macro, io vorrei non lanciarla se esiste un metodo, ma che da se vede e fa il resto...

Grazie!!!
Open office 3.3.0 windows 7
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Macro inserimento ora scrittura cella

Messaggio da unlucky83 »

Vale quanto detto nel messaggio sopra. Devi collegare la macro "foglio_modificato" all'evento del foglio "contenuto modificato" come anche devi usare il nome d'area "Elenco" per le celle interessate.
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Serpico
Messaggi: 14
Iscritto il: martedì 21 aprile 2020, 8:02

Re: Macro inserimento ora scrittura cella

Messaggio da Serpico »

Ehm...scusami...quali sono i passaggi x fare queso collegamento del foglio??
Open office 3.3.0 windows 7
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Macro inserimento ora scrittura cella

Messaggio da unlucky83 »

clicca con il tasto destro sulla linguetta del foglio, seleziona "Eventi foglio"
A questo punto assegna all'evento "contenuto modificato" la macro
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Serpico
Messaggi: 14
Iscritto il: martedì 21 aprile 2020, 8:02

Re: Macro inserimento ora scrittura cella

Messaggio da Serpico »

Ancora grazie!!!
Open office 3.3.0 windows 7
Serpico
Messaggi: 14
Iscritto il: martedì 21 aprile 2020, 8:02

Re: Macro inserimento ora scrittura cella

Messaggio da Serpico »

Salve, mi servirebbe una macro che copia il valore di un range di celle e le incolla in una finestra di chrome prema invio e che poi chiuda solo quella scheda, e resta aperto il browser.
È realizzabile o solo un sogno??
Grazie!!!
Open office 3.3.0 windows 7
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro inserimento ora scrittura cella

Messaggio da patel »

Apri una nuova discussione con titolo adeguato
-------------------
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
Rispondi