Condividi:        

macro attivata da tasto invio

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

macro attivata da tasto invio

Postdi martin » 16/03/10 13:16

a risalve ragazzi
complimenti sempre ai nostri moderatori per la risoluzione di
cerco la possibilita di attivare una macro anzi dai tasti di scelta classici ctrl+ ...
semplicemente dopo aver riempito una cella e mandare invio
è possibile ? ditemi i si !
logicamente se la cella è vuota e mando invio la maco mi dovrebbe dare avviso tipo "scrivi dato".
se non è possibile ditemelo cosi smetto di cercare.
grazie sempre
ciao
Martin
martin
Utente Senior
 
Post: 108
Iscritto il: 03/12/08 17:04

Sponsor
 

Re: macro attivata da tasto invio

Postdi Flash30005 » 16/03/10 14:59

Prova questa macro da inserire nel codice Vba del Foglio interessato (non nel modulo)
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "" Then
MsgBox "scrivi dato"
GoTo esci
End If
Call TuaMacro
esci:
End Sub


Dove TuaMacro è il nome della macro che devi avviare se la cella è piena

Fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro attivata da tasto invio

Postdi Anthony47 » 17/03/10 15:53

La macro di Flash si innesca quando "cambi" il valore di una cella, ad esempio non si innesca quando, posizionato su una cella vuota o con un contenuto, premi Enter andando nella cella sottostante (o adiacente, secondo le impostazioni in Strumenti /Opzioni); potrebbe quindi essere necessario usare una macro di Worksheet_SelectionChange.
Inoltre immagino che "il gioco" lo vuoi fare solo su un tot di celle, non in tutto il foglio.
Se con lo spunto di Flash non risolvi spiega quali sono le celle su cui vuoi applicare questo controllo e quale e' il ragionamento completo da fare.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19198
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro attivata da tasto invio

Postdi martin » 19/03/10 00:27

ciao
grazie sempre per aver risposto e scusate se mi faccio sentire in ritardo.
ok funziona inserito su codice foglio macro:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Range("f16") = "" Then

End If
Call CambiaFoglioSe
esci:
End Sub
:)
funziona benissimo era quello che cercavo.
un'ultima cortesia devo inserire questa macro nei codici dei miei cento fogli sempre sulla stessa cella
una macro per far in automatico (anzi inserire foglio per foglio ? che sarebbe noioso!!)
grazie sempre siete bravissimi
ciao martin
martin
Utente Senior
 
Post: 108
Iscritto il: 03/12/08 17:04

Re: macro attivata da tasto invio

Postdi martin » 19/03/10 16:03

ciao anthony
mi sa che la tua supposizione è giusta.
l'ho capito solo adesso che ho provato.
a me interessa solo una cella per foglio che faccia tale operazione es. solo range "F16"
"cosi come impostato ora appena inserisco un dato su altra cella si arriva macro"
grazie
martin
martin
Utente Senior
 
Post: 108
Iscritto il: 03/12/08 17:04

Re: macro attivata da tasto invio

Postdi martin » 19/03/10 16:10

Anthony47 ha scritto:La macro di Flash si innesca quando "cambi" il valore di una cella, ad esempio non si innesca quando, posizionato su una cella vuota o con un contenuto, premi Enter andando nella cella sottostante (o adiacente, secondo le impostazioni in Strumenti /Opzioni); potrebbe quindi essere necessario usare una macro di Worksheet_SelectionChange.
Inoltre immagino che "il gioco" lo vuoi fare solo su un tot di celle, non in tutto il foglio.
Se con lo spunto di Flash non risolvi spiega quali sono le celle su cui vuoi applicare questo controllo e quale e' il ragionamento completo da fare.

Ciao.


questa è la macro da attivare quando solo in f16 è inserito un numero:

Sub CambiaFoglioSe()
If Range("a15").Value = 0 Then
MsgBox "Indicare tipo "
Range("a15").Select
GoTo esci
End If
If Range("f16").Value = 0 Then
MsgBox "Inserire dato"
Range("f16").Select
GoTo esci
End If
If Range("L18").Value <> "ORDINE" And Range("L19").Value = 0 Then
Dim conferma
conferma = MsgBox("ci sono articoli da scaricare ?", vbYesNo)
If conferma = 6 Then
Range("L19").Select
GoTo esci
Else

End If



End If
For FF = 1 To Worksheets.Count
If Sheets(FF).Name = ActiveSheet.Name Then
Sheets(FF + 1).Select
GoTo esci
End If
Next FF
esci:
End Sub

