Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Togliere numeri da un intervallo con criterio

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

Togliere numeri da un intervallo con criterio

Postdi ikwae » 29/07/20 15:26

Ciao a tutti … Mi sono accorto che nella mia macro manca un confronto che non
riesco a fare e sono bloccato con il mio progettino e quindi chiedo aiuto a tutto il Forum.

L’aiuto che cerco è una semplice macro che compie le seguenti operazioni.
1° Passo) Copia l’intervallo S7:V7 e incollare da S6 solo i valori (servirà per il messaggio finale).

2° Passo) Prendere il primo numero in colonna AL, in questo caso l’80 lo deve trovare nell’intervallo ("B5:F22,B24:F41,B43:F60")
Se lo trova: lo cancella momentaneamente dall’intervallo controlla che non ci sono variazioni, positive o negative, nei numeri nelle celle S7 con S6; o T7 con T6; o U7 con U6; o V7 con V6 se ci sono variazioni, anche una sola, lascia il numero 80 della cinquina al suo posto altrimenti se non ci sono variazioni lo cancella dall’intervallo.
2à occorrenza: come sopra …. ultima occorrenza: come sopra

*Prendere il secondo numero in colonna AL, in questo caso il 2 lo deve trovare nell’intervallo ("B5:F22,B24:F41,B43:F60")

1à occorrenza: lo cancella momentaneamente dall’intervallo controlla che non ci sono variazioni, positive o negative, nei numeri nelle celle S7 con S6; o T7 con T6; o U7 con U6; o V7 con V6 se ci sono variazioni, anche una sola, lascia il numero 2 della cinquina al suo posto altrimenti se non ci sono variazioni lo cancella dall’intervallo.
2à occorrenza: come sopra …. ultima occorrenza: come sopra

*Prendere il terzo numero in colonna AL, in questo caso il 14 segue il ciclo come sopra... prosegue di pari passo fino all’85

3° Passo) Conta le celle vuote che si sono create nell’intervallo ("B5:F22,B24:F41,B43:F60") e se sono <= a 60 non fa nulla se invece le celle vuote sono maggiori di 60 la macro dovrebbe copiare “tot” numeri e metterli in coda in colonna AM

Con un esempio (60 sono i numeri presenti in colonna AM):
se le celle vuote sono da 0 a 60 compresi la macro prosegue il ciclo normalmente.
se le celle vuote sono 70 la macro copia (70-60=10) 10 numeri (AM3:AM12) e incolla in coda in AM
Se le celle vuote sono 88 la macro copia (88-60=28) 28 numeri (AM3:AM30) e incolla in coda in AM
Se le celle vuote sono 62 la macro copia (62-60=2) 2 numeri (AM3:AM4) e incolla in coda in AM

4° Passo) confrontare i numeri nelle celle S7(15) con S6(15); o T7(2) con T6(2); o U7(3) con U6(3); o V7(3) con V6(3) se ci sono variazioni, anche una sola, deve dare un messaggio di errore e blocca il ciclo se il confronto è identico, in ogni cella, la macro
finisce senza dare altri avvisi.

La macro verrà replicata per 11 volte e inserita in un ciclo e, se possibile, lasciare il range come descritto e anche il riferimento alle celle sempre se possibile, escludendo di dare un intervallo di confronto tipo S7:U7 o S6:U6 ma puntare direttamente alle celle perché nel proseguo del progettino è probabile che le celle del confronto vengono dislocate, non necessariamente vicine, ma dove c’è posto o più “comodo” per la copia di altre macro utilizzate nel progettino.
NON prendere come riferimento la somma delle celle di confronto perché il valore delle celle può variare alla cancellazione dei numeri nelle cinquine mentre la somma può rimane invariata!

:oops: :oops: Leggendo il tutto sembra più un DIKTAT che una richiesta di aiuto ma non è così è quello che spero che venga fatto. Spiegare nel dettaglio cosa si desidera anziché chiedere ulteriori modifiche in seguito.

