Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Attivare macro con CONTA.NUMERI

Ultimo Aggiornamento: 22/05/2017 06:40
Post: 170
Registrato il: 13/12/2015
Città: MILANO
Età: 58
Utente Junior
2010
OFFLINE
20/05/2017 13:02

Ciao a tutti,
ho provato ad adattare un colpo di genio di Patel (http://www.freeforumzone.com/discussione.aspx?idd=10424271 ) ma sbaglio qualcosa.
Obiettivo: al cambio del valore in T3 attivare la macro AggPROD.

La sequenza dovrebbe essere la seguente:
1)L'operatore inserisce il valore in una cella della colonna R.
2)Il valore incrementa il numero in T3 del foglio PRODUZIONE
3)la modifica attiva la macro.

BG66
Excel 2010
Post: 3.212
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
ONLINE
20/05/2017 13:18

Gene non ho visto la macro di Patel (che saluto) ma una macro non può partire al variare del risultato di una formula (T3).

La macro può partire quando interviene una variazione "fisica" nel tuo caso in colonna R.

Alfredo
Post: 170
Registrato il: 13/12/2015
Città: MILANO
Età: 58
Utente Junior
2010
OFFLINE
20/05/2017 16:02

Ciao Alfredo,
infatti la voglia di approfondire è nata proprio dal provare la soluzione di Patel (che ringrazio).
Nel mio caso specifico non avendo formule nelle celle la cosa più semplice era quella di puntare sulla colonna R.

BG66
Excel 2010
Post: 3.214
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
ONLINE
20/05/2017 16:05

Infatti.....

Alfredo
Post: 171
Registrato il: 13/12/2015
Città: MILANO
Età: 58
Utente Junior
2010
OFFLINE
20/05/2017 16:45

Ciao Alfredo,
ritornando su quello generico. Ma se volessi attivare l'avvio macro in celle non contigue?
ho provato cosi ma l'esegue comunque per ogni cella:
  
Private Sub Worksheet_Change(ByVal Target As Range)  
If Not Intersect(Target, Range("R26, R47, R68, R89, R110")) Is Nothing And Target.Value <> “” Then Call AggPROD 
MsgBox "Aggiornamento Eseguito" 
End Sub


La distanza celle è sempre di 21 fino a R655...

Gene

PS l'aiuto per capire lo sbaglio nel " Patel script" è, comunque, gradito [SM=g27833]
[Modificato da BG66 20/05/2017 16:50]
BG66
Excel 2010
Post: 3.215
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
ONLINE
20/05/2017 16:50

Che intendi per celle non contigue?

La macro che hai postato viene eseguita in base a due condizioni:

1) viene modificata una delle celle indicate nel range
2) che il valore della cella oggetto di modifica (target) sia diverso da vuoto.

Alfredo
Post: 172
Registrato il: 13/12/2015
Città: MILANO
Età: 58
Utente Junior
2010
OFFLINE
20/05/2017 16:53

Ahi,
nell'ultimo script non gli dico ( o comunque vorrei farlo) che nelle celle R26-R47-R68 ect se il valore è diverso da vuoto (quindi l'utente ha digitato un numero) avvia AggProd?
[SM=g27818]

[Modificato da BG66 20/05/2017 16:55]
BG66
Excel 2010
Post: 3.216
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
ONLINE
20/05/2017 17:06

Si è così ma se viene digitata una lettera (non un numero) la macro parte lo stesso.

Bisognerebbe aggiungere un'altra condizione cioè

If IsNumber(target.value) Then

Alfredo
Post: 173
Registrato il: 13/12/2015
Città: MILANO
Età: 58
Utente Junior
2010
OFFLINE
21/05/2017 05:24

Ma, indipendentemente da lettere e numeri, al momento il problema è che con qualsiasi cella viene lanciata la macro.

Vedi esempio in file allegato.
https://www.dropbox.com/s/6whvy7iraf2jrxs/T09_MAGGIO_2017_pCS1.xls?dl=0
[Modificato da BG66 21/05/2017 11:20]
BG66
Excel 2010
Post: 385
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
OFFLINE
21/05/2017 13:01

Ciao Gene
se la condizione è TUTTA su una riga ... non sortisce l'effetto desiderato.
Prova così
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("R26, R47, R68, R89, R110")) Is Nothing And Target.Value <> “” Then
    Call AggPROD
    MsgBox "Aggiornamento Eseguito"
End If
End Sub


Non sono entrato nel merito del resto (lo vedrò, con calma, nel pomeriggio).
Ciao,
Mario
Post: 174
Registrato il: 13/12/2015
Città: MILANO
Età: 58
Utente Junior
2010
OFFLINE
21/05/2017 16:02

Ciao Mario,
azz...era proprio quello!! [SM=g27816]
Ma, senza l'arrivo della cavalleria (te),come me ne sarei potuto accorgere? Usando Option explicit?

Approfitto per richiederti ulteriore aiuto:
E' corretto utilizzare (Range("R26, R47, R68, R89, R110, etc,etc")o c'è un metodo per sfruttare la distanza celle che è sempre di 21 fino a R655?

Conoscendoti credo che a partire dalle 15.00 per almeno 90' sarai impegnato (Forza Juve) ma comunque attendo il tuo approfondimento per il mio errato adattamento del "Patel Script"

[Modificato da BG66 21/05/2017 16:06]
BG66
Excel 2010
Post: 386
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
OFFLINE
21/05/2017 17:09

Ciao Gene
dopo aver "goduto" per il secondo obiettivo raggiunto, eccomi.

Se vuoi che la macro venga attiva SOLO quando c'è un cambiamento in quelle specifiche righe, prova con questa variante:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("R")) Is Nothing Then
    For i = 26 To 655 Step 21
        If Target.Row = i Then
            Stop
            Call AggPROD
            MsgBox "Aggiornamento Eseguito"
            Exit For
        End If
    Next i
End If
End Sub


Ho messo uno Stop per consentirti delle prove (se va bene, toglilo).

Fai sapere. Ciao,
Mario
Post: 175
Registrato il: 13/12/2015
Città: MILANO
Età: 58
Utente Junior
2010
OFFLINE
22/05/2017 05:59

Ciao Mario,
scusa il ritardo nella risposta. Ma ieri pomeriggio una buca stradale mi ha lasciato come ricordo fratture a 2 costole e un gomito rotto.
In ogni caso tutto funziona (macro e braccio dx, peccato che io sono mancino....)

Grazie ancora.
E dolori permettendo, a presto.
[Modificato da BG66 22/05/2017 13:55]
BG66
Excel 2010
Post: 387
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
OFFLINE
22/05/2017 06:40

Ciao Gene
mi dispiace per l'incidente. Ti auguro una pronta guarigione per ... deliziarci con i tuoi quesiti [SM=x423028]

Ciao,
Mario
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]
Macro per inserire in cella valore calcolato da formula (13 messaggi, agg.: 01/05/2018 18:46)
Costruire 4006 fogli con macro (12 messaggi, agg.: 03/04/2020 20:13)
Risolutore con macro e indicizzazione (6 messaggi, agg.: 07/04/2020 21:11)
Macro con pausa Apri-Aggiorna-Chiudi (16 messaggi, agg.: 12/07/2018 09:31)
File combinato word con excel (2 messaggi, agg.: 27/07/2020 23:01)
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 09:19. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com