martin
martin
Utente Senior
 
Post: 108
Iscritto il: 03/12/08 17:04

Re: macro attivata da tasto invio

Postdi Anthony47 » 19/03/10 20:05

Il secondo spezzone di macro (tutto il ciclo For FF=1 / Next FF) lo puoi ridurre a
Codice: Seleziona tutto
On Error Resume Next
ActiveSheet.Next.Select

Non ho capito se a questo punto e' tutto risolto o ti serve ancora qualcosa.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19198
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro attivata da tasto invio

Postdi martin » 20/03/10 05:02

Anthony47 ha scritto:Il secondo spezzone di macro (tutto il ciclo For FF=1 / Next FF) lo puoi ridurre a
Codice: Seleziona tutto
On Error Resume Next
ActiveSheet.Next.Select

Non ho capito se a questo punto e' tutto risolto o ti serve ancora qualcosa.

Ciao.



si grazie
nel precedente messaggio spiegavo che con la macro di flash si attivano tutte le celle
quindi inserendo altri dati mi va avanti di una pagina.
la macro che ho scritto nel messaggio a cui tu mi hai risposto e la macro che si deve attivare solo in quella specifica cella
a me interessa solo una cella per foglio "la f16"
e poi una macro che in automatico mi abiliti questa macro in tutti i 100 fogli
ciao martin
martin
Utente Senior
 
Post: 108
Iscritto il: 03/12/08 17:04

Re: macro attivata da tasto invio

Postdi Anthony47 » 20/03/10 21:28

Se la tua richiesta e' di avere una macro che chiama CambiaFoglioSe quando F16 di qualsiasi foglio viene modificato, allora usa questa macro:
Codice: Seleziona tutto
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address <> "$F$16" Then Exit Sub
Application.EnableEvents = False
Call CambiaFoglioSe
Application.EnableEvents = True
End Sub
Non la metterai pero' nel "modulo vba del foglio", ma in ThisWorkbook:
-da excel vai all' editor macro con Alt-F11
-sulla sinistra c' e' un frame con l' elenco di tutti i fogli piu' la voce ThisWorkbook (se non c' e', Menu /Visualizza /Gestione progetti); doppioclick su ThisWorkbook e accertati che nell' intestazione della finestra compare la scritta ThisWorkbook(codice)
-inserisci il codice nel frame vuoto di dx
-togli eventuali macro aventi la stessa finalita' inserite nei "moduli vba di foglio"
-torna su excel e prova.
Se volessi escludere qualcuno dei fogli dall' esecuzione della macro, metterai in testa (dopo l' intestazione) qualcosa come If Sh.Name="NomeFoglio" Then Exit Sub '<<<Ignora questo Foglio.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19198
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro attivata da tasto invio

Postdi martin » 20/03/10 22:29

Anthony47 ha scritto:Se la tua richiesta e' di avere una macro che chiama CambiaFoglioSe quando F16 di qualsiasi foglio viene modificato, allora usa questa macro:
Codice: Seleziona tutto
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address <> "$F$16" Then Exit Sub
Application.EnableEvents = False
Call CambiaFoglioSe
Application.EnableEvents = True
End Sub
Non la metterai pero' nel "modulo vba del foglio", ma in ThisWorkbook:
-da excel vai all' editor macro con Alt-F11
-sulla sinistra c' e' un frame con l' elenco di tutti i fogli piu' la voce ThisWorkbook (se non c' e', Menu /Visualizza /Gestione progetti); doppioclick su ThisWorkbook e accertati che nell' intestazione della finestra compare la scritta ThisWorkbook(codice)
-inserisci il codice nel frame vuoto di dx
-togli eventuali macro aventi la stessa finalita' inserite nei "moduli vba di foglio"
-torna su excel e prova.
Se volessi escludere qualcuno dei fogli dall' esecuzione della macro, metterai in testa (dopo l' intestazione) qualcosa come If Sh.Name="NomeFoglio" Then Exit Sub '<<<Ignora questo Foglio.

Ciao.


Ok Anthony tutto perfetto e collaudato funziona come desideravo.
grazie soprattutto per la specifica dettagliata di "thisWorkbook" che non conoscevo neanche l'esistenza.
i mie soliti complimenti saluti a presto.
Martin
martin
Utente Senior
 
Post: 108
Iscritto il: 03/12/08 17:04


Torna a Applicazioni Office Windows


Topic correlati a "macro attivata da tasto invio":


Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti