Macro opnemen voor automatisch vullen van een rij

Bespreek het rekenblad
milagro
Berichten: 4
Lid geworden op: do jan 31, 2019 5:51 pm

Macro opnemen voor automatisch vullen van een rij

Bericht door milagro »

Met de functie Macro opnemen in Openoffice calc probeer ik automatisch een rij te vullen.

In de oude versie werd de handeling dubbel klikken in een cel opgenomen (Selection.AutoFill), helaas werkt dat nu niet meer. Mijn bedoeling is om het onderstaande script om te zetten naar versie 6.1.3.2 En de Macro recorder zo in te stellen dat alle handelingen worden opgenomen.

Code: Selecteer alles

Sub Format()


    Columns("E:E").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("E2").Select
    ActiveCell.FormulaR1C1 = "C"
    Range("F2").Select
    ActiveCell.FormulaR1C1 = "D"
    Range("E3").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""C"",RC[2],"""")"
    Range("F3").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-2]=""D"",RC[1],"""")"
    Range("E3:F3").Select
    Selection.AutoFill Destination:=Range("E3:F14")
    Range("E3:F14").Select
    ActiveWorkbook.Save
    ActiveWorkbook.Close
End Sub
OpenOffice 6.1.3.2 Win 10
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Macro opnemen voor automatisch vullen van een rij

Bericht door RPG »

Ik weet niet of het volgende zal helpen voor het opnemen van macro's? Onder menu --> Extra --> opties bestaat er in de volgende popup een mogelijkheid om Optional feature te activeren.
Kijk bij
libreOffice --> advance -- > Optional features.

Ik heb zo gauw niet de Nederlandse termen.

Ik was wel verbaasd dat de macro in libreoffice wel werkte nadat ik iets had toegevoegd

Code: Selecteer alles

Option VBASupport 1
Ook moest ik in de code die bedoeld is voor de werkbladen iets aanpassen namenlijk de komma moest een punt-komma worden. Ik weet niet of je dat terug moet draaien. Het geheel begrijp ik niet. Ik heb het idee dat het niet kan werken.

Code: Selecteer alles

REM  *****  BASIC  *****
option explicit
Option VBASupport 1


Sub Format()
    Columns("E:E").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("E2").Select
    ActiveCell.FormulaR1C1 = "C"
    Range("F2").Select
    ActiveCell.FormulaR1C1 = "D"
    Range("E3").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""C"";RC[2];"""")"
    Range("F3").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-2]=""D"";RC[1];"""")"
    Range("E3").Select
    ActiveCell.FormulaR1C1=200
    Range("F3").Select
    ActiveCell.FormulaR1C1=1200

    Range("E3").Select ' Wijst naar het begin van de range
    Selection.AutoFill(Range("E3:F14"),2) ' Destination:=Range("E3:F14")
' De tweede parameter is wel belangrijk maar ik weet niet de waarden
' 
    Range("E3:F14").Select ' Ik denk niet meer nodig
    ActiveWorkbook.Save
    ActiveWorkbook.Close
End Sub
Het is dat je alles al grotendeels klaar had en ik feitelijk alleen nog naar autofill moest kijken anders kijk ik weinig naar macro's. Het autofill riep mijn nieuwgierigheid op. In het algemeen zijn de macro's voor OpenOffice veel moeilijker dat voor MSO. Ook is het verstandig om stijlen en opmaak te gebruiken(F11).

Calc heeft toch wel een iets andere manier van werken dan Excel.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Macro opnemen voor automatisch vullen van een rij

Bericht door RPG »

Soms kan enige seconden een andere kijk op het geheel geven. Deze code is maar een weinig aangepast maar bestaat hoofdzakelijk uit het wegstrepen van door mij ingevoegde code. En misschien kan er nog een regel weg.

Code: Selecteer alles

REM  *****  BASIC  *****
option explicit
Option VBASupport 1


Sub Format()
    Columns("E:E").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("E2").Select
    ActiveCell.FormulaR1C1 = "C"
    Range("F2").Select
    ActiveCell.FormulaR1C1 = "D"
    Range("E3").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""C"";RC[2];"""")"
    Range("F3").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-2]=""D"";RC[1];"""")"
    Range("E3").Select
    Selection.AutoFill(Range("E3:F14"),1) ' Destination:=Range("E3:F14")
' De tweede parameter is wel belangrijk maar ik weet niet de waarden
' 
    Range("E3:F14").Select ' Ik denk niet meer nodig
    ActiveWorkbook.Save
    ActiveWorkbook.Close
End Sub
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
milagro
Berichten: 4
Lid geworden op: do jan 31, 2019 5:51 pm

