Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Data del giorno inputata automaticamente in una cella al variare di un altro valore cella.

1,253 views
Skip to first unread message

Bruno - S95

unread,
Oct 12, 2007, 9:34:22 AM10/12/07
to
Excel - Office XP

Ciao a tutti, come posso far imputare in automatico la data del giorno
corrente in una cella prescelta, a seguito di valore "imputato o variato" in
un'altra cella.

Tale necessità è sorta in quanto in un foglio di calcolo dove vengono
aggiornate le ore di straordinario, spesso ci si dimentica di aggiornare la
data della variazione effettuata.

Se possibile, è gradito un esempio a prova di scimmia.

Mille grazie, Bruno

Tiziano Marmiroli

unread,
Oct 12, 2007, 9:49:15 AM10/12/07
to
Il Fri, 12 Oct 2007 15:34:22 +0200, Bruno - S95 ha scritto:

>Excel - Office XP
>
>Ciao a tutti, come posso far imputare in automatico la data del giorno
>corrente

Imputare? http://www.demauroparavia.it/53970

Non ha molto senso: anche nel caso di giornate particolarmente storte è
difficile attribuir loro un reato specifico.
--
Tiziano "Lapalissiano" Marmiroli

Mauro Gamberini

unread,
Oct 12, 2007, 10:09:39 AM10/12/07
to
> Ciao a tutti, come posso far imputare in automatico la data del giorno
> corrente in una cella prescelta, a seguito di valore "imputato o variato"
> in un'altra cella.
>
> Tale necessità è sorta in quanto in un foglio di calcolo dove vengono
> aggiornate le ore di straordinario, spesso ci si dimentica di aggiornare
> la data della variazione effettuata.
>

Ma la data da aggiornare si trova nello stesso foglio?
Mettiamo sia Foglio1.

ALT+F11 e sei nell'editor del vba di Excel
Individua la finestra: Progetto-VBAProject
Fai doppio click su: Foglio1
Nel modulo di codice(foglio bianco)
copia incolla questo:

Private Sub Worksheet_Change(ByVal Target As Range)
Range("A1").Value = Format(Now, "mm/dd/yyyy")
End Sub


La data da aggiornare si trova in un altro foglio?
Mettiamo sia nel Foglio1 e tu stia operando
nel Foglio2
ALT+F11 e sei nell'editor del vba di Excel
Individua la finestra: Progetto-VBAProject
Fai doppio click su: Foglio2
Nel modulo di codice(foglio bianco)
copia incolla questo:

Private Sub Worksheet_Change(ByVal Target As Range)
With Worksheets("Foglio1")
.Range("A1").Value = Format(Now, "mm/dd/yyyy")
End With
End Sub

ALT+F11 e torni in Excel
Prova un po'...

--
---------------------------
Mauro Gamberini
http://www.riolab.org/


Bruno - S95

unread,
Oct 12, 2007, 12:44:58 PM10/12/07
to

"Mauro Gamberini" <maurogsc...@RIMUOVEREaliceposta.it> ha scritto nel
messaggio news:%23hwGSkN...@TK2MSFTNGP06.phx.gbl...
=======================================================

Ciao Mauro, grazie per la dritta che mi hai dato, funziona; così ho risolto
il problema dell'aggiornamento data, ma c'è un problema: le celle dove
vengono scritte le ore di straordinario sono "tre" (una per ogni reparto di
lavoro) ed ognuna ha associata una cella con la relativa data; cosa devo
aggiungere nel codice affinchè aggiorni la data nella cella quando vado a
variare il valore nella cella dello straordinario associata al reparto X.
Grazie, Bruno


Bruno - S95

unread,
Oct 12, 2007, 1:37:46 PM10/12/07
to

"Bruno - S95" <mus...@virgilio.it> ha scritto nel messaggio
news:470fa489$0$10626$4faf...@reader2.news.tin.it...
====================================

Ancora mille grazie Mauro.

Ho risolto da solo vedendo cosa scriveva luna macro.

Ciao, Bruno


Bruno - S95

unread,
Oct 13, 2007, 2:23:05 PM10/13/07
to

[CUT]

> Ciao Mauro, grazie per la dritta che mi hai dato, funziona; cosě ho
> risolto il problema dell'aggiornamento data, ma c'č un problema: le celle

> dove vengono scritte le ore di straordinario sono "tre" (una per ogni
> reparto di lavoro) ed ognuna ha associata una cella con la relativa data;

