|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 3 097
|
Re:=> "Petite" DEMO (entre amis) pas encore le 200
Bonjour Abel, Hervé, re Bonjour toute la Fine Equipe !!!
Merci vraiment de vous être tous penchés sur cette Démo ! C'est génial !
Entre temps, j'ai découvert un Bug aussi, bien plus embêtant, alors que j'avais prévu la Routine 'WriteRenewingDepositSameBank' je ne la lançait pas ! Arf !
En clair, si vous sélectionnez dans les Dépots existant arrivant à maturité, exemple :
BANK OF MONTREAL * LED ZEP * EUR 15 M 25/10/2005
Que vous le splittez ainsi :
BANK OF MONTREAL EUR 5 M (Renouvellement Même Banque Depôt)
DEUTCHE BANK EUR 5 M ( Nouvelle Banque Depôt)
DRESDNER BANK EUR 5 M ( Nouvelle Banque Depôt)
CITIBANK EUR 28,462.50 ( Banque Compte Courant)
Et bien horreur et damnation !!! Le PrintOut adressé à B.O.M. comporte des zones Vides (Arf Arf)
Voici le ' Patch S/P1'
Pour remplacement pûr et simple de la Sub 'CollectingRenewedDep' en Top de Module 'BuildingFaxMat'
Citation:
Sub CollectingRenewedDep() '<<<<< Corrected
Dim i As Byte, j As Byte, y As Byte, X As Byte, Z As Byte, Compteur As Byte, BankNew As Byte, Matching AsByte
Dim TabBankSelected() AsString
Dim TabBankOrigine() AsString
Dim ColBankUniqueSelected As Collection
Dim ColBankUniqueOrigine As Collection
Dim TabBankUniqueOrigine() AsVariant
Dim BankMulti AsByte
Dim Existing AsByte
Dim BankItem AsVariant
Dim Bank1 As String, Bank2 As String, Bank3 As String, Bank4 AsString
Dim Cell As Range
Dim FirstAddress AsString
Dim TheBank AsString
Dim TotalTxbMoney() AsDouble
Dim MoneyToSend AsDouble
Dim SQLSearch AsString
Dim SendingMoneyOut AsBoolean
CleaningFaxMat
CleaningFaxNew
With SelectedMatured
For i = 1 To .Range('B255').End(xlUp).Row
If .Cells(i, 11) = '' Then
ReDimPreserve TabBankOrigine(X)
TabBankOrigine(X) = .Cells(i, 2)
X = X + 1
EndIf
Next
EndWith
X = 0
For i = 1 To 4
If USFSplitDep.Controls('TxbBank' & i).Value <> '' Then
BankNew = BankNew + 1
EndIf
Next
For i = 1 To BankNew
If USFSplitDep.Controls('TxbBank' & i).Value <> '' Then
ReDimPreserve TabBankSelected(X)
TabBankSelected(X) = USFSplitDep.Controls('TxbBank' & i).Value
X = X + 1
EndIf
Next i
Set ColBankUniqueSelected = New Collection
For i = 0 To UBound(TabBankSelected)
OnErrorResumeNext
ColBankUniqueSelected.Add TabBankSelected(i), TabBankSelected(i)
Next
ForEach BankItem In ColBankUniqueSelected
BankMulti = BankMulti + 1
Compteur = 0
For i = 0 To UBound(TabBankSelected)
If BankItem = TabBankSelected(i) Then
Compteur = Compteur + 1
Existing = 0
For X = 0 To UBound(TabBankOrigine)
If BankItem = TabBankOrigine(X) Then
Existing = Existing + 1
EndIf
Next X
EndIf
Next i
ReDimPreserve TabBankUniqueSelected(3, Z)
TabBankUniqueSelected(0, Z) = BankItem
TabBankUniqueSelected(1, Z) = Existing
TabBankUniqueSelected(2, Z) = Compteur
Z = Z + 1
Next BankItem
Set ColBankUniqueOrigine = New Collection
Z = 0
For i = 0 To UBound(TabBankOrigine)
OnErrorResumeNext
ColBankUniqueOrigine.Add TabBankOrigine(i), TabBankOrigine(i)
Next
ForEach BankItem In ColBankUniqueOrigine
Compteur = 0
For i = 0 To UBound(TabBankOrigine)
If BankItem = TabBankOrigine(i) Then
Compteur = Compteur + 1
Existing = 0
For X = 0 To UBound(TabBankSelected)
If BankItem = TabBankSelected(X) Then
Existing = Existing + 1
EndIf
Next X
EndIf
Next i
ReDimPreserve TabBankUniqueOrigine(3, Z)
TabBankUniqueOrigine(0, Z) = BankItem
TabBankUniqueOrigine(1, Z) = Existing
TabBankUniqueOrigine(2, Z) = Compteur
Z = Z + 1
Next BankItem
NombreBankMaturity = UBound(TabBankUniqueOrigine, 2)
NombreBankRenewing = UBound(TabBankUniqueSelected, 2)
BuildingRenewedDep
ReDimPreserve TotalTxbMoney(4)
TotalTxbMoney(0) = TbxMoneyVal1
TotalTxbMoney(1) = TbxMoneyVal2
TotalTxbMoney(2) = TbxMoneyVal3
TotalTxbMoney(3) = TbxMoneyVal4
OnErrorGoTo 0
SQLSearch = ''' & SelectedMatured.Range('C1') & '''
With MatrixMat
.Range('I3') = Date
.Range('I4') = 'D-' & Format(Home.Range('A1') + 1, '00000')
If ReNewIngDep = True Then: Home.Range('A1') = Home.Range('A1') + 1
.Range('I5') = SelectedMatured.Range('J1')
.Range('A1') = USFSplitDep.LabelCompany
.Range('A2') = CompanyDetailADOQuery(SQLSearch, 4)
.Range('C5') = TabBankUniqueOrigine(0, 0) & ', ' & VlookupBankData(TabBankUniqueOrigine(0, 0), 3)
.Range('C6') = VlookupBankDetails(TabBankUniqueOrigine(0, 0), 5)
.Range('C7') = VlookupBankDetails(TabBankUniqueOrigine(0, 0), 6)
EndWith
If TabBankUniqueOrigine(1, 0) > 0 Then
For y = 0 To NombreBankRenewing
With SelectedMatured.UsedRange
If TabBankUniqueOrigine(0, 0) = TabBankUniqueSelected(0, y) Then
CountMaturityFax = TabBankUniqueOrigine(2, 0)
WriteClosingDeposit CountMaturityFax, CStr(TabBankUniqueOrigine(0, 0))
CountRenewingFax = TabBankUniqueSelected(2, y)
'HERE >>>>>>>> WAS MISSING THE FOLLOWING LINE :
WriteRenewingDepositSameBank CountRenewingFax, CStr(TabBankUniqueSelected(0, y))
'================================================= ================================================== =====
For Z = 1 To NombreBankRenewing
If TabBankUniqueOrigine(0, 0) <> TabBankUniqueSelected(0, Z) Then
TheBank = TabBankUniqueSelected(0, Z)
MoneyToSend = 0
For j = 1 To 4
If USFSplitDep.Controls('TxbBank' & j).Value = TheBank Then
Set Cell = .Find(TheBank, , , xlWhole)
IfNot Cell IsNothingThen
FirstAddress = Cell.Address
Do
Cell.Offset(0, 12) = 'Tagged'
Set Cell = .FindNext(Cell)
LoopWhileNot Cell IsNothing And Cell.Address <> FirstAddress
EndIf
MoneyToSend = MoneyToSend + TotalTxbMoney(j - 1)
EndIf
Next j
WriteOtherBanksToSend TheBank, MoneyToSend
WriteInterestToCurrentAccount
SendingMoneyOut = True
EndIf
Next Z
If SendingMoneyOut = FalseThen WriteInterestToCurrentAccount
Else
EndIf
EndWith
Next y
Else
For y = 0 To NombreBankRenewing
With Renewed.UsedRange
CountMaturityFax = TabBankUniqueOrigine(2, 0)
WriteClosingDeposit CountMaturityFax, CStr(TabBankUniqueOrigine(0, 0))
TheBank = TabBankUniqueSelected(0, y)
MoneyToSend = 0
For j = 1 To 4
If USFSplitDep.Controls('TxbBank' & j).Value = TheBank Then
Set Cell = .Find(TheBank, , , xlWhole)
IfNot Cell IsNothingThen
FirstAddress = Cell.Address
Do
Cell.Offset(0, 12) = 'Tagged'
Set Cell = .FindNext(Cell)
LoopWhileNot Cell IsNothing And Cell.Address <> FirstAddress
EndIf
MoneyToSend = MoneyToSend + TotalTxbMoney(j - 1)
EndIf
Next j
WriteOtherBanksToSend TheBank, MoneyToSend
WriteInterestToCurrentAccount
EndWith
Next y
EndIf
HiddingLinesMat
EndSub
|
Sorry for inconvenience !!!
Pour Hervé, oui la partie 'New Deposit' et loin d'être blindée encore, en fait c'est la cerise sur le gateau qui est la partie la plus 'facile' mais que j'ai un peu délaissée, mais au moins tu as bien testé, merci à toi aussi. ( je veillerai à vérouiller un peu mieux)
Pour Abel et MichelXLD, et bien je vois que êtes connaisseurs Blue Oyster Cult ;-) bravo !
Et grand grand grand merci à tous
Bon App
[ol]@+Thierry[/ol]
|