
20-01-17, 16:24
|
 | Διαχειριστής Όνομα: Χρήστος Ζώρζος Έκδοση λογισμικού Office: Ms-Office 2016 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική | | Εγγραφή: 20-09-2013 Περιοχή: Κοντά σε ηφαίστειο...
Μηνύματα: 1.046
| |
Εγώ θα πρότεινα λύση με κώδικα VBA: Κώδικας: Option Explicit
Function UNPAIDFROM(B As Long, Rng1 As Range, Rng2 As Range) As Long
If Rng1.Columns.Count <> 1 Or Rng2.Columns.Count <> 1 _
Or Rng1.Count <> Rng2.Count Then Exit Function
Dim R As Long, Sum As Long
R = Rng2.Count
Sum = Rng2.Cells(R, 1).Value
UNPAIDFROM = Rng1.Cells(R, 1).Value
While B >= Sum
If R = 1 Then
UNPAIDFROM = Rng1.Cells(1, 1).Value
Exit Function
End If
If B < Sum + Rng2.Cells(R - 1, 1).Value Then
UNPAIDFROM = Rng1.Cells(R, 1).Value
Exit Function
End If
R = R - 1
Sum = Sum + Rng2.Cells(R, 1).Value
Wend
End Function
Η συνάρτηση UNPAIDFROM() έχει 3 ορίσματα:
1ο: Το ποσό υπολοίπου (είτε κελί είτε αριθμό με το χέρι),
2ο: Το εύρος κελιών στη στήλη που περιέχει την ημερομηνία παραστατικών,
3ο: Το εύρος κελιών στη στήλη που περιέχει τις αξίες των τιμολογίων.
Το δύο τελευταία ορίσματα πρέπει να αποτελούνται από μία στήλη και το πλήθος των κελιών τους να είναι ίσο, π.χ. Α1:Α10 και G11:G20.
Νίκο, αν σου είναι εύκολο ανέβασε και τη δική σου λύση, για εγκυκλοπαιδικές γνώσεις και μόνο.
__________________ Your Curiosity Will Be The Death Of You!
Τελευταία επεξεργασία από το χρήστη ChrisGT7 : 20-01-17 στις 21:14.
|