Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

[RISOLTO] Fermare l'ora di un inserimento

Ultimo Aggiornamento: 13/12/2017 19:44
Post: 18
Registrato il: 15/10/2008
Città: TRAVERSETOLO
Età: 64
Utente Junior
OFFLINE
05/11/2009 20:52

Buogiorno a tutti, ho bisogno di un aiutino:
Spiego il problema:
colonna A1 digito =SE(B1<>0;ADESSO();"")...formatto con data/ora
colonna A2 digito =SE(B2..Ecc...
colonna A3 digito =SE(B3..Ecc...
evidente se digito 1 nella colonna B1 appare data e ora ma successivamente, digitando 1 nella colonna B2, si aggiorna anche la data e ora di B1 e quindi i record della mia tabella sono tutti aggiornati alla stessa ora...come posso ovviare a questo inconveniente??
grazie in anticipo e un saluti a tutti
venus
Post: 223
Registrato il: 21/03/2008
Città: LOCATE VARESINO
Età: 76
Utente Junior
2007 / 13
OFFLINE
06/11/2009 00:22

inserire data e ora permanente
ciao venus
ti allego un file di esempio per il tuo caso contenente una macro la quale una volta attivata inserisce in una cella da te definita la data e l'ora in automatico senza che venga piu' aggiornata dal sistema a meno che tu non la cancelli e la inserisci di nuovo
la macro in questione e la stessa con una modifica ad una richiesta fatta da un nosto utente in settimana
----------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("a1,b2,c3,d4")) Is Nothing Then
''in grasseto sono le celle che tu devi definire vedi le mie per esempio
Exit Sub
Else
If ActiveCell = "" Then
ActiveCell.FormulaR1C1 = Format(Date, "dd/mmm/yyyy") & " " & Format(Time, "hh.mm.ss")
ActiveCell.Offset(1, 0).Select
Else
Exit Sub
End If
End If
End Sub
-----------------
spero di essere stato di aiuto,, Fai sapere
ciao da locate e buon [SM=x423051]
Ciao da locate
excel 2007 / 13
Post: 18
Registrato il: 15/10/2008
Città: TRAVERSETOLO
Età: 64
Utente Junior
OFFLINE
06/11/2009 19:43

Locate ciao, quello che mi hai mandato non è male ma per il mio problema andrebbe aggiornato un po' se possibile,
dato che devo fare un foglio che usano altri, ho la necessità che la colonna A:A si aggiorni da sola con data e ora all'inserimento di un valore nella colonna B:B, il dover fare 2 volte clic è sicuramente veloce ma non mi soddisfa come stile d'esecuzione.
Chiaro che se non esiste altra soluzione si fa come si può.
nel frattempo Ti ringrazio tantissimo
venus
Post: 2.091
Registrato il: 01/05/2006
Utente Veteran
2010
OFFLINE
06/11/2009 23:58

Già tempo addietro avevo passato questa macro (non mia ovviamente)


Da copiare nel modulo del foglio interessato:

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

Set rng = Intersect(Me.Columns("B"), Target) '<<==("B")da cambiare secondo tue esigenze'
If Not rng Is Nothing Then
For Each rCell In rng.Cells
With rCell
If Not IsEmpty(.Value) Then
.Offset(0, -1).Value = Date
Else
.Offset(0, -1).Value = vbNullString
End If
End With
Next rCell
End If
End Sub


Per ogni valore che inserisci alla colonna B, nella colonna A ti riporta la data corrente; per la colonna A imposta il formato cella/data che vuoi.

Ciao
Antonio
[Modificato da freeant7@forum 06/11/2009 23:59]
Ciao
Antonio
(Versione excel:2003/2010)
Post: 228
Registrato il: 21/03/2008
Città: LOCATE VARESINO
Età: 76
Utente Junior
2007 / 13
OFFLINE
07/11/2009 00:57

modifica data
ciao venus_21
stavo dando un'occhiata prima di andere a letto e ho visto che Antonio - che saluto - ti a gia passato una macro molto ma molto valida per il tuo caso. [SM=x423028] [SM=x423028]
riguardo alla tua domanda tu chiedevi di inserire in colonna a la Data e L'ora per questo fai una semplice modifica a qesta macro sostituendo la riga
-------------------------
.Offset(0, -1).Value = Date
con ----------------
.Offset(0, -1).Value = Format(Now, "dd/mm/yyyy hh.mm.ss")
---------------
cosi inserisci sia la data che l'ora,

ciao da locate e buon [SM=x423051]

PS x antonio , dando un'occhiata alla funzione che ai inserito ho visto che questo metodo e' molto valido anche per altri lavori senza macchinare tanto il cervello
Ciao da locate
excel 2007 / 13
Post: 19
Registrato il: 15/10/2008
Città: TRAVERSETOLO
Età: 64
Utente Junior
OFFLINE
09/11/2009 07:23

Si!!! Era proprio quello che cercavo
molte grazie ad Antonio e Locate come sempre di grande aiuto
venus
Post: 399
Registrato il: 04/02/2009
Città: MILANO
Età: 64
Utente Senior
2000 - 2007
OFFLINE
09/11/2009 13:02

Ciao VENUS_21
solo una precisazione rispetto a quanto proposto la locate(ciao):
inserendo la data con l'istruzione
=Format(Now, "dd/mm/yyyy hh.mm.ss")
ottieni una stringa, va benissimo a meno che tu non abbia bisogno in un secondo momento di ordinare per quella colonna o di fare totali per intervalli di tempo.
Se così fosse ti consiglio di utilizzare al posto di
.Offset(0, -1).Value = Format(Now, "dd/mm/yyyy hh.mm.ss")
l'istruzione
.Offset(0, -1).Value = Now
che inserisce appunto un valore Data invece di un Testo.

ciao
pietrol

pietrol
____________________________________
Win 10 Pro - Excel 2000 - 2007 -2016

Il lupo ululà, il castello ululì.
Post: 46
Registrato il: 29/12/2007
Città: PELLIZZANO
Età: 57
Utente Junior
OFFLINE
10/11/2009 22:58

Senza aprire un altro trend sperando di disturbare nessuno, volevo chiedere in questa settimana ho istallato il computer nuovo con windows 7a 64 bit con excell 2007, solo che ho riscontrato una cosa strana in una macro se inserisco questa stringa:
ActiveCell = Date & " " & Time()
Facendolo oggi mi scrive 11 ottobre.
Se metto =adesso() mi scrive la data esatta 10 novembre 2009.
Mentre se cambio data al computer e metto ad esempio 14 novembre la data risulta esatta.
Grazie in aticipo a chi mi può aiutare
Anselmo
Post: 234
Registrato il: 21/03/2008
Città: LOCATE VARESINO
Età: 76
Utente Junior
2007 / 13
OFFLINE
10/11/2009 23:38

data errata o ora
ciao ansi
non avendo ancora provato win7 con excel non saprei cosa dirti comunque prova a togliere le due parentesi a time in quanto nel vba questa parola e' riservata ed e' senza parentesi.
Ho provato tutti quanti i sistemi ma non mi a dato nessun errore sia inserendo =OGGI() , =ADESSO() la data e lora risultano vere al sistema anche se cambio data e ora da macro mi registra quello che io ho impostato in questa.
ciao da locate
Ciao da locate
excel 2007 / 13
Post: 403
Registrato il: 04/02/2009
Città: MILANO
Età: 64
Utente Senior
2000 - 2007
OFFLINE
10/11/2009 23:47

Ciao ansybevi
anche a me era successa la stessa cosa ma con XP e excel 2000.
Come succede a te, interpretava le date come inserite in notazione inglese mm/gg/aa.
Posso dirti come ho risolto io: sono andato in Pannello di Controllo/Opzioni internazionali (non so come si chiami in Win7)
e ho forzato nel formato Data breve la data con anni a quattro cifre.
Fatto questo tutto è tornato magicamente a posto.
Spero possa esserti utile.

ciao
pietrol
pietrol
____________________________________
Win 10 Pro - Excel 2000 - 2007 -2016

Il lupo ululà, il castello ululì.
Post: 47
Registrato il: 29/12/2007
Città: PELLIZZANO
Età: 57
Utente Junior
OFFLINE
11/11/2009 18:42

Re:
Grazie infinite per l'aiuto, allora allora ho seguito il consiglio di "pietrol", in windows 7 il formato breve non è nel pannello di controllo ma si entra dalla data in fondo a destra del dekstop, modifica impostazione data e orario. modifica orario, cambia le impostazioni del calendario e data, era inserita cosi dd/MM/yyyy e aturalmente se inserisco una data prima del 12 di ogni mese mi inverte mese anno, allora ho provato a mettere dd/MMM/yyyy e ora li mette esatti, naturalmente sia in fondo al dekstop che nella data dei file salvati mi scrive 11/nov/2009, ma per ora non ho trovato altre soluzioni.
Anselmo

pietrol, 10/11/2009 23.47:

Ciao ansybevi
anche a me era successa la stessa cosa ma con XP e excel 2000.
Come succede a te, interpretava le date come inserite in notazione inglese mm/gg/aa.
Posso dirti come ho risolto io: sono andato in Pannello di Controllo/Opzioni internazionali (non so come si chiami in Win7)
e ho forzato nel formato Data breve la data con anni a quattro cifre.
Fatto questo tutto è tornato magicamente a posto.
Spero possa esserti utile.

ciao
pietrol




Post: 48
Registrato il: 29/12/2007
Città: PELLIZZANO
Età: 57
Utente Junior
OFFLINE
10/02/2010 00:06

Riprendo questa discussione per cercare un aiuto per risolvere un problema, i nquesti giorni ho notato una cosa strana.
Io uso la seguente macro:

Sub Orario()
ActiveCell = Date & " " & Time()
Conferma = MsgBox("Salvo i dati ?", vbYesNoCancel, "Conferma Salva")
If Conferma = vbYes Then
ActiveWorkbook.Save 'Questa stringa ti chiede se vuoi salvare le modifiche
Else
ActiveCell.ClearContents 'Questa cancella la data inserita
End If
ActiveCell.Offset(3, -2).Range("A1").Select

Per farla funzionare nella macro al foglio di lavoro corrispondente c'è insrita anche questa:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Orario
End Sub

Mi serve per scrivere l'orario in cui utilizzo una determinata tabella con salvataggio automatico del file. Poi nella casella accanto metto la seguente formula:
=TESTO(D1223;"ggggg") mi scrive il giorno della settimana
=SOMMA(GIORNO.SETTIMANA(D1223)) mi scrive il numero del giorno della settimana
Ho notato che se metto il file sulla chiavetta e lo metto sul computer di casa in quella casella non mi mette più il giorno della settimana ma mi scrive la data che mi salva con la macro prima:
Esempio: martedì 09.02.2010 23:58:09
mentre quello che mi appare sul computer di casa:
09/02/2010 18.39.18 09/02/2010 18.39.18
nella casella della seconda formula mi scrive il numero 3
mentre nel file dove ho l'errore mi scrive #valore!
Penso che sia un problema di formattazione, ho provato a cambiarla ma con zero riultati.
Grazie in anticipo
[Modificato da ansybevi 10/02/2010 00:13]
Post: 0
Registrato il: 08/09/2017
Età: 47
Utente Junior
2013
OFFLINE
08/09/2017 15:57

Salve sono nuovo e sono molto interessato alla vostra soluzione.

anche se sono passati anni spero che possiate darmi una mano.

sto adoperando questa macro:


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

Set rng = Intersect(Me.Columns("b"), Target) ' QUI HO BISOGNO DI AVERE ANCHE UN ALTRA COLONNA PER FARE L'IDENTICO CALCOLO
If Not rng Is Nothing Then
For Each rCell In rng.Cells
With rCell
If Not IsEmpty(.Value) Then
.Offset(0, 1).Value = Format(Now, "hh.mm.ss")
Else
.Offset(0, 1).Value = vbNullString
End If
End With
Next rCell
End If

End Sub


ho bisogno di effettuare l'identica operazione in un altra cella ma per un altra colonna. contemporaneamente oltre B mi serve anche D ma in un altra cella vicino.

grazie
Post: 539
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Senior
Excel 2016-32bit Win11
OFFLINE
08/09/2017 22:29

Dato che la richiesta era diversa forse era il caso di iniziare un nuovo thread, tant'è, ti propongo una diversa macro più in linea con la tua richiesta.
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Cells.Count > 1 Then Exit Sub                 'non eseguire se selezionate più celle
    Application.EnableEvents = False                        'interrompo controllo eventi
    If (Target.Column = 2 Or Target.Column = 4) And Target.Value <> "" Then 'se (colonna B o D) e cella compilata
        Target.Offset(0, 1) = Format(Now(), "hh:mm:ss")     'imposta orario
    Else                                                    'se cella vuota
        Target.Offset(0, 1) = vbNullString                  'azzera orario
    End If
    Application.EnableEvents = True                         'riprendo controllo eventi
        
End Sub

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Post: 1
Registrato il: 08/09/2017
Età: 47
Utente Junior
2013
OFFLINE
09/09/2017 18:10

Sta funzionando.

grazie tantissimo

[SM=x423017]
Post: 1
Registrato il: 22/04/2017
Città: UDINE
Età: 58
Utente Junior
Excel 2016
OFFLINE
13/12/2017 10:54

Inserire data e ora che non varia al variare di un dato

Ho bisogno di un aiuto: sto utilizzando la macro seguente e proposta precedentemente in questa discussione.
Vorrei che al variare del dato in una cella della colonna E (B nel vs. esempio) non variasse anche la data e l'ora inserite tramite macro nella cella della colonna D ma rimanesse quella del primissimo inserimento nella colonna E.
Attualmente quando vado ad inserire in una nuova riga un valore in una nuova cella vuota della colonna E, la macro mi riporta correttamente la data e l'ora nella cella vuota corrispondente della stessa riga della colonna D ma se successivamente vado a variare il dato inserito nella cella della colonna E la macro mi aggiorna la data e l'ora nella relativa cella della colonna D con quella dell'ultima variazione, invece vorrei che rimanesse quella del primo inserimento.
Spero di essermi spiegato.
Come posso variare la seguente macro?

Set rng = Intersect(Me.Columns("E"), Target) '<<==("B")da cambiare secondo tue esigenze'
If Not rng Is Nothing Then
For Each rCell In rng.Cells
With rCell
If Not IsEmpty(.Value) Then
.Offset(0, -1).Value = Now
Else
.Offset(0, -1).Value = vbNullString
End If
End With
Next rCell
End If
End Sub

Ringrazio fin d'ora per il vs. aiuto.

Luca
[Modificato da LucaT. 13/12/2017 11:42]
Post: 610
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Senior
Excel 2016-32bit Win11
OFFLINE
13/12/2017 15:51

Prova a riscrivere la macro così:
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)

    Dim Rng As Range
    Dim rCell As Range
    
    Application.EnableEvents = False
    Set Rng = Intersect(Me.Columns("E"), Target)
    If Not Rng Is Nothing Then
        For Each rCell In Rng.Cells
            With rCell
                If Not IsEmpty(.Value) Then
                    If IsEmpty(.Offset(0, -1).Value) Then .Offset(0, -1).Value = Now
                Else
                    .Offset(0, -1).Value = vbNullString
                End If
            End With
        Next rCell
    End If
    Application.EnableEvents = True

