Meerdere cellen afzonderlijk verwijderen dmv macro

Weet je niet waar je je bericht moet zetten? Doe het hier
Barcan
Berichten: 2
Lid geworden op: zo okt 01, 2017 12:30 pm

Meerdere cellen afzonderlijk verwijderen dmv macro

Bericht door Barcan »

Goedemiddag,
Ik wil graag diverse cellen verwijderen die niet allemaal bij elkaar staan door een macro aan een "wisknop" te koppelen.
In Excel had ik hier nooit problemen mee maar dit werkt blijkbaar niet voor Openoffice.
Heb nu al een aantal dagen internet afgestruind maar kan niets bruikbaars vinden.
In meegeleverd voorbeeld wil ik B4:O5, B8:O22, R4:X5, R8:X22, B26:O27, R26:X27, R29:X36, R41:R43 en V41:V44 verwijderen dmv een macro zodat ik dit niet elke week handmatig hoef te doen.
Ik wil allen de invoer verwijderen dus niet de opmaak.
Kan iemand mij de juiste richting opduwen?
Alvast bedankt voor de reactie,
Bijlagen
kasopmaak en bankstorting.ods
(29.17 KiB) 186 keer gedownload
Openoffice 4.1.2 op Windows 10 Pro
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Meerdere cellen afzonderlijk verwijderen dmv macro

Bericht door RPG »

Ik geloof niet dat het zo'n goed idee is om met macro's te beginnen. Aan de andere kant begrijp ik niet wat het probleem is. De macro die er al instaat werkt goed. Je moet hem denk ik voor alle opgegeven ranges aanroepen. Of anders gezegd je moet voor elke ranges een paar regels code in voeren.

Ik blijf altijd het idee houden dat het beter is om alles in eenvoudige tabellen te zetten en de resultaten te bekijken in speciaal opgemaakte bladen of formulieren. Een draaitabel is ook erg geschikt om resultaten mee te bekijken. Wanneer je met eenvoudige tabellen werkt heb je ook niet het probleem waar je nu al dagen naar loopt te zoeken. OpenOffice calc maar Excell biedt veel mogelijkheden om zonder programmeren veel informatie uit tabellen te halen.

Het is mij uit eigen ervaring bekend dat draaitabellen de geheimen niet zo gemakkelijk prijsgeven. Maar de geheimen zijn gemakkelijker te vinden dan de geheimen van macro's. Ik ben zelf iemand die zich eerder concentreert op de gegevens en de informatie uit die gegevens dan op het mooi tonen.

Voor het aanpassen van getal 23
http://www.openoffice.org/api/docs/comm ... Flags.html

Leer ook gebruik te maken van stijlen en opmaak
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: Meerdere cellen afzonderlijk verwijderen dmv macro

Bericht door RPG »

Ik heb later nog wat meer gekeken naar het geheel. Mijn eerste idee werk met een tabel een daarna met een draaitabel. Die eerste gedachte is een goede gedachte maar behoeft aanvulling. Ik denk dat in de tabel nog een bewerking gedaan moet worden die niet in de draaitabel gedaan kan worden.

Ik heb er ook een klein voorbeeld bij gedaan.

Op het Engelse forum wordt op sommige zaken dieper ingegaan. Wanneer je OpenOffice gebruik is het misschien beter om ook specifiek naar OpenOffice voorbeelden te zoeken. Anders krijg je voorbeelden die vaak voor excel zijn en die werken vaak niet goed voor OpenOffice. Misschien anders gezegd zoek op een forum voor OpenOffice of LibreOffice.
Bijlagen
draaitabel.ods
(15.67 KiB) 204 keer gedownload
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
Gebruikersavatar
DiGro
Berichten: 86
Lid geworden op: wo mei 13, 2009 4:57 pm
Locatie: Hoorn NH

Re: Meerdere cellen afzonderlijk verwijderen dmv macro

Bericht door DiGro »