> cosa devo aggiungere nel codice affinchč aggiorni la data nella cella

> quando vado a variare il valore nella cella dello straordinario associata
> al reparto X.
> Grazie, Bruno

________________________

Scusa Mauro, pensavo di esser riuscito a risolvere, ma mi son sbagliato alla
grande. Puoi aiutarmi ?

Grazie, Bruno


eliano

unread,
Oct 13, 2007, 6:30:01 PM10/13/07
to

"Bruno - S95" ha scritto:

>
> [CUT]
>
> > Ciao Mauro, grazie per la dritta che mi hai dato, funziona; così ho
> > risolto il problema dell'aggiornamento data, ma c'è un problema: le celle

> > dove vengono scritte le ore di straordinario sono "tre" (una per ogni
> > reparto di lavoro) ed ognuna ha associata una cella con la relativa data;

> > cosa devo aggiungere nel codice affinchè aggiorni la data nella cella

> > quando vado a variare il valore nella cella dello straordinario associata
> > al reparto X.
> > Grazie, Bruno
> ________________________
>
> Scusa Mauro, pensavo di esser riuscito a risolvere, ma mi son sbagliato alla
> grande. Puoi aiutarmi ?
>
> Grazie, Bruno
>

Ciao Bruno.
Mauro fino a domani non si vede: ha il weekend sacro.:-))
Comunque, quando si riceve un consiglio e non si è posta correttamente la
domanda, non sarebbe male tentare di capire cosa fa la routine proposta e
tentare di apportargli le variazioni necessarie.
Se ho capito bene, prova:

'data da aggiornare sullo stesso foglio -> su Foglio1


Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 1 Then Range("A1").Value = Format(Now, "mm/dd/yyyy")
If Target.Column = 2 Then Range("B1").Value = Format(Now, "mm/dd/yyyy")
If Target.Column = 3 Then Range("C1").Value = Format(Now, "mm/dd/yyyy")
End Sub

e

'data da aggiornare su Foglio1 - Lavoro su Foglio2 -> su Foglio2


Private Sub Worksheet_Change(ByVal Target As Range)
With Worksheets("Foglio1")

If Target.Column = 1 Then .Range("A1").Value = Format(Now, "mm/dd/yyyy")
If Target.Column = 2 Then .Range("B1").Value = Format(Now, "mm/dd/yyyy")
If Target.Column = 3 Then .Range("C1").Value = Format(Now, "mm/dd/yyyy")
End With
End Sub

Sempre ammesso che abbia capito il problema; facci sapere.
Eliano

Bruno - S95

unread,
Oct 14, 2007, 3:08:31 PM10/14/07
to

"eliano" <eli...@discussions.microsoft.com> ha scritto nel messaggio
news:802472A1-6D5A-4F7B...@microsoft.com...
=============================

Ciao Eliano, grazie per il tuo aiuto.
Voglio precisare che ho provato a capire qualcosa e variare il codice di
Mauro e il tuo usando la condizione IF , ma senza riuscire nell'intento;
conosco a malapena il VBA, da me utilizzato in Access.
Il mio obiettivo è il seguente: se scrivo/modifico un valore nella cella
C19, far inserire la data in automatico in C16; se scrivo/modifico un valore
nella cella C26, far inserire la data in automatico in C23; se
scrivo/modifico un valore cella C33, far inserire la data in automatico in
C30. Il foglio è stato rinominato da Foglio1 a Straord_DEC.
Ho provato a risolvere anche con l'help, ma non ci ho capito molto perchè
non ho trovato un esempio per aiutarmi.
Grazie da Bruno

P.S. cerco di non essere una remora (il pesce).

Oltre al tuo codice, ho provato:

'Private Sub Worksheet_Change(ByVal Target As Range)
If Range.Select("C19") Then Range("C16").Value = Format(Now, "mm/dd/yyyy")
If Range.Select("C26") Then Range("C23").Value = Format(Now, "mm/dd/yyyy")
If Range.Select("C33") Then Range("C30").Value = Format(Now, "mm/dd/yyyy")
End Sub


'Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Select("C19") Then Range("C16").Value = Format(Now, "mm/dd/yyyy")
If Target.Select("C26") Then Range("C23").Value = Format(Now, "mm/dd/yyyy")
If Target.Select("C33") Then Range("C30").Value = Format(Now, "mm/dd/yyyy")
End Sub


