ultima cella pari con dati
Hai un problema con Excel? 
ultima cella pari con dati
di Gerry (utente non iscritto) data: 04/11/2015 23:45:49
salve dovrei risolvere un problema con excel, nel foglio 1 nella colonna c8 in giu sono inseriti sei numeri quello che dovrei fare tramite un pulsante copiare l'utima cella pari, con un valore copiarlo e incollarlo nel foglio 2 nela cella d8, sempre nel foglio 1 nella colonna c8 in giu, ultima cella dispari contenete un valore, copiarlo ed incollarlo nel foglio 2, nella cella e9.
di cromagno data: 05/11/2015 02:41:13
Ciao Gerry,
non son sicuro di aver capito bene quello che vuoi fare (per questo un file di esempio è sempre ben accetto)...
ma non vedo la necessità di ricorrere al VBA per una cosa del genere.
Comunque, stando a quello che ho capito, nel file che allego al "Foglio3" ci sono 2 delle varie formule che potresti usare senza scomodare il VBA:
cella "D8" (formula matriciale):
=INDICE(Foglio1!$C$8:$C$13;MAX(--(RESTO(Foglio1!$C$8:$C$13;2)=0)*RIF.RIGA(Foglio1!$C$8:$C$13))-7)
cella "E9" (formula matriciale):
=SE.ERRORE(INDICE(Foglio1!$C$8:$C$13;MAX(--(RESTO(Foglio1!$C$8:$C$13;2)=1)*RIF.RIGA(Foglio1!$C$8:$C$13))-7);0)
Nel "Foglio2" c'è il pulsante con il seguente codice:
Option Explicit
Sub importa()
Dim dati As Range, pari As Integer, dispari As Integer, cella As Range
Set dati = Worksheets("Foglio1").Range("C8:C13")
For Each cella In dati
If cella.Value Mod 2 = 0 Then
pari = cella.Value
Else
dispari = cella.Value
End If
Next
Worksheets("Foglio2").Range("D8").Value = pari
Worksheets("Foglio2").Range("E9").Value = dispari
Set dati = Nothing
End Sub
|
di ninai data: 05/11/2015 08:15:54
ciao
alternative alle formule di cromagno:
=CERCA(2;1/(RESTO(Foglio1!$C$8:$C$13;2)=0);Foglio1!$C$8:$C$13)
e
=CERCA(2;1/RESTO(Foglio1!$C$8:$C$13;2);Foglio1!$C$8:$C$13)
di Gerry (utente non iscritto) data: 05/11/2015 13:16:27
grazie per aver risposto alla mia richiesta di aiuto, provo a spegare meglio quello che dovrei fare ed allego un file di esempio.
La prima cosa da chiarire è che il valore dispari o pari non è il numero inserito nella cella ma la cella stessa. vedi foglio allegato il primo valore inserito si trova nella cella C10 perciò corrisponde a pari, cella C11 Dispari. Altra cosa le celle non sempre sono piene, una cella può essere anche vuota. Ora stabilita la cella se pari o dispari si potrebbe copiare il valore e incollarlo nel foglio due facendo doppio clik sulla cella. esempio:
foglio 1 doppio clik sulla cella C15 copio e incollo il valore nel folio 2 cella E9.
Foglio 1 doppio clik sulla cella C18 copio e incollo il valore nel foglio 2 cella D8.
di Cucù data: 05/11/2015 14:14:27
Non credo di aver capito cmq prova il file allegato.
Cucù
di cromagno data: 05/11/2015 14:51:44
Scusa, ma adesso perchè stai parlando di doppio click???
All'inizio non era un pulsante???
di Cucù data: 05/11/2015 14:59:38
Infatti la mia proposta era come da prima richiesta e cioè "tramite un pulsante"
Cucù
di Gerry (utente non iscritto) data: 05/11/2015 18:44:52
e vero all'inizio ho parlato di pulsante, poi valutando il lavoro da fare mi sono accorto che con il pulsante non posso ottenere il lavoro da fare, mi spiego nel foglio 1 io inseriso dati continuamente ogni giorno, se volessi selezionare un valore retroattivo con il pulsante e la richiesta iniziale non posso perche mi seleziona sempre le ultime celle con dati mente io devo poter sezionare un valore qualsiasi e se ci faccio doppio clik sopra me lo deve posizionare nel foglio 2 se il valore nel foglio 1 è presente in una cella pari, sul foglio 2 verra posizionato nella cella pari altrimenti in quella dispara. In questo momento non posso provare i fili allegati perchè uso excel 2003 proverò ad aprirli su un pc con excel 2010, però non so se risolvono il problema.
di Cucù data: 05/11/2015 18:57:57
Per quanto mi riguarda aspetto che tu possa provare il file prima di mettermi a lavoro anche perchè magari nel frattempo cambi nuovamente idea...
Bye Cucù
di cromagno data: 05/11/2015 19:04:14
Prova il file allegato (modalità di compatibilità per excel 2003).
Il campo in cui funziona il codice è il range "C8:C100" del "Foglio1"
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim dati As Range
Set dati = Worksheets("Foglio1").Range("C8:C100")
If Not Intersect(Target, dati) Is Nothing And Target.Value <> "" Then
If Target.Row Mod 2 = 0 Then
Worksheets("Foglio2").Range("D8").Value = Target.Value
Else
Worksheets("Foglio2").Range("E9").Value = Target.Value
End If
End If
Set dati = Nothing
End Sub
|
di cromagno data: 05/11/2015 19:08:08
Ciao Cucù,
in effetti non hai tutti i torti
di Gerry (utente non iscritto) data: 05/11/2015 20:46:16
Ciao, ho provato il file di Cucù e il problema e quando ci sono delle celle vuote. può andar bene anche il pulsante invece del doppio clik, l'iportante è che mi permetta di copiare le celle da me scelte tipo, cella o celle selezionate, e che faccia la distinzione fra celle pari e dispari. Grazie e scusate se ho cambiato idea, ma non avevo calcolato il problema delle celle vuote.
di Cucù data: 05/11/2015 21:02:52
in che senso "ho provato il file di Cucù e il problema e quando ci sono delle celle vuote."???
Se le celle sono vuote il codice le ignora fino a quando non trova la cella con un valore.
cit"quello che dovrei fare tramite un pulsante copiare l'utima cella pari, con un valore copiarlo e incollarlo nel foglio 2"
e quindi???
Caro gerry schiarisciti bene le idee e poi cerca di formulare il tuo quesito che sia quanto più chiaro e coinciso possibile!
Cucù
di cromagno data: 05/11/2015 21:08:54
Gerry,
ma l'ultimo file allegato lo hai provato?
Si sta incasinando un pó troppo sta discussione
di Gerry (utente non iscritto) data: 05/11/2015 21:49:13
scusate non avevo visto il codice allegato di cromagno, ho provato e funziona tutto a meraviglia grazie, e scusate ancora per la confusione.
Vuoi Approfondire?