Condividi:        

[EXCEL] Far scorrere dati avanti/ indietro

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

[EXCEL] Far scorrere dati avanti/ indietro

Postdi Statix » 20/03/08 21:38

Ciao a tutti,
ho una tabella come questa vedi foto allegata:
volevo sapere come fare inserendo un record in J7 visualizzare l'estrazione nel range K7:P7
e sotto in J9:P9 la successiva e con le celle avanti indietro farle scorrere di una:
esempio inserendo il record 5° mi visualizza il 5° e 6° record (come la foto)
premendo avanti mi deve visualizzare il 6°e il 7° premendo ancora il 7° e 8° cosi via,
e ovvio che con il tasto indietro mi faccia al ritroso

Immagine
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Sponsor
 

Re: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Anthony47 » 21/03/08 00:15

I dati relativi alle estrazioni li "estrai" dall' elenco con CERCA.VERT. Per l' altro problema, ti fai 2 macro che associ a 2 pulsanti che chiami Avanti e Indietro, che contengano
Codice: Seleziona tutto
Range("J7").value = Range("J7").value +1
'replicare per J9


Idem (con piccola variazione) per fare il meno.

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

Re: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Statix » 21/03/08 13:42

Ciao Anthony47,
non riesco ad associare le macro ai tasti avanti e indietro.(foglio1)
e neanche con cerca.verticale ,i dati sono nel foglio2
sono proprio una frana,riesco ad imparare solo dopo aver visto un esempio,
saresti cosi gentile di postarmi l'esempio.
grazie
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Anthony47 » 21/03/08 14:49

Se i dati fossero come da immagine postata, metti in K7:
Codice: Seleziona tutto
=CERCA.VERT($J7;$A$2:$H$100;2;0)

Poi copi in L7:P7 e cambi in ogni cella l’ indice: 2->3->4->5->6->7
Poi copi K7:P7 in J9

Se i dati fossero in altro foglio:
Codice: Seleziona tutto
=CERCA.VERT(Foglio2!$J7;$A$2:$H$100;2;0)


Per associare le macro ai pulsanti:
-Durante la fase di creazione dei pulsanti ti verra’ chiesto a quale macro vuoi associarli, basta scegliere dall’ elenco
-Se le macro vengono create dopo aver creato i pulsanti, allora guarda l’ help on-line alla voce (Tab Ricerca libera) “Eseguire una macro”

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

Re: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Statix » 21/03/08 21:33

Ciao Anthony47,
scusami,ho provato ma non riesco a venirne a capo,
Codice: Seleziona tutto
ho messo in K7
 =CERCA.VERT($J7;$A$2:$H$100;2;0)
ho copiato le celle in  L7:P7  (mi visualizza la data ma non gli estratti)
ma non ho capito cambia indice  2->3->4->5->6->7
per i pulsanti non ci riesco proprio a capire come fare
ti allego il file test(ho messo i dati nel foglio2)




[url="http://www.freefilehosting.net/files/3dml3"]Cartel2.xls[/url]
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Statix » 21/03/08 21:35

Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Statix » 21/03/08 22:35

Con un pò di pazienza sono riuscito a capire il cambio dell'indice,era da spostare 2->4>5>6>7>8 ed Ok la prima parte.
con i dati spostati su foglio 2 non ci sono riuscito
i pulsanti invece stò a zero.
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Statix » 21/03/08 22:56

