Forum di Excel e VBA, per condividere esperienze e risolvere problemi su: Excel, Word, Access, Power Point, Microsoft Office, macro, Visual Basic e Visual Studio.
domanda eventi excel di pint (utente non iscritto) data: 03/10/2016 13:17:11
Salve,
Ho una macro nel foglio 2 che scrive si o no a seconda del numero di volte che il cognome di un cliente appare nella lista clienti nel foglio1. se è maggiore di 3 scrive no sennò scrive si.
la macro funziona con l'evento change, pero mi è capitato che una volta scritto si o no nel foglio 2, se ritorno nel folgio 1 e aggiungo o tolgo lo stesso cognome per far si che quello che scrive la macro cambi, la macro si ricalcola automaticamente (praticamente no si aggiorna in tempo reale).
Esiste un modo per farlo?
Saluti
di alfrimpa data: 03/10/2016 14:12:33
Ciao pint
Senza un file con la macro è difficile rispondere.
Comunque, se ho capito bene, dovresti disabilitare gli eventi, eseguire il codice e riabilitarli con le istruzioni che vedi sotto.
Comunque allega il file spiegando bene quello che vuoi ottenere.
di pint (utente non iscritto) data: 03/10/2016 14:49:22
Grazie alfredo.
allego il file.
prova a spiegarmi.
foglio1 = lista clienti con codici e sedi
foglio2 = la macro, in base al codice cliente che si immette in C1, scrive automaticamente "SI" o "NO" in D1 (se il cliente ha visitato la sede fino a 3 volte, scrive si, altrimenti no).
la macro parte quando si immette il codice cliente in C1, pero vorrei che partisse quando si cambia qualsiasi cella nel libro.
Spiego perche ho bisogno che lo faccia cosi:
nella lista clienti nel foglio 1, se cambio la sede a uno dei clienti (e quindi potrebbe cambiare quello che scrive la macro), non lo calcola automaticamente come le normali formule di excel. bisogna forzosamente riscrivere il codice del cliente per far si che si attivi la macro.
in pratica avrei bisogno che la macro partisse ad ogni cambio di cella nel foglio1 (e quando si scrive il codice cliente in C1 nel foglio2)
Adesso la macro solo scrive quando si immette il codice cliente in C1 del foglio2.
Spero di essere stato capace di spiegarmi.
Saluti
di alfrimpa data: 03/10/2016 17:41:36
Purtroppo non ho capito nulla.
Puoi cercare di rispiegare?
Poi nella tua macro vedo un
If not Intersect(target, Range("C1")) Is Nothing Then Exit Sub
Puoi seguire spiegarmi quell'Exit Sub?
di pint (utente non iscritto) data: 03/10/2016 22:03:28
Salve alfrimpa,
Diciamo che la macro è un pò pasticciata.. copiata, incollata , modificata ecc...
esempio: cliente rossi visita ambedue le sedi di roma e milano. come ha visitato 3 volte milano e 3 volte roma, la macro, una volta scritto il codice in C1 referente alla visita, scrive sempre SI.
Adesso se immetti il codice che termina con 6, ti scrive SI, però se torni nel foglio1 e cambi la sede della visita 6 da milano a roma, dovrebbe automaticamente scrivere no ed invece continua a scrivere si. l'unico modo per far si che scriva correttamente no è riscrivere il codice che termina con 6 in C1.
Praticamente la macro parte solamente quando C1 cambia, mentre sarebbe corretto che come nell'esmpio sopra, se cambio la sede nel foglio1, automaticamente parta la macro ed in questo caso scriva no.
Saluti
di alfrimpa data: 04/10/2016 15:33:41
Ciao pint
Il tuo file mi dà un sacco di problemi (librerie non trovate, Excel che "crasha").
Prova a rifare un nuovo file senza macro e senza protezioni spiegando passo passo quello che vuoi fare.
Alfredo
di pint (utente non iscritto) data: 04/10/2016 16:34:27
salve alfrimpa,
allego file2 creato da zero.
foglio1: elenco visite clienti nelle 2 sedi ordinate per codice
foglio2: con l'immissione del codice in B1, automaticamente scrive il cliente in B2 (con formula) e dovrebbe scrivere in C1 la parola "SI" se il cliente ha visitato la stessa sede (che prende dal codice) fino a 3 volte e "NO" se il cliente ha visitato la sede da 4 volte in su.
Una volta immesso il codice 6 nel foglio2 in B1 (che in questo caso corrisponde a la sede di milano), la macro scrive "SI" perchè conta le volte che è stato il cliente rossi nella sede di milano (3). fin qui tutto bene. il problema si pone se torno nel foglio1 en dal menu a tendina delle sedi, cambio la sede da milano a roma. cosi facendo, sarebbe la quarta volta che il cliente rossi visita la sede di roma e quindi la macro deovrebbe scrivere "NO". pero questo non accade perche non si aggiorna automaticamente seguendo il valore che si ha appena cambiato. per far si che la macro "aggiorni" la scritta da "SI" a "NO", bisogna riscrivere il codice 6 ib B1 in modo tale che la macro viene ricalcolata.
in definitiva questo è il mio problema.
Saluti
di pint (utente non iscritto) data: 06/10/2016 08:19:01
Per favore fatemi sapere se posso aiutare spiegando meglio i punti o quello che sia necessario.
Saluti
di Cucù data: 06/10/2016 09:07:42
Prova il file allegato, è solo uno spunto e non son certo neanche che sia quello che cercavi.
Cucù^_^
di pint (utente non iscritto) data: 06/10/2016 14:09:28
Salve Cucu,
la tua macro fnziona alla perfezione pero quando la inserisco nel file originale di lavoro, non trova nemmeno il cliente partendo dal codice.
Potresti dargli un occhiata, per favore?
Il file è provafileoriginale
grazie e saluti
di pint (utente non iscritto) data: 07/10/2016 08:34:27
Salve Cucu,
Forse ho sbagliato quando ho cambiato le celle ed il nome del foglio?
Saluti
di pint (utente non iscritto) data: 08/10/2016 09:42:44
Suggerimenti please?
di pint (utente non iscritto) data: 10/10/2016 22:24:53
salve dinuovo,
dalle non risposte, dovrei capire che non c'è soluzione al problemino della macro?
non è imprenscidibile che la macro scriva anche il cliente (lo si può fare anche con una formula), però si il fatto che scriva si o no a seconda del caso.
Un saludo e grazie in anticipo a chi mi possa aiutare