Mauro Gamberini

unread,
Oct 16, 2007, 3:50:42 AM10/16/07
to
> Il mio obiettivo è il seguente: se scrivo/modifico un valore nella cella
> C19, far inserire la data in automatico in C16; se scrivo/modifico un
> valore nella cella C26, far inserire la data in automatico in C23; se
> scrivo/modifico un valore cella C33, far inserire la data in automatico
> in C30.
>

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rng As Range
Set rng = Range("C19,C26,C33")

If Not Intersect(Target, rng) Is Nothing Then
Target.Offset(-3, 0).Value = Format(Now, "mm/dd/yyyy")
End If

Set rng = Nothing

End Sub

Bruno - S95

unread,
Oct 16, 2007, 4:48:42 PM10/16/07
to

"Mauro Gamberini" <maurogsc...@RIMUOVEREaliceposta.it> ha scritto nel
messaggio news:OyxaTj8D...@TK2MSFTNGP04.phx.gbl...
>> Il mio obiettivo č il seguente: se scrivo/modifico un valore nella cella
========================

Grazie infinite Mauro.
Saluti, Bruno


Bruno - S95

unread,
Oct 22, 2007, 4:56:12 PM10/22/07
to

"Mauro Gamberini" <maurogsc...@RIMUOVEREaliceposta.it> ha scritto nel
messaggio news:OyxaTj8D...@TK2MSFTNGP04.phx.gbl...
>> Il mio obiettivo č il seguente: se scrivo/modifico un valore nella cella
=====================================

Ciao Mauro, ho provato questa sub, ma nelle celle d'interesse non appare
nessuna data, come mai ?

Grazie, Bruno


Mauro Gamberini

unread,
Oct 23, 2007, 3:05:05 AM10/23/07
to
> Ciao Mauro, ho provato questa sub, ma nelle celle d'interesse non appare
> nessuna data, come mai ?
>

Ma l'hai inserita nel modulo *del foglio*
dove vuoi il tuo giochino?

Bruno - S95

unread,
Oct 23, 2007, 3:38:09 AM10/23/07
to

"Mauro Gamberini" <maurogsc...@RIMUOVEREaliceposta.it> ha scritto nel
messaggio news:u43ISMUF...@TK2MSFTNGP04.phx.gbl...
==============
Si l'ho inserita, se posso ti mando il file; è piccolissimo.
Bruno


Mauro Gamberini

unread,
Oct 23, 2007, 3:49:20 AM10/23/07
to
> Si l'ho inserita, se posso ti mando il file; č piccolissimo.
>

Ma non importa. Se va va, qui o lě.
E qui va.

Questo codice:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rng As Range
Set rng = Range("C19,C26,C33")

If Not Intersect(Target, rng) Is Nothing Then
Target.Offset(-3, 0).Value = Format(Now, "mm/dd/yyyy")
End If

Set rng = Nothing

End Sub

Inserito nel modulo del Foglio1,
fa si che ad ogni *modifica* in C19(Foglio1),
si aggiorni la data in C16(Foglio1); per ogni modifica
in C26(Foglio1), si aggiorni la data in C23(Foglio1); per
ogni modifica in C33(Foglio1), si aggiorni
la data in C30(Foglio1).

Bruno - S95

unread,
Oct 23, 2007, 4:16:11 AM10/23/07
to

"Mauro Gamberini" <maurogsc...@RIMUOVEREaliceposta.it> ha scritto nel
messaggio news:%23P6x6kU...@TK2MSFTNGP04.phx.gbl...
===========================

Mauro, non funzia da me, sicuramente mi sfugge cualcosa, posso inviarti
questo foglio di calcolo ? Sono da verificare tre celle solamente. Tieni
conto che ho cambiato solo le celle dove scrivere la data, ovviamente anche
nel tuo codice.
Grazie, Bruno


Mauro Gamberini

unread,
Oct 23, 2007, 4:31:48 AM10/23/07
to
> Mauro, non funzia da me, sicuramente mi sfugge cualcosa, posso inviarti
> questo foglio di calcolo ? Sono da verificare tre celle solamente. Tieni
> conto che ho cambiato solo le celle dove scrivere la data, ovviamente
> anche nel tuo codice.
>

Facciamolo qui, così chi sta seguendo il thread
non rimane escluso.