Ok sono riuscito a creare dei pulsanti,ho inserito la macro replicata e funziona,
volevo chiedere se era possibile ,fare in modo che i dati arrivati alla fine (cioe all'ultimo record o al primo record si blocchi)
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Flash30005 » 22/03/08 00:41

Statix ha scritto:Ok sono riuscito a creare dei pulsanti, ho inserito la macro replicata e funziona,
volevo chiedere se era possibile ,fare in modo che i dati arrivati alla fine (cioe all'ultimo record o al primo record si blocchi)

Mentre preparavo la risposta ho visto che hai già fatto due post :(
e hai risolto da solo ma ti invio tutto l'occorrente che eventualmente potra utilizzarlo qualche altro utente...
Inserisci in B5 il valore 1,
in B7 la formula:
Codice: Seleziona tutto
=B5+1

In C5 (come da figura):
Immagine
Codice: Seleziona tutto
=CERCA.VERT(B5;Foglio2!A3:H19;2)

in D5:
Codice: Seleziona tutto
=CERCA.VERT(B5;Foglio2!A3:H19;4)

Stessa formula per E5, F5, G5, H5 (varia solo l'indice che sarà rispettivamente 5, 6, 7, 8, invece di 2 e 4 idonee per C5 e D5)
In C7
Ripeterai la formula di C5 solo che varierà il Valore B7 invece di B5

Realizzazione delle macro:
macro avanti
Codice: Seleziona tutto
Sub Avanti()
If Range("D5").Value = Range("D7").Value And Range("E5").Value = Range("E7").Value And Range("F5").Value = Range("F7").Value And Range("G5").Value = Range("G7").Value And Range("H5").Value = Range("H7").Value Then
MsgBox "Ultima estrazione disponibile"
Exit Sub
End If
Range("B5").Value = Range("B5").Value + 1
End Sub


Questa macro invia un messaggio di "Ultima estrazione disponibile" nel caso si prema il pulsante avanti oltre la matrice dei dati
(in effetti confronta che tutti i 5 dati corrispondano: è praticamente impossibile il verificarsi di una cinquina su due estrazioni consecutive nella stessa ruota)

macro indietro
Codice: Seleziona tutto
Sub Indietro()
If Range("B5").Value = 1 Then
MsgBox "Non ci sono altre estrazioni precedenti a questa"
Exit Sub
End If
Range("B5").Value = Range("B5").Value - 1
End Sub


stesso messaggio di avviso, questa volta in maniera più semplice, quando si è arrivati al record 1

Infine crei due frecce, come da immagine, e assegni (tasto dx del mouse) la macro Indietro alla freccia su e avanti alla freccia giù.
Immagine
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: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Anthony47 » 22/03/08 01:42

Anche io aperto il post di Statix quando mancava quello di Flash, poi sono andato a farmi una birra; purtroppo quello che avevo scritto non sempre collima con quanto nel frattempo ha scritto Flash (ci sono sempre piu’ metodi per ottenere lo stesso risultato). Dico lo stesso la mia, siate tolleranti. . .

Non mi stanchero’ mai di raccomandare la consultazione dell’ help on-line di excel; una vera miniera di informazioni. Alla voce Cerca.Vert ti avrebbe subito spiegato ch cosa si intende per “indice”.
Dici che con i dati spostati su foglio 2 non sei riuscito a far funzionare la formula: mi dici dove sono i tuoi dati e che formula hai provato?

Per fermare il lavoro delle macro quando hai raggiunto i limiti, puoi aggiungere
-Su Avanti
Codice: Seleziona tutto
If Range("J7").value > 99 Then Range("J7").value =99   'se 100 e’ l’ ultimo elemento
If Range("J9").value > 100 Then Range("J9").value =100   'se 100 e’ l’ ultimo elemento


-Su Indietro
Analogo, ma con test su “<” del valore piu’ basso che ti serve.

Tieni presente che se J9 fosse sempre J7+1, allora puoi semplificare le macro inserendo solo l’ incremento o decremento di Range("J7").value e mettendo in J9 appunto la formula =J7+1
In questa ipotesi potresti addirittura abbandonare le macro e i pulsanti, a favore di una "barra di scorrimento":
-disegni la barra di scorrimento:
---attivi la barra di strumenti "Moduli" (Menu /Visualizza /Barra degli strumenti; spunti Moduli)
---cerchi il simbolo (ti fermi col mouse sopra i vari simboli, dopo un paio di secondi ti compare la descrizione)
---selezioni il simbolo, ti muovi sul foglio (la forma del mouse e' cambiata), disegni il simbolo dove ti piace
---col simbolo selezionato, tasto dx, scegli Formato controllo, tab Controlli
---Valore minimo: 1; valore massimo 100 (o il massimo che tu hai); Avanzamento 1; Collegamento cella J7
---chiudi con Ok
-disselezioni la barra di scorrimento, poi clicchi le frecce Su o Giu' e vedi l' effetto che fa.

Per Flash: io non mi fido mai a fare le Cerca.Vert con “intervallo” mancante o 1, perche’ ti restituisce sempre un valore, e non sai mai se e’ quello giusto.

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

Re: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Flash30005 » 22/03/08 14:31

Mi scuso innanzitutto di essere stato prolisso nel mio post precedente ma avevo visto una certa difficoltà da parte di Statix nell'uso delle macro e nella funzione cerca.vert e quindi ho pensato che fornire una soluzione pratica fosse una cosa positiva anche, se, come dice bene Anthony è spiegato ampiamente nell'Help.
Quanti italiani leggono le istruzioni prima di usare una qualsiasi tecnologia? :roll:
Difetto o pregio? Mah!

per quanto riguarda invece il discorso fine tabella con i codici
Codice: Seleziona tutto
If Range("J7").value > 99 Then Range("J7").value =99   'se 100 e’ l’ ultimo elemento
If Range("J9").value > 100 Then Range("J9").value =100   'se 100 e’ l’ ultimo elemento

sono un po' contrario perché, per questo utilizzo, la tabella potrebbe non avere un limite preciso e l'esempio di Statix riporta solo una minima parte di estrazioni (dal 1939) e penso che se volesse avere sempre tutte le estrazioni dovrebbe avere almeno 4000 record che vanno incrementati (oggi) di 3 record per settimana quindi credo che la soluzione con confronto delle due "uscite" svincola dal numero di riga.

Per Statix io non avrei messo come riferimento il record (di B5 o B7) ma la data che è in C5 perché con il Cerca.Vert della data potresti trovare velocemente l'estrazione che ti interessa e da lì proseguire con l'Avanti e/o Indietro (vedi "macro in excel" del 15/03/2008 con essa oltre ad effettuare la visione delle estrazioni ottengo anche una verifica di un eventuale sistema giocato), comunque vedi tu cosa ti occorre e applica i consigli che ti danno in questo forum e vedrai che risolvi sempre.
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: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Anthony47 » 22/03/08 20:01

Flash3005 ha scritto:. . credo che la soluzione con confronto delle due "uscite" svincola dal numero di riga

Giustissima osservazione!

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

Re: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Statix » 22/03/08 20:08

Ciao a tutti,
volevo ringraziare sia Anthony47 ,che Flash30005 per la loro disponibilità.
al momento ho preferito lasciare le cose come stanno,ritengo che con l'inserimento dei 2 record (a piacere)mi dia più
possibilità di confronto,anche perche con le date dovrei inserire quelle giuste,per velocizzare lo scorrimento dell'archivio ho aggiunto altri 2 pulsanti che mi incrementa di +100 o -100,
mi resta solo il modo di bloccare all'ultimo record o al primo in automatico,da considerare che i record sono oltre 4000 e ogni settimana se ne aggiungono 3 ,come ha detto Flash30005.
inoltre vorrei estendere l'archivio anche alle altre ruote,
cosi mi consigliate, di creare un pulsante per ogni ruota in modo che con un click mi selezioni la ruota?
e mi sposti il prelievo di dati dall''archivio.
come sempre mi serve un esempio per capire come muovermi.
allego un immagine provvisoria del precedente operato.
Immagine
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Flash30005 » 23/03/08 02:35

Statix ha scritto:...
anche perche con le date dovrei inserire quelle giuste ,per velocizzare lo scorrimento dell'archivio ho aggiunto altri 2 pulsanti che mi incrementa di +100 o -100,

Non è proprio così, se metti una data non "giusta" il Cerca.Vert si fermerà a quella più prossima in B5 e in B7 avrai la data giusta
Statix ha scritto:...
mi resta solo il modo di bloccare all'ultimo record o al primo in automatico

Nell'esempio precedente c'è il controllo del 1° e dell'ultimo record dovrebbe funzionare anche con +100 e -100
Statix ha scritto:...
inoltre vorrei estendere l'archivio anche alle altre ruote, cosi mi consigliate, di creare un pulsante per ogni ruota in modo che con un click mi selezioni la ruota?
come sempre mi serve un esempio per capire come muovermi.

io metterei due frecce "Ruota Successiva" e "Ruota Precedente" e vedendo l'esempio postato "macro in excel" del 15/03/2008 potrai notare che l'opzione Offset permette di spostarsi di una riga in + o in - (nel tuo caso, credo, lo spostamento dovrà essere fatto sulle colonne; dovrai usare column invece di row)
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: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Statix » 23/03/08 12:39

Ciao e Buona Pasqua a tutti,

per il controllo dei record all'indietro ho risolto come mi è stato suggerito da Anthony47
Codice: Seleziona tutto
If Range("E7").Value < 1 Then Range("E7").Value = 1
If Range("E9").Value < 2 Then Range("E9").Value = 2

cosi quando arriva al primo record mi imposta in E7 il primo record e in E9 il secondo.
con calma cercherò di risolvere con l'ultimo record dei dati.
Seguirò anche l'esempio di Flash30005 inserendo oltre che il record anche la data
cosi avro 2 opzioni di ricerca.

per la selezione delle ruote preferirei tramite pulsanti con relativa ruota(11 pulsanti)
mi resta solo che mi diate un piccolo esempio
i
Codice: Seleziona tutto
 dati sono in 60 colonne range A2:BH2
A2= record
B2= data (01/01/1871)
C2=giorno (01)
D2 =mese(01)
e2=anno (1871)
F2:J2 =5 estratti di Bari
K2:O2= 5 estratti Cagliari
e cosi via
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Statix » 23/03/08 14:44

Per bloccare in Avanti, stavo pensando di usare la formula
Codice: Seleziona tutto
=CONTA.NUMERI(Foglio3!A2:A8500)

per contare i record in archivio,cosi visualizzo in L2 i record presenti in archivio anche quando faccio un aggiornamento,
è possibile utilizzarla nella macro per avere il controllo dell'ultimo record
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Flash30005 » 23/03/08 14:50

Puoi risolvere la ricerca sia con 11 pulsanti che con l'offset (solo 2 pulsanti) ma il problema non sta qui ma la Ricerca.Vert del record che dovrebbe cambiare la propria matrice in funzione della colonna da ricercare oppure ancor meglio "allargare" la matrice a tutte le ruote (l'esempio precedente era limitato alla singola colonna di Napoli) e condizionarla ulteriormente (inserendo anche la condizione relativa alla ruota).
Vedrai che i maestri ti daranno qualche dritta ma non oggi che è Pasqua.
Auguri a tutti
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: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Flash30005 » 23/03/08 14:57

Statix ha scritto:Per bloccare in Avanti, stavo pensando di usare la formula
Codice: Seleziona tutto
=CONTA.NUMERI(Foglio3!A2:A8500)

per contare i record in archivio,cosi visualizzo in L2 i record presenti in archivio anche quando faccio un aggiornamento,
è possibile utilizzarla nella macro per avere il controllo dell'ultimo record

Mi chiamo Flash ma trovo sempre un messaggio in più appena invio una mia risposta: starò invecchiando? :(
Si il Conta.Numeri funziona come conteggio dei record devi provare ad usarlo nella macro perché non credo che dia problemi ma non vorrei impiegare la giornata di oggi a fare test...
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: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Statix » 23/03/08 15:48

Ok visto che avevo un oretta libera,ho provato a fare qualche modifica alla macro e ci sono riuscito ad avere il controllo dell'inizio e della fine dei record presenti in archivio,
con la formula in L2
Codice: Seleziona tutto
=CONTA.NUMERI(Foglio3!A2:A8500)

calcolo i record presenti in archivio,
Codice: Seleziona tutto
in L3 ho messo la formula =L2-1
e in L4 la formula =L2+1
Codice: Seleziona tutto
Sub Rettangolo1_Click()
Range("E7").Value = Range("E7").Value + 1
Range("E9").Value = Range("E9").Value + 1
If Range("E7").Value = Range("L2") Then Range("E7").Value = Range("L3")
If Range("E9").Value = Range("L4") Then Range("E9").Value = Range("L2")
End Sub
Sub Rettangolo2_Click()
Range("E7").Value = Range("E7").Value - 1
Range("E9").Value = Range("E9").Value - 1
If Range("E7").Value < 1 Then Range("E7").Value = 1
If Range("E9").Value < 2 Then Range("E9").Value = 2


End Sub
Sub Rettangolo3_Click()
Range("E7").Value = Range("E7").Value + 100
Range("E9").Value = Range("E9").Value + 100
If Range("E7").Value > Range("L2") Then Range("E7").Value = Range("L3")
If Range("E9").Value > Range("L4") Then Range("E9").Value = Range("L2")
End Sub
Sub Rettangolo4_Click()
Range("E7").Value = Range("E7").Value - 100
Range("E9").Value = Range("E9").Value - 100
If Range("E7").Value < 1 Then Range("E7").Value = 1
If Range("E9").Value < 2 Then Range("E9").Value = 2
End Sub

anche aggiornando l'archivio va tutto ok.
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: [EXCEL] Far scorrere dati avanti/ indietro

Postdi Flash30005 » 24/03/08 02:08

Statix ha scritto:Ok visto che avevo un oretta libera,ho provato a fare qualche modifica alla macro e ci sono riuscito ad avere il controllo dell'inizio e della fine dei record presenti in archivio,
con la formula in L2
Codice: Seleziona tutto
=CONTA.NUMERI(Foglio3!A2:A8500)

calcolo i record presenti in archivio,

io userei
Codice: Seleziona tutto
=MAX(Foglio3!A3:A8500)


Nella macro avanti di 1
Codice: Seleziona tutto
Sub Avanti_1()
If Range("B7").Value = Range("L2").Value Then
MsgBox "Ultima estrazione disponibile"
Exit Sub
End If
Range("B5").Value = Range("B5").Value + 1 '
End Sub

per avanti 100
Codice: Seleziona tutto
Sub Avanti_100()
If Range("B7").Value + 100 > Range("L2").Value Then
MsgBox "Procedere con una estrazione per volta"
Exit Sub
End If
Range("B5").Value = Range("B5").Value + 100
End Sub

Non metterei tutte quelle formule per ricavarmi il minimo record che, si sa, è 1
quindi ti ripropongo il codice del post precedente
Codice: Seleziona tutto
Sub Indietro_1()
If Range("B5").Value = 1 Then
MsgBox "Prima estrazione disponibile"
Exit Sub
End If
Range("B5").Value = Range("B5").Value - 1
End Sub

per indietro di 100
Codice: Seleziona tutto
Sub Indietro_100()
If Range("B5").Value -100 < 1 Then
MsgBox "Procedere con una estrazione per volta"
Exit Sub
End If
Range("B5").Value = Range("B5").Value - 100
End Sub
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-

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL] Far scorrere dati avanti/ indietro":


Chi c’è in linea

Visitano il forum: Nessuno e 44 ospiti