Condividi:        

EXcel Trova numero e conta

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

Re: EXcel Trova numero e conta

Postdi Flash30005 » 16/05/10 00:11

Ma se le estrazioni sono capovolte
perché mi evidenzi il "12" della riga 4 e non quello che sta in fondo alle righe (dalla 4000ª riga in sù)? :roll:
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-

Sponsor
 

Re: EXcel Trova numero e conta

Postdi Statix » 16/05/10 00:21

Ciao Flash30005,
le estrazioni postate sono un esempio,
la riga 4 è l'ultima estrazione uscita,
la ricerca va fatta a ritroso,
motivo se ho
riga 7 il 19
riga 15 c'è il 12
riga 17 il 14

il numero da prendere è il 19
e non il 14
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: EXcel Trova numero e conta

Postdi Anthony47 » 16/05/10 23:13

Avrei modificato la macro Trova come segue (compreso le definizioni iniziali):
Codice: Seleziona tutto
Public Urs, Vett(30, 11), Vr, ValN, NV As Integer
Sub Trova()
Urs = Worksheets("Foglio1").Range("C" & Rows.Count).End(xlUp).Row
NV = Range("K4").Value
Range("M4:V4").ClearContents
Range("C4:G" & Urs).Interior.ColorIndex = 0 'ClearFormats
ValN = Range("J4").Value
Vr = 0
For I = 0 To 30
For J = 0 To 11
Vett(I, J) = 0
Next J
Next I
For RR = 4 To Urs
    For CC = 3 To 7
        If Cells(RR, CC).Value = ValN Then
       
        Cells(RR, CC).Interior.ColorIndex = 44
        Vr = Vr + 1
        Vett(Vr, 0) = RR
        If NV = Vr Then GoTo salta
        End If
    Next CC
Next RR
salta:
'Call Trova2
'For I = 0 To Vr
'MsgBox (Vett(I, 0))
'Next I
Call trova3
End Sub

E ho inserito questa Trova3:
Codice: Seleziona tutto
Sub trova3()
J4Vett = ([J4] - 1) Mod 10 + 1
For I = [K4] To 2 Step -1
 For J = Vett(I, 0) - 1 To Vett(I - 1, 0) Step -1
  For K = 4 To 0 Step -1
  FlUno = 0
  For L = 0 To 9
   Cells(J, 3 + K).Select
   If Cells(J, 3 + K) = Cells(3, 13 + L) And Cells(J, 3 + K) <> [J4] Then
   Cells(J, 3 + K).Interior.ColorIndex = 6
   FlUno = 1
   Vett(I, L + 1) = 1
   'MsgBox (I & "-" & L + 1)
   End If
  Next L
 Next K
'I = 4
 If FlUno > 0 Then
 Vett(I, J4Vett) = 1: End If
 Next J
Next I
For L = 0 To 9
 For I = [K4] To 2 Step -1
  Cells(4, 13 + L) = Cells(4, 13 + L) + Vett(I, L + 1)
  Next I
 Next L
End Sub

Ma avverto che non sono cerrto della mia interpretazione del problema...
Non so se la complessita' delle formule trovate nelle celle M4:V4 e' giustificata o meno; io ho usato In M3
Codice: Seleziona tutto
=INT((J4-1)/10)*10+1
e nelle adiacenti
Codice: Seleziona tutto
=M3+1



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

Re: EXcel Trova numero e conta

Postdi Statix » 16/05/10 23:31

Ciao Anthony47,
provato la macro,ma c'è ancora qualcosa che non va,
la macro mi evidenzia e conta tutti i numeri della decina di ricerca,
la macro dopo aver trovato il numero di J4
dopo deve evidenziare e contare solo la prima occorrenza dei numeri che trova nella riga precedente all'uscita
ti allego foto di un esempio vengono contati solo quelli evidenziati in giallo cioè la prima cella o celle che trova in riga.
Immagine
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: EXcel Trova numero e conta

Postdi Anthony47 » 17/05/10 00:38