Versione di Excel?
Come hai modificato?
Posta il codice e posta(di nuovo),
cosa intendi fare con quel codice.
Grazie

Bruno - S95

unread,
Oct 23, 2007, 4:42:19 AM10/23/07
to

"Mauro Gamberini" <maurogsc...@RIMUOVEREaliceposta.it> ha scritto nel
messaggio news:eEDko8UF...@TK2MSFTNGP05.phx.gbl...
===============
Invio il tutto e vado a lavoro, ciao e grazie. Bruno

STRAORD. EFFETTUATO / PREVISTO AL: 19/10/2007 PERIODO DAL 1° AL 28
OTTOBRE 2007
SQ COM
ORE DISPONIBILI (114): 114
ORE EFFETTUATE : 86 DATA PREVISTA PER LA CHIUSURA DEGLI
STRAORDINARI: 28/10/2007
ORE EFFETTUATE IN PIU' O IN MENO : - 28
Data di aggiornamento >>>>> C21 GIORNI RESTANTI ALLA DATA DI
CHIUSURA STRAORDINARI: 5

STRAORD. EFFETTUATO / PREVISTO AL: 19/10/2007
SQ OPZ
ORE DISPONIBILI (92): 107 MONTE ORE DISPONIBILE: 366
ORE EFFETTUATE : 73 TOTALE STRAORDINARIO EFFETTUATO: 271
ORE EFFETTUATE IN PIU' O IN MENO : - 34 ORE EFFETTUATE IN PIU' O IN
MENO: - 95
Data di aggiornamento >>>>> C30

STRAORD. EFFETTUATO / PREVISTO AL: 19/10/2007
SQTEC
ORE DISPONIBILI (160): 145
ORE EFFETTUATE : 112
ORE EFFETTUATE IN PIU' O IN MENO : - 33
Data di aggiornamento >>>>> C39


Il codice:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range

Set rng = Range("C21,C30,C39")

Bruno - S95

unread,
Oct 23, 2007, 4:47:39 AM10/23/07
to

"Mauro Gamberini" <maurogsc...@RIMUOVEREaliceposta.it> ha scritto nel
messaggio news:eEDko8UF...@TK2MSFTNGP05.phx.gbl...
=============

Scusa Mauro, ho provato ad incollare parte del foglio, ma ne è scaturito un
macello, non penso sia molto chiaro, vedi così:
Ciao, Bruno

SQ COM
ORE DISPONIBILI (114): 114

ORE EFFETTUATE : da variare>>>> 86


ORE EFFETTUATE IN PIU' O IN MENO : - 28
Data di aggiornamento >>>>> C21

SQ OPZ
ORE DISPONIBILI (92): 107
ORE EFFETTUATE : da variare>>>> 73


ORE EFFETTUATE IN PIU' O IN MENO : - 34

Data di aggiornamento >>>>> C30


SQ TEC
ORE DISPONIBILI (160): 145
ORE EFFETTUATE : da variare>>>> 112

Mauro Gamberini

unread,
Oct 23, 2007, 10:01:39 AM10/23/07
to
> SQ COM
> ORE DISPONIBILI (114): 114
> ORE EFFETTUATE : da variare>>>> 86
> ORE EFFETTUATE IN PIU' O IN MENO : - 28
> Data di aggiornamento >>>>> C21
>
>
>
> SQ OPZ
> ORE DISPONIBILI (92): 107
> ORE EFFETTUATE : da variare>>>> 73
> ORE EFFETTUATE IN PIU' O IN MENO : - 34
> Data di aggiornamento >>>>> C30
>
>
>
>
> SQ TEC
> ORE DISPONIBILI (160): 145
> ORE EFFETTUATE : da variare>>>> 112
> ORE EFFETTUATE IN PIU' O IN MENO : - 33
> Data di aggiornamento >>>>> C39
>
>

Modifica qui:

Set rng = Range("C19,C26,C33")

Dove i riferimenti delle celle fra virgolette
devono essere quelli delle celle dove *vai
a fare* le varazioni.

Mi sembra tu stia facendo la cosa contraria...

Dall'esempio che hai postato, dovrebbe essere
i riferimenti delle celle che contengono:
ORE EFFETTUATE : da variare

Poi controlla se lo scarto fra queste celle e quelle
che contengono la data è di -3, altrimenti
correggi il valore in questa riga:

Target.Offset(-3, 0).Value = Format(Now, "mm/dd/yyyy")

