| | Post: 2.681 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
30/01/2017 10:41 | |
Ciao Stefano
Allega un file di esempio con la macro è spiega cosa non funziona o che problemi hai.
Alfredo |
|
| | Post: 2.682 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
30/01/2017 10:42 | |
Non capisco mentre rispondevo è sparito il precedente messaggio.
Alfredo |
| | Post: 1 | Registrato il: 30/01/2017
| Utente Junior | 2013 | | OFFLINE | |
|
30/01/2017 10:52 | |
Allego il file con il problema base. Nella colonna A devo immettere un numero variabile di volta in volta e vorrei che nella colonna B si inserisse in automatico ora e data senza che si aggiorni,
perciò ho scritto questa formula nella colonna B =SE(A1<>0;ADESSO();"")
la funzione adesso essendo variabile si aggiorna di volta in volta.
come la blocco? |
| | Post: 2 | Registrato il: 30/01/2017
| Utente Junior | 2013 | | OFFLINE | |
|
30/01/2017 10:56 | |
anche a me è sparito il messaggio iniziale |
| | Post: 2.683 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
30/01/2017 11:02 | |
Ciao Stefano
Prova con questa macro da inserire nel modulo del foglio interessato.
vb Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("a1:a10")) Is Nothing Then
If Target.Value <> "" Then
Application.EnableEvents = False
Target.Offset(0, 1).Value = Now
Application.EnableEvents = True
End If
End If
End Sub
Alfredo |
| | Post: 3 | Registrato il: 30/01/2017
| Utente Junior | 2013 | | OFFLINE | |
|
30/01/2017 11:17 | |
inserita e salvata su un foglio nuovo ma quando cerco di attivarla mi da errore di compilazione
prevista end sub.
riesci a mandarmi un file gia completo di macro?
poi se è chiaro mi spieghi cosa sbaglio gentilmente perchè è tutta la mattina che incontro questo errore su ogni macro che inserisco
|
| | Post: 2.684 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
30/01/2017 11:23 | |
Stefano sei sicuro di aver copiato l'intera macro? Perché da quel che dici sembrerebbe che tu ti sia "mangiato" l'End Sub finale.
Comunque ecco il file; la macro agisce sull'intervallo A1:A10. [Modificato da alfrimpa 30/01/2017 11:24]
Alfredo |
| | Post: 4 | Registrato il: 30/01/2017
| Utente Junior | 2013 | | OFFLINE | |
|
30/01/2017 11:34 | |
ecco cosa faccio io magari individui il mio errore apro un nuovo foglio excel vado su sviluppo e apro visual basic premo F5 e rinomino la macro come BASE sotto sub BASE incollo tutta la macro e controllo che End Sub sia presente 1 volta sola.
Salvo il foglio excel cambiando l'estensione file da .xls a .xlsm in modo da avere la macro salvata per eventuali problemi.
Torno su excel seleziono la mia macro e mi da errore. Cosa sbaglio?
|
| | Post: 2.685 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
30/01/2017 11:41 | |
Stefano la macro in questione non è una macro "normale" ma è una procedura che si attiva quando si verifica un determinato evento sul foglio di lavoro (nel tuo caso una variazione "fisica" non da formule di una cella dell'intervallo A1:A10).
Per questo motivo tali procedure "evento" non vanno inserite (come le altre macro) in un modulo "standard" bensì nel modulo del foglio interessato.
Se guardi il file che ti ho allegato prima vedrai che il tuttoè perfettamente funzionante ossia se modifichi una cella di A1:A10 nella corrispondente cella in colonna B verranno inserite data e ora fisse.
Credo sia il caso che tu ti documenti un po' sulle modalità di esecuzione di una macro che sono:
1) esecuzione manuale
2) esecuzione attraverso pulsante
3) esecuzione a seguito del verificarsi di un evento sul foglio o sulla cartella di lavoro. [Modificato da alfrimpa 30/01/2017 11:44]
Alfredo |
| | Post: 5 | Registrato il: 30/01/2017
| Utente Junior | 2013 | | OFFLINE | |
|
30/01/2017 11:42 | |
trovato l'errore guardando sul tuo file=)
sei stato gentilisssimo e disponibile!
Grazie mille
Ma se volessi imparare a scrivere macro in modo rapido ed efficace cosa dovrei fare?
e se nella tua macro volessi cambiare la colonna del risultato cosa dovrei cambiare?invece che la colonna b la colonna f o un altra
[Modificato da Stefano Gallazzi 30/01/2017 11:45] |
| | Post: 2.686 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
30/01/2017 11:50 | |
La risposta alla tua domanda è una sola:
STUDIARE
A questo link trovi un corso sul VBA molto ben fatto
http://forum.wintricks.it/showthread.php?t=155252
Poi potresti procurarti qualche buon testo sul VBA (se parli un po' di inglese è ancora meglio perché trovi più testi).
Inizialmente puoi cominciare ad utilizzare il registratore di macro ma giusto per prendere confidenza con il linguaggio.
Poi, come in tutte le cose, ci vuole impegno e soprattutto passione.
Alfredo |
| | Post: 2.687 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
30/01/2017 11:54 | |
Stefano Gallazzi, 30/01/2017 11.42:
e se nella tua macro volessi cambiare la colonna del risultato cosa dovrei cambiare?invece che la colonna b la colonna f o un altra
Devi cambiare il secondo parametro dell'istruzione
vb Target.Offset(0, 1).Value = Now
che sta ad indicare lo "scarto" rispetto rispetto alla cella che stai modificando.
1 rappresenta la B, 2 la C e così via.
Offset ha due parametri: il rimo indica la riga, il secondo la colonna.
Spero di essere stato chiaro.
[Modificato da alfrimpa 30/01/2017 11:55]
Alfredo |
| | Post: 6 | Registrato il: 30/01/2017
| Utente Junior | 2013 | | OFFLINE | |
|
30/01/2017 12:00 | |
fantastico, mi hai risolto 2 giorni di ricerche in qualche ora grazie ancora!! Studierò=) |
|
|