Macro uitvoeren als bepaalde cel wordt aangepast

Weet je niet waar je je bericht moet zetten? Doe het hier
nve
Berichten: 1
Lid geworden op: vr jul 05, 2019 9:29 am

Macro uitvoeren als bepaalde cel wordt aangepast

Bericht door nve »

Hallo,

Ik heb een macro in excel die aangeeft wanneer een andere cel is bijgewerkt. Echter werkt deze niet goed. Als het excel-document namelijk geopend wordt geeft de desbetreffede cel de datum en tijd van het openen van het bestand weer. Hoe kan ik dit oplossen?

De code die ik heb opgenomen is:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("R3"), Target)
xOffsetColumn = -1
If Not WorkRng Is Nothing Then
Application.EnableEvents = False
For Each Rng In WorkRng
If Not VBA.IsEmpty(Rng.Value) Then
Rng.Offset(0, xOffsetColumn).Value = Now
Rng.Offset(0, xOffsetColumn).NumberFormat = "dd-mm-yyyy, hh:mm:ss"
Else
Rng.Offset(0, xOffsetColumn).ClearContents
End If
Next
Application.EnableEvents = True
End If
End Sub
Office365
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Macro uitvoeren als bepaalde cel wordt aangepast

Bericht door RPG »

Aangezien je het ondertekent met Office365 heb ik het idee dat je op een verkeerd forum beland bent. Dit is een forum alle vormen van OpenOffice.

Als je pas begonnen bent met OpenOffice en mogelijk overgestapt bent van Excel is het beste advies om macro's proberen te vergeten. Macro's in OpenOffice zijn te moeilijk voor de doorsnee gebruiker ook al hebben ze het idee dat ze prima kunnen programmeren.

Het beste advies wat ik je kan geven is verzamel eerst je gegevens in mooie tabellen en probeer daarna met mooie ingebouwde hulpmiddelen de gewenste informatie er aan te onttrekken.

Wat zijn mooie ingebouwde hulpmiddelen
draaitabel
gegevensvalidatie
databasefuncties

Het bovenstaand verhaal is naar mijn idee goed bruikbaar voor welk spreadsheet dan ook; dus ook Excel. Functies komen later pas kijken wanneer je al een flinke gegevens verzameling hebt. Macro's worden door de meeste mensen gebruikt omdat ze niet eerst goed de helpfile bestudeerd hebben. Wanneer je echt een database wilt gaan gebruiken vergeet dan niet dat OpenOffice altijd een echt database programma heeft voor het verzamelen van gegevens.
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 uitvoeren als bepaalde cel wordt aangepast

Bericht door RPG »

Laat ik deze vraag verder beantwoorden alsof de gebruiker wil leren hoe een spreadsheet gebruikt moet worden. Ik heb onlangs ook zelf weer gemerkt dat het gebruiken van een nieuw programma niet zo gemakkelijk is. Ik heb mij verdiept hoe ik een Google werkblad voor eenvoudige doeleinden kan gebruiken. De moeilijkheid was ook nog dat ik het ontwerp deed op een computer en het wilde gebruiken op een telefoon. Toch was ik verbaasd wat er allemaal niet mogelijk was.

Ik maak allang duidelijk dat het verstandig is om te beginnen met het verzamelen van gegevens. Ik heb bovenstaande macro zo begrepen: dat er een huidige datum ingebracht moet worden nadat de gegevens opnieuw geladen worden in een nieuw document. In OpenOffice lijkt het mij op te lossen door de gegevens door middel van een databasedocument beschikbaar te maken voor andere document. Het is niet nodig om hiervoor een echt moeilijk database-programma(engine) te gebruiken. Voor beginners is het best mogelijk om de gegevens in een werkblad te verzamelen. De werkwijze is dan wel altijd eerst het werkblad met gegevens bijwerken en daarna pas werken met de tabellen gemaakt door de database-interface.

De begrippen het databasedocument, gegevensbronnen en wat ik net opschreef database-interface zijn ook voor beginners niet zo gemakkelijk te begrijpen. Maar het databasedocument geeft de mogelijkheid om de zelfde gegevens op een andere manier te ordenen. Zowel de ordening van rijen en kolommen kan veranderd worden.

Datum
In de macro was het probleem dat er een datum ingevoegd moest worden. Wanneer het databasedocument gebaseerd is op platte tabellen dan zijn hier de mogelijk opdrachten te vinden om de query uit te breiden: SQL functions for file based database drivers

Rapporten 1
Standaard heeft OpenOffice altijd al een kleine rapport generator gehad maar die is sinds versie 3.4 uitgebreid. Het is mijn idee dat iemand die gebruik wil maken van de uitgebreide rapport generator beter kan overstappen naar LibreOffice. Het is heel jammer dat de ontwikkeling van Apache Office bijna is stilgevallen.

Rapporten 2
De nieuwe rapport generator biedt de kans om mooie rapporten te maken. Wanneer er niet met platte tabellen gewerkt word dan is het ook mogelijk om gegevens te selecteren. Het is wel zo dat het leren omgaan met de nieuwe rapport generator niet zo eenvoudig is maar vergeleken met macro's in OpenOffice is het eenvoudig.

Nieuw werkblad blad genereren vanuit de Rapportgenerator
Standaard wordt er een tekst document gemaakt door de rapportgenerator maar het is zelfs mogelijk om een werkblad te maken door de rapportgenerator.

Stap voor stap
Wat hier boven beschreven wordt is meer een stap voor stap proces in het omgaan met de gegevens. Het is ook niet zo dat deze route de enigst mogelijke is. Feitelijk zijn hierop wel enige variaties te bedenken. De variaties worden ook pas duidelijk als de mogelijkheden aangeduid in de helpfile grondig bestudeerd worden.

FireBird is voorlopig niet de beste keus
Het is heel goed mogelijk om zowel LibreOffice als ook ApacheOffice naast elkaar op de zelfde computer te hebben. Persoonlijk ben ik van mening dat een ieder die niet zelfstandig kan beslissen welke database engine het beste is de keuze voor de HSQLDB engine voorlopig het beste maar dat is geen onderwerp van deze draad.
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
Plaats reactie