Bekijk de onderstaande video om te zien hoe je onze site als een web app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.
Privacywetgeving
Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.
Sub M_snb()
sn = Split(Replace(CreateObject("scripting.filesystemobject").opentextfile("J:\download\csv_voorbeeld.csv").readall, Chr(34), ""), vbCrLf)
With CreateObject("scripting.dictionary")
For j = 0 To UBound(sn) - 1
.Item(.Count) = Split(sn(j), ",")
Next
sp = Application.Index(.items, Evaluate("row(1:" & .Count & ")"), Array(1, 3, 5, 7, 9, 2, 14))
End With
Sheet1.Cells(1).Resize(UBound(sp), UBound(sp, 2)) = sp
End Sub
Een bestand met in ieder record een gelijk aantal velden:
Code:Sub M_snb() sn = Split(Replace(CreateObject("scripting.filesystemobject").opentextfile("J:\download\csv_voorbeeld.csv").readall, Chr(34), ""), vbCrLf) With CreateObject("scripting.dictionary") For j = 0 To UBound(sn) - 1 .Item(.Count) = Split(sn(j), ",") Next sp = Application.Index(.items, Evaluate("row(1:" & .Count & ")"), Array(1, 3, 5, 7, 9, 2, 14)) End With Sheet1.Cells(1).Resize(UBound(sp), UBound(sp, 2)) = sp End Sub
Option Explicit
'Option Private Module
Dim MyPath As String
Dim MyDownloads As String
Dim tFilename As String
Dim sFilename As String
Dim mFilename As String
Dim LastRow As Long
Sub FINANCIEN_VERWERKEN()
tFilename = "YOUR NAME"
sFilename = ThisWorkbook.Name
mFilename = "CSV_Trainers.csv"
MyPath = ThisWorkbook.Path & "\"
MyDownloads = "C:\Users\" & Environ("Username") & "\Desktop\"
Application.ScreenUpdating = False
If Dir(MyDownloads & mFilename) = "" Then
MsgBox "Er is GEEN nieuwe informatie van de BANK beschikbaar." & vbNewLine & vbNewLine & "", vbInformation, tFilename
Exit Sub
Else
'csv van komma gescheiden naar kolommen
Workbooks.OpenText Filename:=MyDownloads & mFilename, Origin:=xlWindows
Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
(20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1)) _
, TrailingMinusNumbers:=False
'opslaan als temp.xlsx, bewerken en formule plaatsen
ActiveWorkbook.SaveAs Filename:="C:\Users\Admin\Desktop\RABO_TEMP.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Range("B:B,C:C,D:D,E:E,H:H,K:K,L:L,M:M,N:N,R:R,U:U,V:V,X:X,Y:Y,Z:Z").Delete Shift:=xlToLeft
Rows("1:1").Delete Shift:=xlUp
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Union(Columns(2), Columns(4), Columns(5), Columns(6), Columns(7)).Insert Shift:=xlToRight
Range(Cells(1, 2), Cells(LastRow, 2)).FormulaR1C1 = "=IF(RC[-1]=""NL15RABO0123456789"",""rabo"",""rabo"")"
Range(Cells(1, 5), Cells(LastRow, 5)).FormulaR1C1 = "=IF(LEFT(RC[-1],1)=""-"",RIGHT(RC[-1],LEN(RC[-1])-1),RC[-1])"
Range(Cells(1, 6), Cells(LastRow, 6)).FormulaR1C1 = "=IF(LEFT(RC[-2],1)=""-"",RC[-1]*-1,RC[-1]*1)"
Range(Cells(1, 6), Cells(LastRow, 6)).Style = "Comma"
Range(Cells(1, 7), Cells(LastRow, 7)).FormulaR1C1 = "=UPPER(RC[3])"
Cells.Copy
Cells.PasteSpecial Paste:=xlPasteValues
'geschikt maken c.q. positie kolommen gelijk aan financiele file
Range(Cells(1, 8), Cells(LastRow, 8)).Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Columns("A:A").Delete Shift:=xlToLeft
Columns("C:D").Delete Shift:=xlToLeft
Range("G:K,M:M").Delete Shift:=xlToLeft
Columns("F:F").Cut
Columns("C:C").Insert Shift:=xlToRight
Columns("D:E").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("F:F").Cut
Columns("H:H").Insert Shift:=xlToRight
Columns("H:H").Delete Shift:=xlToLeft
'copy values van temp naar financiele file
Application.Goto Reference:=Workbooks(sFilename).Worksheets("BOEKINGEN").Cells(2, 1)
ActiveSheet.Range("E2").Name = "copy_end" 'is om later de formules in de range nieuwe boekingen om te zetten naar values
Do Until Range("RABO_TEMP.xlsx!A1") = 0
Application.Goto Reference:=Workbooks(sFilename).Worksheets("BOEKINGEN").Cells(2, 1)
Rows(2).Copy
Rows(2).Insert xlDown
Windows("RABO_TEMP.xlsx").Activate
Range(Cells(1, 1), Cells(1, 8)).Copy
Application.Goto Reference:=Workbooks(sFilename).Worksheets("BOEKINGEN").Cells(2, 1)
Selection.PasteSpecial xlValues
Windows("RABO_TEMP.xlsx").Activate
Rows(1).Delete xlUp
Loop
'alle nieuwe boekingen zitten nu in financiele file en formules (voor korte naam en code) worden geplaatst
Application.Goto Reference:=Workbooks(sFilename).Worksheets("BOEKINGEN").Cells(2, 1)
Range(Cells(2, 4), Cells(2, 4).End(xlDown).Offset(-1, 0)).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(MID(RC[2],1,10),DBASE,3,0))=TRUE,""?"",VLOOKUP(MID(RC[2],1,10),DBASE,3,0))"
Range(Cells(2, 5), Cells(2, 5).End(xlDown).Offset(-1, 0)).FormulaR1C1 = "=IF(RC[-1]=""?"",""?"",IF(RC[-4]=""rabo bsr"",""-"",IF(RC[2]<0,VLOOKUP(RC[1],DBASE,4),VLOOKUP(RC[1],DBASE,5))))"
Range(Cells(2, 4), "copy_end").Copy
Cells(2, 4).PasteSpecial xlValues
Application.CutCopyMode = False
ActiveWorkbook.Names("copy_end").Delete
Application.Run "SORT_DATUM"
Workbooks("RABO_TEMP.xlsx").Close True
Kill MyDownloads & "RABO_TEMP.xlsx"
Application.Goto Reference:=Workbooks(sFilename).Worksheets("BOEKINGEN").Cells(2, 2)
Application.ScreenUpdating = True
End If
End Sub
521 Sheets("Bank").Select
522 Sheets("Bank").Range("A" & lLaatsteRij).Select
523 ActiveWindow.ScrollRow = lLaatsteRij - (Range("A2") + 1)
522 Application.Goto Sheets("Bank").Range("A" & lLaatsteRij), True
807 With Sheets("Bank")
808 For i = .UsedRange.Rows.Count To 1 Step -1
809 If IsNumeric(Left(.Cells(i, 55), 55)) Then 'de 56 staat voor de 67e kolom
810 If (.Cells(i, 55).Value) = 2 Then .Cells(i, 55).EntireRow.Delete
811 End If
812 Next
813 End With
Dim vValue as variant
807 With Sheets("Bank")
vValue = .Cells(i, 55).Value2
808 For i = .UsedRange.Rows.Count To 1 Step -1
809 If IsNumeric(Left(vValue, 55)) Then 'de 56 staat voor de 67e kolom
810 If (vValue) = 2 Then .Cells(i, 55).EntireRow.Delete
811 End If
812 Next
813 End With
Reactie op bericht #45
Hi Anton,
Duidelijk, dank voor je reactie.
Ja, het er uit halen van de dubbelingen (wat ik dus niet hoef te doen) kost toch wat tijd.
Ben blij dat je voorlopig tevreden bent met je eigen aanpak.
Hoop overigens wel dat jouw bank overgaat naar de nieuwe indeling en de mogelijkheid gaat geven transacties te downloaden vanaf de laatste download.
Succes en groet,
Trainers
Je redenering klopt niet.
Als voorwaarde stel ik het resultaat van je inspanningen: het begrijpen van iedere regel VBA.
Ik zeg niets over het proces dat daaraan vooraf gaat: opleiding, zelfstudie, nadenken, testen, hulp van een ander (bijv. van dit forum).
Ook VBA is een taal, die bij verkeerd/slordig gebruik tot rampen kan leiden.
Als je niet 100% zeker bent of wat je doet goed overkomt kun je beter gebruik maken van een tolk/programmeur.
We gebruiken essentiële cookies om deze site te laten werken, en optionele cookies om de ervaring te verbeteren.