Alla prossima
Verdemont
Moderatori: Anthony47, Flash30005

Sub ContaEv5()
' Parte 1 - assegnazioni valori e azzeramento contatori
UR = Range("G" & Rows.Count).End(xlUp).Row 'conta le righe con dati nella colonna A
Range("L2:N10000").ClearContents ' pulisce le colonne C. D e E a senza eliminare la testata in riga 1
LE = Range("I2").Value '<<<<< il dato da ricercare
NE = Range("J2").Value '<<<< Numero presenze da cercare
MaxC = Range("K2").Value '<<<< In "J2" ho inserito la variabile max intervallo
Conta = 0 ' il contatore delle presenze
RRp = 2 ' riga dove scriverà i dati
RC = [H2] - 1 ' Azzeramento contatore per conteggio differenza righe
'<<<<<<<<<< fine parte 1
For RR = [H2] To [H3] 'ciclo for next da 1 alla fine delle righe esistenti
If Range("G" & RR).Value = LE Then Conta = Conta + 1 'condizione: se valore in cella G riga RR = al valore ricercato LE il contatore Conta aumenta di 1
If RR - RC = MaxC Then Range("L" & RRp).Value = Conta 'Se la differenza riga attuale - RC = MaxC allora scrive in colonna C riga RRp il valore di Conta
If Conta = NE Then Range("L" & RRp).Value = RR - RC ' condizione: se conta = NE scrive in colonna C riga RRp il valore della differenza riga attuale e RC
If Conta = NE Or RR - RC = MaxC Then 'in tutte e due le condizioni esegue il contenuto di questa If
Range("M" & RRp).Value = RC + 1 'riga inizio range
Range("N" & RRp).Value = RR ' in E il valore della riga attuale
Conta = 0 'azzera il contatore Conta
RRp = RRp + 1 'aggiunge 1 alla variabile RRp per scrivere nella riga successiva
RC = RR ' RC assume il valore di RR
End If 'Fine condizione
Next RR ' va alla riga successiva
' qui il ciclo For next è finito
Range("L" & RRp).Value = Conta ' scrive il residuo Conta
Range("M" & RRp).Value = RC + 1 ' Riga Iniziale
Range("N" & RRp).Value = RR - 1 'Riga finale è stato detratto 1 perché RR assume sempre un valore maggiore di quello stabilito alla fine del ciclo For Next
End Sub
'...
If Conta <> 0 Then '<<<<<<<<< Aggiungere questa riga
Range("L" & RRp).Value = Conta ' scrive il residuo Conta
Range("M" & RRp).Value = RC + 1 ' Riga Iniziale
Range("N" & RRp).Value = RR - 1 'Riga finale è stato detratto 1 perché RR assume sempre un valore maggiore di quello stabilito alla fine del ciclo For Next
End If '<<<<<<<<< Aggiungere questa riga
Endi SubTorna a Applicazioni Office Windows
| Excel apre solo una schermata bianca Autore: jameswilson |
Forum: Applicazioni Office Windows Risposte: 1 |
| Inserire add.in nella barra di avvio veloce in excel 2003 Autore: Ricky0185 |
Forum: Applicazioni Office Windows Risposte: 4 |
| Excel: problema con date se devo unirle a testi Autore: valle1975 |
Forum: Applicazioni Office Windows Risposte: 7 |
Visitano il forum: Nessuno e 26 ospiti