Re: Macro opnemen voor automatisch vullen van een rij

Bericht door milagro »

Helaas werkt het script niet en het opnemen van de macro lukt ook niet
Het oude script voegde twee kolommen toe; E en F met een vergelijking

Code: Selecteer alles

=ALS(D3="C";G3;"")	=ALS(D3="D";G3;"")
Vervolgens kon ik dit csv bestand gebruiken als import voor mij digitale huishoud boekje. Omdat ik het elke week bijwerk vond ik het wel een handig script

Code: Selecteer alles

KNAB EXPORT;;;;;;;;;;;;;;;;
Rekeningnummer;Transactiedatum;Valutacode;CreditDebet;C;D;Bedrag;Tegenrekeningnummer;Tegenrekeninghouder;Valutadatum;Betaalwijze;Omschrijving;Type betaling;Machtigingsnummer;Incassant ID;Adres;Referentie
NL123456;01-02-2019;EUR;D;;;5;12345;Naam;01-02-2019;Pakketkosten;kosten;;;;;
NL123457;01-02-2019;EUR;D;;;6;12345;Naam;01-02-2019;Pakketkosten;kosten;;;;;
NL123458;01-02-2019;EUR;D;;;7;12345;Naam;01-02-2019;Pakketkosten;kosten;;;;;
NL123459;01-02-2019;EUR;D;;;8;12345;Naam;01-02-2019;Pakketkosten;kosten;;;;;


OpenOffice 6.1.3.2 Win 10
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Macro opnemen voor automatisch vullen van een rij

Bericht door RPG »

Dat het script niet werkt lijkt mij wel aannemelijk. Je gaf een Engels talige script die ik ook op mijn Engels talig ingestelde computer gebruikt hebt. Je moet waarschijnlijk de woorden "if" vervangen door "als".

Het is voor gebruikers nooit verstandig om je afhankelijk te maken van formules of scripts die je zelf niet begrijpt.

OpenOffice kan zonder enige problemen een CSV in lezen zie [Tutorial] Voor het inlezen van CSV. Daarna zijn er nog enige hulpmiddelen die je gemakkelijk een overzicht van je financiën geven. Het is wel afhankelijk van je aanpak. Het wordt niet een boekhouding. Een boekhouding is met saldo's. Maar wel een overzicht van uitgaven en inkomsten per gekozen periode.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Macro opnemen voor automatisch vullen van een rij

Bericht door RPG »

Ik heb het ook geprobeerd bij een Nederlandstalige OpenOffice en daar werkt het zonder problemen. Let wel het is de tweede geposte code die goed moet werken. Bij de eerst geposte code begreep ik het doel in het geheel niet maar was ik alleen opzoek of ik het werkbaar kon krijgen.

Romke

Code: Selecteer alles

REM  *****  BASIC  *****
option explicit      ' Het is verstandig dat deze regel in je code staat.
Option VBASupport 1  ' Deze regel moet in je code staan.


Sub Format()
    Columns("E:E").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("E2").Select
    ActiveCell.FormulaR1C1 = "C"
    Range("F2").Select
    ActiveCell.FormulaR1C1 = "D"
    Range("E3").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""C"";RC[2];"""")"
    Range("F3").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-2]=""D"";RC[1];"""")"
    Range("E3").Select
    Selection.AutoFill(Range("E3:F14"),1) ' Destination:=Range("E3:F14")
' De tweede parameter is wel belangrijk maar ik weet niet de waarden
' 
    Range("E3:F14").Select ' Ik denk niet meer nodig
    ActiveWorkbook.Save
    ActiveWorkbook.Close
End Sub
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Macro opnemen voor automatisch vullen van een rij

Bericht door RPG »

Over het opnemen van macro's onder LibreOffice dat kan best afhankelijk zijn van de gebruikte versie. Bij was het ook enige tijd dat er geen macro's opgenomen werden maar nu wel weer. Ik kreeg de laatste tijd van OpenSUSE heel vaak een iets bijgewerkte versie, soms elke dag.

Bij LibreOffice moet je soms echt kiezen wat voor versie het beste is. Het kiezen tussen de Fresh en Still versie is al belangrijk.

Ik denk dat voor beginners het werken met macro's niet is aan te bevelen. Bovendien ik heb het idee dat de gevraagde informatie uit de CSV zonder enige formule door middel van een draaitabel gehaald kan worden. Het kan wel zo zijn dat de vorm iets anders is. Een voordeel is dat er diverse draaitabellen aan de brongegevens gekoppeld kunnen worden bovendien is een draaitabel snel aan ta passen.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
Plaats reactie