Hoe in Calc kolom selecteren tijdens opnemen Macro

Hoe in Calc kolom selecteren tijdens opnemen Macro

Berichtdoor dolf » zo mei 22, 2016 9:59 pm

Hallo allemaal,

Ik ben nieuw op dit forum en heb waarschijnlijk een heel domme vraag! Ik moet met de Macro-recorder (heb ik gelezen) niet de muis gebruiken maar de toetsen. Zal kloppen want met de muis of touchpad lukt het niet.
Nu wil ik een kolom selecteren en verwijderen met hulp van alleen maar toetsen en ik kan nergens vinden hoe dat moet. Help :!:
Open Office 4.1.2. op Windows10
dolf
 
Berichten: 1
Geregistreerd: zo mei 22, 2016 9:50 pm

Re: Hoe in Calc kolom selecteren tijdens opnemen Macro

Berichtdoor RPG » zo mei 22, 2016 10:45 pm

Hallo

Ik heb geen idee hoe dat moet.
Framework/Article/OpenOffice.org 3.x Commands - Apache OpenOffice Wiki geeft bijna alle mogelijkheden die je kunt gebruiken in een opgenomen macro.

www.pitonyak.org/oo.php geeft een uitgebreide inleiding in macro's.

Romke
LibreOffice 6.2.5.2 op openSUSE Leap 15.1
RPG
 
Berichten: 3967
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland

Re: Hoe in Calc kolom selecteren tijdens opnemen Macro

Berichtdoor RPG » ma mei 23, 2016 1:09 am

Hallo

Na gericht zoeken op deletecolumns vond ik dit:
[Solved] Merge/allign cells in Columns macro (View topic) • Apache OpenOffice Community Forum

B.Marcelly gaf daar een voorbeeld van het gebruik van deletecolumns.

Code: Selecteer alles   UitklappenInklappen
sub Deletecolumns
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$C$1:$E$1" 'Use a single column or more as you want

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DeleteColumns", "", 0, Array())
end sub

Het werkt ook eenvoudig. Het kan ook eenvoudig de column verwijderen waar de cursor is. Probeer het uit op een file die geen belangrijke gegevens heeft.

Romke
LibreOffice 6.2.5.2 op openSUSE Leap 15.1
RPG
 
Berichten: 3967
Geregistreerd: wo apr 15, 2009 1:01 am
Woonplaats: Apeldoorn, Nederland

Re: Hoe in Calc kolom selecteren tijdens opnemen Macro

Berichtdoor DiGro » ma jun 13, 2016 1:51 pm

Ik zou er niet voor kiezen om daar de macrorecorder voor te gebruiken. Die levert een grote hoeveelheid code op
die onnodig is.

De te gebruiken toetsen;
Pijltjestoetsen om te verplaatsen
Control+Shift+pijltje omlaag om gehele kolom te selecteren
Delete om kolom te verwijderen (er opent een dialoogvenster waarvoor je op Enter moet drukken om ALLES te verwijderen)

Om vanaf cel A1 de kolom E te verwijderen levert dan deze code op:

Code: Selecteer alles   UitklappenInklappen
sub TestToets()
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "By"
args1(0).Value = 1
args1(1).Name = "Sel"
args1(1).Value = false

dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "By"
args2(0).Value = 1
args2(1).Name = "Sel"
args2(1).Value = false

dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args2())

rem ----------------------------------------------------------------------
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "By"
args3(0).Value = 1
args3(1).Name = "Sel"
args3(1).Value = false

dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args3())

rem ----------------------------------------------------------------------
dim args4(1) as new com.sun.star.beans.PropertyValue
args4(0).Name = "By"
args4(0).Value = 1
args4(1).Name = "Sel"
args4(1).Value = false

dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args4())

rem ----------------------------------------------------------------------
dim args5(1) as new com.sun.star.beans.PropertyValue
args5(0).Name = "By"
args5(0).Value = 1
args5(1).Name = "Sel"
args5(1).Value = true

dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args5())

rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Flags"
args6(0).Value = "SVDFN"

dispatcher.executeDispatch(document, ".uno:Delete", "", 0, args6())

end sub


terwijl

Code: Selecteer alles   UitklappenInklappen
Sub VerwijderKolom()
Dim Doc As Object
Dim Sheet As Object
Dim NewColumn As Object

Doc = ThisComponent
Sheet = Doc.Sheets(0)

'Sheet.Columns.insertByIndex(3, 1)  --> kan gebruikt worden voor invoegen van kolom
Sheet.Columns.removeByIndex(4, 1)

End Sub


ook de kolom E verwijdert, maar dan zonder het gebruiken van de macrorecorder.

Kortom: als je weet welke kolom je wilt verwijderen, gebruik dan de laatste methode
DiGro

--------------------------
Windows 10 en AOO 4.1.5
Gescand door Ziggo Uitgebreide Internetbeveiliging (F-Secure)
Avatar gebruiker
DiGro
 
Berichten: 53
Geregistreerd: wo mei 13, 2009 4:57 pm
Woonplaats: Hoorn NH


Keer terug naar Macro's

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast