Buongiorno Flash,
1) le tabelle delle colonne H:L le ricopia la macro quando in colonna A rileva la presenza del numero 1, si possono
anche evitare di scrivere, è stato fatto solo per far vedere cosa succedeva, per poi andare avanti.
Le colonne N:R sono il risultato che dipende dalla differenza tra il numero della colonna B al fianco dell' 1 rilevato
e i numeri relativi alla tabella di colonna H:L. per cui nell'esempio postato, abbiamo che il primo 1 della colonna in A1
è corrisponde come numero 55, per cui i numeri da H2:L10, andrebbero sottratti al 55, come leggi in tabella U2:Y10.
e cosi per il secondo 1 in A14 a cui corrisponde in B14 il 52 e pertanto la tabella da H15:L23 dovrebbe sottrarre il 52
ad ogni numero rilevato. La macro che è nel foglio, purtroppo non riesco a farla lavorare per ogni tabella relativa al
numero corrispondente, ma come nel foglio postato, sottrae a tutte le tabelle l'ultimo numero rilevato e non i corrispondenti.
Inserisco la macro che ho rappezzato (presente nel foglio inviato) a cui penso manchi un blocco che ad ogni uno rilevato faccia
il calcolo per poi riprende l'analisi sino al successivo 1.
- Codice: Seleziona tutto
Sub Ricerca()
Dim SP As Long
Application.ScreenUpdating = False
Application.Calculation = xlManual
Application.EnableEvents = False
NS = 1 '1° num uscito in colonna B
EU = 1 'uscita num.1 in colonna A
NR = 1
Range("H1:R100").Clear
ReDim EX(1000, 5)
ReDim US(1 To 90)
For x = 1 To 50
y = NS
If Cells(x, y) = EU Then
SP = Cells(x, y + NS)
For RC = 1 To 9
For ZT = 1 To 5
EX(x + RC, ZT) = Cells(x + RC, 1 + ZT)
Next
Next
End If
Next
For T = 1 To 50
For COL = 1 To 5
Cells(T, 7 + COL) = EX(T, COL)
SOM = Cells(T, 7 + COL).Value
If SOM > SP Then
RIS = SOM - SP
Cells(T, 13 + COL) = RIS
End If
If SOM < SP Then
RIS = SOM + 90 - SP
Cells(T, 13 + COL) = RIS
End If
If SOM = SP Or SOM = "" Then
Cells(T, 13 + COL) = EX(T, COL)
End If
Next
Next
Range("A1").Select
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
2) essendo un archivio la dimensione è superiore, solo per comodità ho inserito solo le prime 50 righe.
3) per evitare di avere un foglio pieno di formule come nelle colonne U:Y ho realizzato la macro.
Spero di essere riuscito a far capire cosa cerco di realizzare per evitare di inserire un mare di formule.
Francesco
S.O. Windows 10 e Office 2007