Pagina 1 van 1

Meerdere cellen afzonderlijk verwijderen dmv macro

BerichtGeplaatst: zo okt 01, 2017 12:54 pm
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,

Re: Meerdere cellen afzonderlijk verwijderen dmv macro

BerichtGeplaatst: zo okt 01, 2017 1:57 pm
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

Re: Meerdere cellen afzonderlijk verwijderen dmv macro

BerichtGeplaatst: ma okt 02, 2017 6:37 pm
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.

Re: Meerdere cellen afzonderlijk verwijderen dmv macro

BerichtGeplaatst: do okt 05, 2017 1:08 pm
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   UitklappenInklappen
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

Re: Meerdere cellen afzonderlijk verwijderen dmv macro

BerichtGeplaatst: do okt 05, 2017 1:54 pm
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...

Re: Meerdere cellen afzonderlijk verwijderen dmv macro

BerichtGeplaatst: do okt 05, 2017 5:30 pm
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.