Allego un file con due fogli uno “org” per avere idea della struttura dove la macro deve lavorare e un foglio “prove” che è stato eliminato tutto quello che non interessa alla macro e “manomesso” le cinquine per maggior punteggio delle celle di confronto… ringrazio anticipatamente tutti coloro che mi aiuteranno 73 ikwae
http://www.filedropper.com/toglierenume ... oncriterio
Excel 2007
Avatar utente
ikwae
Utente Senior
 
Post: 172
Iscritto il: 27/12/17 23:14

Sponsor
 

Re: Togliere numeri da un intervallo con criterio

Postdi Anthony47 » 29/07/20 23:00

I tuoi messaggi hanno, oramai lo sai, un tempo di assimilazione piu' lunghi del normale, quindi devi aspettare pazientemente che mi avanzi un po' di tempo e un po' di pazienza...
Comunque gia' la prima lettura apre dei punti interrogativi a cui non ho saputo rispondere; ad esempio, nel 4° Passo scrivi:
confrontare i numeri nelle celle S7(15) con S6(15); o T7(2) con T6(2); o U7(3) con U6(3); o V7(3) con V6(3) se ci sono variazioni, anche una sola, deve dare un messaggio di errore e blocca il ciclo se il confronto è identico, in ogni cella, la macro finisce senza dare altri avvisi.
Ma nel 2° passo viene imposto, per la modifica dei dati, che S7:V7 rimangano invariati (altrimenti nessuna modifica); mentre nel 3° passo si va ad incrementare la lista in colonna AM, che non figura tra i "precedenti" delle formule in S7:U7. Allora a che pro questo controllo, che non puo' che confermare che S7:V7 non sono mutati?

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

Re: Togliere numeri da un intervallo con criterio

Postdi ikwae » 30/07/20 08:57

Ciao Anthony sempre molto gentile a rispondermi … rispondo alla tua naturale domanda con tre motivi il primo perché secondo me la macro dovrebbe finire con il controllo altrimenti come faccio a sapere che è tutto a posto?
Questo non vuol dire che non ho fiducia dell’operato della tua macro ne sono certo che funzionerà come da richiesta ma solo una semplice tranquillità che tutto è andato bene dato che ci sono “attive” 6.930 formule con pieni “poteri” che puntano tutte esclusivamente alla “cassa” (S7:V7).
Secondo cercherò di estrapolare per avere a disposizione sia il controllo del confronto con relativo messaggio di errore che posso inserire a piacere come controllo prima durante e dopo le operazioni del ciclo. Se non riesco a estrapolare il confronto con relativo messaggio di errore la userò in originale ma solo al completamento delle operazioni e mi spiego meglio.
Una volta che la macro ha fatto il suo lavoro si “svuota” rimane “innocua” perché una volta tolti i numeri dall’intervallo non li può togliere un’altra volta (anche se presenti in colonna) di conseguenza non può mettere in coda dei numeri perché non trova celle vuote quindi se si commenta (’) la parte iniziale della copia e incolla solo valori ecco che rimane a disposizione una macro di controllo, con relativo messaggio, con la sola limitazione che deve essere usata, per controlli a piacere, esclusivamente dopo che fatto il suo lavoro primario.
Per il tempo che ti necessita da parte mia non avrai mai un “sollecito” per finire la macro quindi posso aspettare tranquillamente perché ormai so, da anni, che prima o poi arriverà la migliore soluzione come da richiesta.
L’unica cosa che posso ricordare, se possibile, di lasciare l’intervallo e il puntamento alle celle come descritto nella richiesta iniziale … cordialmente ikwae
Excel 2007
Avatar utente
ikwae
Utente Senior
 
Post: 172
Iscritto il: 27/12/17 23:14


Torna a Applicazioni Office Windows


Topic correlati a "Togliere numeri da un intervallo con criterio":


Chi c’è in linea

Visitano il forum: raimea e 3 ospiti