Moderatori: Anthony47, Flash30005
Nel foglio (At) cella D1, inserisco un numero che corrisponde a tutti i numeri della colonna omonima ma, quelli che interessano sono esclusivamente nel range “D5:D127”, tutti quelli cioè che si trovano prima dello “0” nella colonna “J”. Infatti, impostando il filtro in questa colonna con (maggiore di zero) otteniamo il range nel quale operare. Range che ovviamente può variare poiché condizionato dal valore zero.
Questi valori vanno solamente aggiornati quando per l'appunto in "D1" foglio At, inserisco un numero. Cosa vuole dire? Semplicemente che tutto quello che si trova al di sopra dello "0" in colonna "J", ha superato attualmente lo storico precedente che trovasi nel foglio "Tab"; in tal caso (inserimento numero in D1) il foglio Tab va aggiornato.
94 8701 CA 5 60 at BA 1 220 8921 214 6
95 8638 MI 3 35 at BA 1 283 8921 278 5
96 8708 NZ 4 32 at BA 1 213 8921 208 5
97 8681 MI 3 34 at BA 1 240 8921 238 2
98 8682 MI 3 34 at BA 1 239 8921 238 1
99 8768 NZ 3 32 at BA 1 153 8921 152 1
100 8659 MI 5 32 at BA 1 262 8921 261 1
101 8693 MI 2 60 at BA 1 228 8921 229 -1
102 8637 RO 2 77 at BA 1 284 8921 285 -1
103 8703 CA 5 34 at BA 1 218 8921 219 -1
104 8566 FI 5 35 at BA 1 355 8921 356 -1
105 8658 RO 5 32 at BA 1 263 8921 264 -1
106 8563 CA 2 35 at BA 1 358 8921 360 -2
107 8614 CA 1 34 at BA 1 307 8921 310 -3
108 8691 VE 1 77 at BA 1 230 8921 233 -3
109 8648 NA 4 77 at BA 1 273 8921 276 -3
110 8644 VE 4 77 at BA 1 277 8921 280 -3
111 8763 MI 1 42 at BA 1 158 8921 162 -4
112 8651 FI 3 32 at BA 1 270 8921 274 -4
Sub lpzzzz()
Dim VArr, I As Long, CPos As Long, TVal As Long, LB2 As Long, myMatch, MErr As String
Sheets("At").Select
CPos = Application.WorksheetFunction.CountIf(Range("J:J"), ">=0")
TVal = Range("D5")
VArr = Range("C5").Resize(CPos, 8).Value
LB2 = LBound(VArr, 2)
With Sheets("Tab")
For I = LBound(VArr, 1) To UBound(VArr, 1)
If VArr(I, LB2 + 1) = TVal Then
myMatch = Application.Match(VArr(I, LB2), .Range("A1:A200"), 0)
If Not IsError(myMatch) Then
.Cells(myMatch, 2 + TVal).Value = VArr(I, LB2 + 4)
Else
MErr = MErr & "; " & VArr(I, LB2)
End If
End If
Next I
End With
If Len(MErr) > 0 Then
MsgBox ("Ci sono stati errori nell' identificazione di Ruo-Pos" & vbCrLf & Left(mess, 100))
End If
End Sub
I valori presi in considerazione dalla macro sono solo quelli delle linee che in J risultano >=0, assumendo pero' che il foglio sia ordinato per J decrescente.
Sub lpzz()
Dim VArr, i As Long, CPos As Long, TVal As Long, LB2 As Long, myMatch, MErr As String
Sheets("At").Select
CPos = Application.WorksheetFunction.CountIf(Range("J:J"), ">=0")
TVal = Range("D5")
VArr = Range("C5").Resize(CPos, 8).Value
LB2 = LBound(VArr, 2)
With Sheets("Tab")
For i = LBound(VArr, 1) To UBound(VArr, 1)
If VArr(i, LB2 + 1) = TVal Then
myMatch = Application.Match(VArr(i, LB2), .Range("A1:A200"), 0)
If Not IsError(myMatch) Then
If VArr(i, LB2 + 4) > .Cells(myMatch, 2 + TVal).Value Then .Cells(myMatch, 2 + TVal).Value = VArr(i, LB2 + 4)
' .Cells(myMatch, 2 + TVal).Value = VArr(i, LB2 + 4)
Else
MErr = MErr & "; " & VArr(i, LB2)
End If
End If
Next i
End With
If Len(MErr) > 0 Then
MsgBox ("Ci sono stati errori nell' identificazione di Ruo-Pos" & vbCrLf & Left(mess, 100))
End If
End Sub
Torna a Applicazioni Office Windows
Macro che scatta quando cambia dato in un altro file Autore: systemcrack |
Forum: Applicazioni Office Windows Risposte: 11 |
Modidica Formula Somma I Riferimenti Autore: Francesco6918 |
Forum: Applicazioni Office Windows Risposte: 2 |
Excel: formula automatica per evidenziare prodotto scaduto Autore: gamma_ray |
Forum: Applicazioni Office Windows Risposte: 3 |
Problema con macro copia e rinomina file Autore: systemcrack |
Forum: Applicazioni Office Windows Risposte: 2 |
formula excel non visualizza risultato Autore: tommasog |
Forum: Applicazioni Office Windows Risposte: 6 |
Visitano il forum: Nessuno e 135 ospiti