Questa Trova3?
Codice: Seleziona tutto
Sub trova3()
J4Vett = ([J4] - 1) Mod 10 + 1
For I = [K4] To 2 Step -1
    For J = Vett(I, 0) - 1 To Vett(I - 1, 0) Step -1
    FlUno = 0
        For K = 4 To 0 Step -1
            For L = 0 To 9
            Cells(J, 3 + K).Select
            If Cells(J, 3 + K) = Cells(3, 13 + L) And Cells(J, 3 + K) <> [J4] Then
            Cells(J, 3 + K).Interior.ColorIndex = 6
            FlUno = 1
            Vett(I, L + 1) = 1
            'MsgBox (I & "-" & L + 1)
            End If
            Next L
        Next K
        If J = Vett(I - 1, 0) Then
        If FlUno > 0 Then
        Vett(I, J4Vett) = 1: End If
        End If
        If FlUno > 0 Then GoTo NextRng
    Next J
NextRng:
Next I
For L = 0 To 9
    For I = [K4] To 2 Step -1
        Cells(4, 13 + L) = Cells(4, 13 + L) + Vett(I, L + 1)
    Next I
Next L
End Sub

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

Re: EXcel Trova numero e conta

Postdi Statix » 17/05/10 01:00

Ok ci siamo quasi,c'è bisogno solo di un piccolo ritocco,
ti allego foto di casi particolari in cui bisogna contare anche il numero in arancione
alcuni esempi che possono capitare,
----------------------------------------------------------
nel primo
evidenzio il 16 range F18
come prima occorrenza ho 11-16 range C17-F17 e vengono contati
riparto dal 16 range F17
come prima occorrenza ho il 14 range G14 e viene contato
riparto dal 16 range C11
come prima occorrenza ho il 17 range G9 e viene contato
riparto dal 16 C4
come prima occorenza nulla
--------------------------------------------------
nel secondo caso
evidenzio il 16 range L18
come prima occorrenza ho il 11-13-16 e vengono contati
riparto dal 16 range L17
come prima occorrenza ho il 14 range M14 e viene contato
riparto dal 16 range I11
come prima occorrenza ho il 16 C4 e viene contato
riparto dal 16 range C4
come prima occorrenza nulla
------------------------------------------
ecco come la macro deve gestire i dati,
spero che con questi esempi sia stato un pò più chiaro.

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

Re: EXcel Trova numero e conta

Postdi Anthony47 » 17/05/10 01:25

Dici che la macro non fa come hai descritto per i due casi particolari?
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXcel Trova numero e conta

Postdi Statix » 17/05/10 01:28

La macro funziona bene, ho controllato alcuni casi,
come quelli descritti sopra, non lo fà.
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: EXcel Trova numero e conta

Postdi Statix » 17/05/10 08:58

Ciao Anthony,
ho fatto altre verifiche,
ho notato che quando il numero in arancione è affiancato da un numero del range M4:V4 (in giallo),
la macro svolge perfettamente il suo lavoro,cioè me lo conta,
invece se tra 2 numeri in arancione non ci sono numeri del range M4:V4(in giallo ) non me lo conta.
per fare un test basta che metti 3/4 numeri uno sotto l'altro come in questa foto,
il numero 12 deve essere contatto 3 volte
Immagine
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: EXcel Trova numero e conta

Postdi Statix » 17/05/10 09:21

ti allego un altro esempio,
in questo caso il numero 12 deve esere contato 2 volte,
riepilogando,
se nella stessa riga del 12 c'è anche un giallo la macro funziona bene,
invece se tra due 12 in arancione non ci sono numeri in giallo cioè della stessa decina,deve contare la prima occorrenza
che in questo caso è lo stesso numero 12.
Immagine
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: EXcel Trova numero e conta

Postdi Anthony47 » 17/05/10 09:55

