Ritorno a cella di partenza |
|
| Storico
discussioni |
|
| Ritorno al punto di partenza di
Fabio22 |
Ciao a tutti! sto cercando l’istruzione vba
appropriata per portare il cursore dalla cella in cui attualmente si
trova a quella in cui si trovava immediatamente prima. spiego il
perché. ho un’applicazione che lavora in worsheet_selectionchange la
quale invia messaggi di errore (con msgbox) allorché in una cella
vengono digitati dati non corretti. ora, quando l’utente,
ricevendo il messaggio, dopo aver premuto l’ok della finestra di
messaggio (che a questo punto scompare) ritorna alla cella di
partenza per digitarvi il dato corretto, ritorna ovviamente il
messaggio di errore (per effetto del selectionchange). ciò che
vorrei ottenere è che, premendo l’ok della finestra di messaggio, il
cursore si riposizionasse dove era in precedenza in maniera da
permettere all’utente di modificare il dato immesso erroneamente
nella cella senza un ulteriore (ed inutile) messaggio di errore.
grazie per i suggerimenti. fabio
|
|
| Ciao di Apoben64 |
Se ho capito bene , il messaggio deriva da
un'istruzione o un ciclo . quindi o riesci a postare una parte
del codice o se no per riselezionare una cella puoi usare dopo
msgbox : range("a1").select 'o la tua cella da ridigitare
penso che non ti abbia dato la soluizione che cercacvi ma
comunque se puoi riscirvi con maggiori dettagli . un saluto
luca |
|
| di Fabio22 |
Ciao apoben! il problema è che non è
prevedibile, in anticipo, in quale cella l’utente potrebbe inserire
un dato non corretto. il codice che sto cercando dovrà essere
tale che -- alla pressione del tasto ’ok’ della finestra che segnala
l’errore -- l’utente venga rinviato alla cella (qualunque fosse
stata) nella quale aveva digitato il dato erroneo. tutto ciò per
consentirgli di ridigitare, senz’altro, il dato corretto. il
problema sarebbe stato risolvibile con l’utilizzo di
worksheet_change anziché worksheet_selectionchange ma, purtroppo, le
caratteristiche dell’applicazione non mi consentono questa modifica.
a pensarci bene, molte applicazioni di uso corrente funzionano
in modo tale che -- quando si inserisce in una cella un dato non
contemplato dalla procedura -- si ha una segnalazione di errore
fermo restando, almeno in apparenza, il punto di inserimento. nel
caso non avessi espresso compiutamente il problema, fammi sapere.
ciao --fabio
|
|
| di Mauro |
| Ciao fabio, ti consiglio di usare l'evento
worksheet_change al posto di worsheet_selectionchange, mentre
selectionchange fa partire la routine ad ogni cambiamento di cella,
con change è necessario variare il contenuto di una cella. |
|
| di Mauro |
Scusa non avevo letto bene la tua risposta.
prova questo nel modulo legato al foglio:
Private indirizzo As String
Private Sub Worksheet_Activate()
indirizzo = ActiveCell.Address
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "indirizzo precedente: " & indirizzo
' svolgo la mia elaborazione poi salvo l'indirizzo
indirizzo = ActiveCell.Address
End Sub | |
|
| di Fabio22 |
| Ti ringrazio moltissimo, mauro. non sapevo proprio
come fare. fabio |
|
|