De in het document opgenomen macro werkt goed.

Alleen dienen de bereiken afzonderlijk vermeld te worden.

De macro dus aangepast om alle bereiken te verwijderen:

Code: Selecteer alles

Sub CommandButton1_Click()
oCtrl = ThisComponent.CurrentController
oCtrl.Select(oCtrl.ActiveSheet.GetCellRangeByName("B4:O5"))
ThisComponent.getCurrentSelection.ClearContents(23)

oCtrl.Select(oCtrl.ActiveSheet.GetCellRangeByName("B8:O22"))
ThisComponent.getCurrentSelection.ClearContents(23)

oCtrl.Select(oCtrl.ActiveSheet.GetCellRangeByName("R4:X5"))
ThisComponent.getCurrentSelection.ClearContents(23)

oCtrl.Select(oCtrl.ActiveSheet.GetCellRangeByName("R8:X22"))
ThisComponent.getCurrentSelection.ClearContents(23)

oCtrl.Select(oCtrl.ActiveSheet.GetCellRangeByName("B26:O27"))
ThisComponent.getCurrentSelection.ClearContents(23)

oCtrl.Select(oCtrl.ActiveSheet.GetCellRangeByName("R26:X27"))
ThisComponent.getCurrentSelection.ClearContents(23)

oCtrl.Select(oCtrl.ActiveSheet.GetCellRangeByName("R29:X36"))
ThisComponent.getCurrentSelection.ClearContents(23)

oCtrl.Select(oCtrl.ActiveSheet.GetCellRangeByName("R41:R43"))
ThisComponent.getCurrentSelection.ClearContents(23)

oCtrl.Select(oCtrl.ActiveSheet.GetCellRangeByName("V41:V44"))
ThisComponent.getCurrentSelection.ClearContents(23)

oCtrl.Select(oCtrl.ActiveSheet.GetCellRangeByName("B4"))
End Sub
De laatste regel geeft aan dat na het verwijderen de cursor terugkeert naar cel B4

De waarde 23 achter ClearContents verwiijdert: waarde (value); datetime; tekenreeks (string) en formules (formula).

De opmaak blijft dus behouden
Bijlagen
kasopmaak en bankstorting.ods
Aangepaste macro
(31.76 KiB) 211 keer gedownload
DiGro

----------------------------------------------------
Windows 11 en AOO 4.1.15
Gescand door Ziggo Safe Online (F-Secure)
Barcan
Berichten: 2
Lid geworden op: zo okt 01, 2017 12:30 pm

Re: Meerdere cellen afzonderlijk verwijderen dmv macro

Bericht door Barcan »

Top!
Bedankt voor de reacties.
Ga hiermee aan de slag en laat het weten als het me gelukt is.
Dit is een document die elke week wordt gewist en niet opgeslagen hoeft te worden en dient alleen maar als vervanging van het papieren kasopmaakformulier.
Ga hem ook even online aan de praat krijgen om hem te delen met een werkende macro (die alles dus verwijderd) zodat hij op beide pc's van de winkel te gebruiken is
Wordt vervolgd...
Openoffice 4.1.2 op Windows 10 Pro
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Meerdere cellen afzonderlijk verwijderen dmv macro

Bericht door RPG »

Barcan schreef:Dit is een document die elke week wordt gewist en niet opgeslagen hoeft te worden en dient alleen maar als vervanging van het papieren kasopmaakformulier.
Volgens mij heb je dan ook geen macro nodig maar kun je het formulier opslaan als sjabloon. Het moet dan wel zonder gegevens op geslagen worden. Bij het openen van het sjabloon krijg je dan een leeg document . Ik denk dat er dan ook wel een eenvoudige oplossing voor de datum is maar op dit moment mij niet bekend door:
a) gewoon mijn onwetendheid.
b) Onbekend hoe en wanneer het formulier ingevuld wordt.
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
Plaats reactie