End Sub
Nella stesura attuale: all'inserimento di uno o più dati in "E" viene indicata una o più date in "D", se viene cambiato un dato la data non cambia mentre se vengono eliminati uno o più dati le date vengono cancellate.

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Post: 2
Registrato il: 22/04/2017
Città: UDINE
Età: 58
Utente Junior
Excel 2016
OFFLINE
13/12/2017 17:39

Ti ringrazio, tutto sembra funzionare alla perfezione.

Già che c'ero ho inserito una seconda colonna dove vado a registrare la data e l'ora di modifica quindi nella prima colonna registro la data di inserimento che rimane fissa e nella seconda quella di modifica che varia ogni volta che vario il dato.
La macro così modificata è la seguente:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rng As Range
Dim rCell As Range

Application.EnableEvents = False
Set Rng = Intersect(Me.Columns("F"), Target)
If Not Rng Is Nothing Then
For Each rCell In Rng.Cells
With rCell
If Not IsEmpty(.Value) Then
If IsEmpty(.Offset(0, -2).Value) Then .Offset(0, -2).Value = Now
Else
.Offset(0, -2).Value = vbNullString
End If

If Not IsEmpty(.Value) Then
.Offset(0, -1).Value = Now
Else
.Offset(0, -1).Value = vbNullString
End If

End With
Next rCell
End If
Application.EnableEvents = True

End Sub


Non so se potevo scriverla in altra maniera ma anche così sembra vada e faccia quello per cui è stata scritta.

Grazie ancora.

Luca
Post: 611
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Senior
Excel 2016-32bit Win11
OFFLINE
13/12/2017 19:44

Così è anche più compatta:
With rCell
    If Not IsEmpty(.Value) Then
        If IsEmpty(.Offset(0, -2).Value) Then .Offset(0, -2).Value = Now
        .Offset(0, -1).Value = Now
    Else
        .Offset(0, -2).Value = vbNullString
        .Offset(0, -1).Value = vbNullString
    End If
End With

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 21:04. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com