È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

PROBLEMI CON UNA MACRO

Ultimo Aggiornamento: 30/01/2017 12:00
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 [SM=g27833]
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

[SM=x423024]

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

Re:
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ò=)
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]
Programmare una macro a una data futura (7 messaggi, agg.: 14/05/2018 12:55)
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 10:12. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com