Dove -3 sta a significare 3 righe in alto, 0 stessa colonna.
Dai un'occhiatina alla proprietà: Offset
nella guida del vba di Excel
(è sufficiente tu metta il cursore del mouse su Offset
nel codice e poi prema il tasto F1).

Bruno - S95

unread,
Oct 23, 2007, 4:49:46 PM10/23/07
to

"Mauro Gamberini" <maurogsc...@RIMUOVEREaliceposta.it> ha scritto nel
messaggio news:471dfec3$0$37199$4faf...@reader3.news.tin.it...

>> SQ COM
>> ORE DISPONIBILI (114): 114
>> ORE EFFETTUATE : da
>> variare>>>> 86
>> ORE EFFETTUATE IN PIU' O IN MENO : - 28
>> Data di aggiornamento >>>>> cella C21

>>
>>
>>
>> SQ OPZ
>> ORE DISPONIBILI (92): 107
>> ORE EFFETTUATE : da
>> variare>>>> 73
>> ORE EFFETTUATE IN PIU' O IN MENO : - 34
>> Data di aggiornamento >>>>> cella C30

>>
>>
>>
>>
>> SQ TEC
>> ORE DISPONIBILI (160): 145
>> ORE EFFETTUATE : da
>> variare>>>> 112
>> ORE EFFETTUATE IN PIU' O IN MENO : - 33
>> Data di aggiornamento >>>>> cella C39

>>
>>
>
> Modifica qui:
>
> Set rng = Range("C19,C26,C33")
>
> Dove i riferimenti delle celle fra virgolette
> devono essere quelli delle celle dove *vai
> a fare* le varazioni.
>
> Mi sembra tu stia facendo la cosa contraria...
>
> Dall'esempio che hai postato, dovrebbe essere
> i riferimenti delle celle che contengono:
> ORE EFFETTUATE : da variare
>
> Poi controlla se lo scarto fra queste celle e quelle
> che contengono la data è di -3, altrimenti
> correggi il valore in questa riga:
>
> Target.Offset(-3, 0).Value = Format(Now, "mm/dd/yyyy")
>
> Dove -3 sta a significare 3 righe in alto, 0 stessa colonna.
> Dai un'occhiatina alla proprietà: Offset
> nella guida del vba di Excel
> (è sufficiente tu metta il cursore del mouse su Offset
> nel codice e poi prema il tasto F1).
>
> --
> ---------------------------
> Mauro Gamberini
> http://www.riolab.org/
>
=================================
Grazie Mauro, adesso funziona; ho solo variato Target.Offset(-3, 0).Value =
Format(Now, "mm/dd/yyyy") in Target.Offset(3, 0).Value = Format(Now,
"mm/dd/yyyy") perchè le celle dove deve inserire la data è 3 celle totto.
L'unica cosa è che se proteggo il foglio con la cella bloccata per evitare
di cancellare la data, alla modifica della cella interessata, la data non
viene inserita nella cella perchè protetta e appare l'avviso di errore.
Cercherò di aggiungere nel codice la sprotezione della cella per inserire
la data e poi riprotegerla.

Ancora mille grazie, Bruno

Mauro Gamberini

unread,
Oct 24, 2007, 3:18:42 AM10/24/07
to
> Grazie Mauro, adesso funziona
>

Bene

> L'unica cosa è che se proteggo il foglio con la cella bloccata per evitare
> di cancellare la data, alla modifica della cella interessata, la data non
> viene inserita nella cella perchè protetta e appare l'avviso di errore.
> Cercherò di aggiungere nel codice la sprotezione della cella per inserire
> la data e poi riprotegerla.
>

Worksheets("Foglio1").Unprotect "Pippo"
'
'Tuo codice
'
Worksheets("Foglio1").Protect "Pippo"

Bruno - S95

unread,
Oct 24, 2007, 12:00:37 PM10/24/07
to

"Mauro Gamberini" <maurogsc...@RIMUOVEREaliceposta.it> ha scritto nel
messaggio news:Oakfd4gF...@TK2MSFTNGP05.phx.gbl...
=======================

Mauro, ho provato e va tutto alla grande.
Ancora mille grazie,
Bruno


Mauro Gamberini

unread,
Oct 24, 2007, 12:06:20 PM10/24/07
to
> Mauro, ho provato e va tutto alla grande.
> Ancora mille grazie,
>

Mille prego! 8-)

0 new messages