Penultima versione di Trova3:
Codice: Seleziona tutto
Sub trova3()
J4Vett = ([J4] - 1) Mod 10 + 1
For I = [K4] To 2 Step -1
    FlDue = 0
    For J = Vett(I, 0) - 1 To Vett(I - 1, 0) Step -1
    FlUno = 0
        For K = 4 To 0 Step -1
            For L = 0 To 9
            Cells(J, 3 + K).Select
            If Cells(J, 3 + K) = Cells(3, 13 + L) And Cells(J, 3 + K) <> [J4] Then
              Cells(J, 3 + K).Interior.ColorIndex = 6
              FlUno = 1: FlDue = 1
              Vett(I, L + 1) = 1
              'MsgBox (I & "-" & L + 1)
            End If
            Next L
        Next K
        If J = Vett(I - 1, 0) Then
        If FlUno > 0 Or FlDue = 0 Then
        Vett(I, J4Vett) = 1: End If
        End If
        If FlUno > 0 Then GoTo NextRng
    Next J
NextRng:
Next I
For L = 0 To 9
    For I = [K4] To 2 Step -1
        Cells(4, 13 + L) = Cells(4, 13 + L) + Vett(I, L + 1)
    Next I
Next L
End Sub

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

Re: EXcel Trova numero e conta

Postdi Statix » 17/05/10 11:33

Ciao Anthony47,
la macro funziona alla grande,per il momento non ho rilevato nessun altro caso particolare,
visto che hai scritto penultima versione Trova3 ,ti aspetti qualche altra modifica ? :)
spero di no. :) :)
non so come ringraziarti per la tua disponibilità,
grazie,sei bravissimo.
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: EXcel Trova numero e conta

Postdi Statix » 17/05/10 11:37

scusatemi, :oops:
mi ero dimenticato di ringraziare Flash30005,
grazie Flash30005 :)
alla prossima
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: EXcel Trova numero e conta

Postdi Anthony47 » 17/05/10 13:47

Come metodo io non spaccio mai i miei sviluppi come "ultima versione"...

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

Re: EXcel Trova numero e conta

Postdi Flash30005 » 17/05/10 22:11

Non ti preoccupare Statix,
stavolta " mi ero perso" non facevo in tempo a fare le dovute modifiche che mi ritrovavo post con immagini diverse da quello che faceva la mia macro e...
mi sono messo in finestra :lol:

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 Trova numero e conta

Postdi Statix » 18/05/10 14:13

Ciao Anthony47,
Ahi,ahi ,manca l'ultima un occorrenza,
come vedi dalla foto il numero in blu non me lo evidenzia e non lo conta
Immagine
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: EXcel Trova numero e conta

Postdi Anthony47 » 18/05/10 14:21

Non lo conta perche' non e' all' interno di un blocco che comincia con 6 e finisce con 6; l' area di ricerca finisce sulla riga 20 (cioe' include riga 20 e successive). Son cambiate le specifiche?

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

Re: EXcel Trova numero e conta

Postdi Statix » 18/05/10 14:25

Ho modificato qua,adesso lo evidenzia,
dovrei solo contarlo,


Codice: Seleziona tutto
Sub Trova_Estratto1()
J4Vett = ([J4] - 1) Mod 10 + 1
For I = [K4] To [color=#FF0000]1 [/color]Step -1
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: EXcel Trova numero e conta

Postdi Statix » 18/05/10 14:29

Il blocco comincia con il 2.
ho modificato questa riga adesso lo evidenzia,devo solo contarlo
Sub Trova_Estratto1()
J4Vett = ([J4] - 1) Mod 10 + 1
For I = [K4] To 1 Step -1
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: EXcel Trova numero e conta

Postdi Statix » 18/05/10 14:33

ok mi sembra che vada tutto bene,ho modificato anche qua,
aspetto solo la tua conferma se è giusto
For L = 0 To 9
For I = [K4] To 1 Step -1
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

PrecedenteProssimo

Torna a Applicazioni Office Windows


Topic correlati a "EXcel Trova numero e conta":


Chi c’è in linea

Visitano il forum: Ricky0185 e 49 ospiti