• 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.

Macro's in Excel 2010 vs Excel 2016

Status
Niet open voor verdere reacties.
De resultaten van 4 runs.
Omdat sub 6 en 10 een hogere waarde lieten zien heb ik die uitgesplitst in stukken.

FG-2018-05-16_192801.jpg

Het resultaat is afhankelijk van het aantal rijen die behandeld moeten worden.
 
Nu nog de code laten zien met de timing plekken :)

Dat kan :thumb:

Ik heb die maar als geexporteerde module ter beschikking gesteld. (extensie .txt even verwijderen (renamen)
 

Bijlagen

  • Module1.bas.txt
    16,8 KB · Weergaven: 36
Er is veel te veel interaktie met het werkboek.
Gebruik Arrays.
 
Dat kan allemaal wel heel wat vlotter. Je ziet bijvoorbeeld dat het instellen van alleen het lettertype erg traag is. Als je nou gewoon dat hele werkblad al dat letertype geeft dan kan je al drietiende besparen. Verder zie ik dat je telkens een nieuwe gegevensverbinding toevoegt. Je zult er al enige tientallen in je bestand verzameld hebben zo langzamerhand.
Al die selects en activates zijn overbodig, die kan je eruit werken. Stukje voorbeeld:

Code:
    Rows("6:6").Select
    Selection.Copy
    Rows("7:7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Kan worden:

Code:
    Rows("6:6").Copy
    Rows("7:7").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Of:

Code:
Range("7:7").Value = Range("6:6").Value
 
Laatst bewerkt:
Onbescheiden vraag:
Welke Bank?

Ik krijg het vermoeden dat je in een financieel Excel bestand de nieuwe mutaties van de bank (die je nog niet hebt) wil importeren.

Groeten
 
Onbescheiden vraag:
Welke Bank?

Ik krijg het vermoeden dat je in een financieel Excel bestand de nieuwe mutaties van de bank (die je nog niet hebt) wil importeren.

Groeten

Yep, de spijker op zijn kop.
Het omgekeerde van BANK :)
 
Knappe code :)
Ik zit bij de OBAR en daar heb ik al vele jaren een programma om de laatste CSV te verwerken.

Succes!

Groeten
 
Knappe code :)
Ik zit bij de OBAR en daar heb ik al vele jaren een programma om de laatste CSV te verwerken.

Succes!

Groeten

Klein begonnen en steeds weer bijgebakken en gecorrigeerd. Mogelijk is daarom een niet optimale situatie ontstaan.
Vroeger en misschien nu nog had OBAR een prima mogelijkheid om de csv te verwerken in een spreadsheet. M.n. downloaden vanaf fe vorige datum werkt(e) perfect. Daar moet BANK nog heel wat energie in steken om OBAR te evenaren.
 
Tot nu toe had OBAR .txt maar nu gaat men over naar .csv.
Heb mijn programma dus wat moeten aanpassen maar gaat perfect. 1 Minpunt: je krijgt in txt alle boekingen tot nu en bij csv de boekingen tot gisteren. Is bij hen bekend en er wordt aan gewerkt.

Wat is het output format van die knappe bank?

Zie je kans een voorbeeld van 4 boekingen te geven (wel svp fake info). Het gaat om de structuur.

Groeten
 
Tot nu toe had OBAR .txt maar nu gaat men over naar .csv.
Heb mijn programma dus wat moeten aanpassen maar gaat perfect. 1 Minpunt: je krijgt in txt alle boekingen tot nu en bij csv de boekingen tot gisteren. Is bij hen bekend en er wordt aan gewerkt.

Wat is het output format van die knappe bank?

Zie je kans een voorbeeld van 4 boekingen te geven (wel svp fake info). Het gaat om de structuur.

Groeten
Download is mogelijk als .csv of .xls. Ik gebruik de .csv versie.
Dat laatste is heel slecht inpasbaar omdat alle gegevens als tekst zijn ingevoerd. Probeer daar maar eens een datum van te maken enz.
 
Laatst bewerkt:
IK heb hem.
Haal hem even weg, staat toch persoonlijke info in.

Groeten
 
Hierbij voorbeeld van een csv bestand met 1 boeking zoals ik die krijg.
Met deze info als basis kan ik die volledig naar mijn hand zetten en importeren in de financiën file.

Groeten
 

Bijlagen

  • CSV_Voorbeeld.csv
    710 bytes · Weergaven: 32
Ik zal morgen eens kijken of ik obv jouw csv die info er uit kan peuteren die je wilt gaan gebruiken.

Groeten
 
Met de timer code van Jan Karel heb ik de verschillende stappen kunnen analyseren. Een aantal tips heb ik kunnen inbrengen. De resultaten komen in de goede richting.
Er zijn 2 subs die er enigszins uitspringen, het verplaatsen en de dubbelingen verwijderen. zie tabel

FG-2018-05-17_131551.jpg

Code:
Sub KNAB05_Verplaatsen() 'Overgebleven rijen verplaatsen naar het overzichtswerkblad
500
501    Dim dTime As Double
502    dTime = Timer
503
504    Application.ScreenUpdating = False
505
506    Dim lLaatsteRij As Long
507     lLaatsteRij = Sheets("ImportKNAB").Range("A65536").End(xlUp).Row 'als A8 op blad Import leeg is alles overslaan
508
509     If lLaatsteRij >= 8 Then
510         Sheets("ImportKNAB").Rows("8:" & lLaatsteRij).Cut
511         lLaatsteRij = Sheets("Bank").Range("A65536").End(xlUp).Row + 1 'als A8 op blad Bank leeg is, moet lLaatsteRij = 8 worden
512         lLaatsteRij = -(lLaatsteRij < 6) * 6 - lLaatsteRij * (lLaatsteRij >= 6)
513         Sheets("Bank").Range("A" & lLaatsteRij).EntireRow.Insert Shift:=xlDown
514         Application.CutCopyMode = False
515      End If
516
517  Debug.Print "5.1 Verplaatsen", Timer - dTime
518
519     ActiveWorkbook.Worksheets("Bank").Select
520     lLaatsteRij = Sheets("Bank").Range("A65536").End(xlUp).Row + 1
521     Sheets("Bank").Select
522     Sheets("Bank").Range("A" & lLaatsteRij).Select
523     ActiveWindow.ScrollRow = lLaatsteRij - (Range("A2") + 1)
524
525  Debug.Print "5.2 Verplaatsen", Timer - dTime
526
527     Call KNAB06_Dubbelingen_VB
528
End Sub

Code:
Sub KNAB08_Dubbelingen()  'Dubbelingen verwijderen
800
801    Dim dTime As Double
802    dTime = Timer
803
804    Application.ScreenUpdating = False
805
806    ActiveWorkbook.Worksheets("Bank").Select
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
814
815    Debug.Print "8 Dubbelingen", Timer - dTime
816
817    Call KNAB_Opruimen
818    Call KNAB09_Sorteren
819
End Sub

Mogelijk heeft iemand nog tips voor verbeteringen :)

Het is me ook opgevallen dat de beeldopbouw op het scherm wat stroperig verloopt - resolutie 1920x1080.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan