• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Snapshot maken van een dynamische cel

Status
Niet open voor verdere reacties.

pemann

Gebruiker
Lid geworden
15 sep 2011
Berichten
17
Dames en Heren Kenners,

In excel heb ik lopende klok (VBA). Door met voorwaardes te werken en met tijden te rekenen kom ik tot een dynamische timer. Deze timer wil ik gebruiken om de tijd op tijdstip x af te tellen naar 0. Tijdstip x wordt bepaald door ee logische 1 op een gegeven moment (TRUE). Mijn timer ververst echter om de 5 minuten en loopt niet af naar 0. De bedoeling is dat dit wel gebeurd als mijn gestelde voorwaarde TRUE is. Dit zou kunnen door een snapshot te maken van de dynamische cel op tijdstip x en deze dan in een andere cel als statische tijd te gebruiken.

U voelt hem al, is het mogelijk om van een dynamische cel een statische andere cel te maken op het moment dat aan de voorwaarde is voldaan.

Bij voorbaat dank voor de reacties,

Paul
 
Een beetje uit de losse pols maar je zou zoiets kunnen maken.
Code:
If [voorwaarde] = True and Range("B1").Value = "" Then Range("B1").Value = Range("A1").Value
Je moet dan wel nog de voorwaarde in deze code aanpassen.
Indien aan de voorwaarde wordt voldaan en cel B1 is leeg dan wordt in cel B1 de waarde van A1 geplaatst.
Ook al verandert cel A1, cel B1 zal niet mee veranderen.

Met vriendelijke groet,


Roncancio
 
In VBA heb ik de code geplant

If ("F1") > 0 = True And Range("B1").Value = "" Then Range("B1").Value = Range("A1").Value

Echter nu krijg ik de melding dat mijn project gereset wordt.
Vervolgens na accepteren loopt mijn klok niet meer en cel B1 blijft leeg.
 
Code:
If [B]Range[/B]("F1").Value > 0 = True And Range("B1").Value = "" Then Range("B1").Value = Range("A1").Value

Je moet wel Range toevoegen anders weet VBA wat je bedoelt.

Met vriendelijke groet,


Roncancio
 
Correct, maar dit heeft nog steeds hetzelfde effect. Klok stopt en B1 blijft leeg. Ik heb de codegeplakt in VBA op de "sheet" waar de actie moet plaatsvinden.
 
If Range("F3").Value > 0 = True And Range("B1").Value = "" Then Range("B1").Value = Range("A1").Value

als ik wil afsluiten om mijn klok weer aan de gang te krijgen krijg ik een "invalid outside procedure" waarbij F3 in blauw is gehi-light
 
Code:
If Range("F3").Value > 0 And Range("B1").Value = "" Then Range("B1").Value = Range("A1").Value

De = True in het begin hoort er niet.

Met vriendelijke groet,


Roncancio
 
Nog steeds hetzelfde probleem. Heb geprobeerd om de file als bijlage te uploaden maar dat functioneerd op het moment niet. Mijn dienst zit er bijna op, maar zal morgen weer proberen om de file te plaatsen.

Voor nu erg bedankt voor uw tijd en nog een goede avond
 
Bedankt voor de terugkoppeling.
Het zou inderdaad wel heel handig zijn als je het bestand of in ieder geval de code hier kan plaatsen.

Met vriendelijke groet,


Roncancio
 
Bekijk bijlage lopende klok noodstroom laatste.xlsm

Bij deze het bestandje bijgevoegd. De code is nu nog niet ingebracht omdat hij anders niet meer werkt.

Wat ik geprobeerd heb is het planten van volgende code in VBA, in het veldje van blad 2.

If Range("F3").Value > 0 And Range("B1").Value = "" Then Range("B1").Value = Range("A1").Value
 
Wat ik nog gevonden heb is het gebruiken van paste special. Als ik de actie handmatig uitvoer werkt het ook perfect door te kiezen voor value.

Om deze actie nu te koppelen aan een voorwaarde zou een oplossing moeten zijn. In VBA zou dit mogelijk moeten zijn. Echter ik ben een leek in VBA.

Doel is dus weer om "IF" cel F3 > 0, onderstaande actie uit te voeren en een kopie te maken van cel A1 naar cel H6

Code:
Sub QuickSaveValue() 
     
    With ActiveCell 
        .Copy 
        .PasteSpecial xlPasteValues 
    End With 
    Application.CutCopyMode = False 
End Sub
 
In mij worksheet heb ik geplant:

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("L1").Value > 0 Then
    
    Range("A1").Select
    Selection.Copy
        Range("L6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Else: Range("L6").Value = Range("O1").Value
    End If
    
End Sub

Het probleem is dat als mijn waarde > 0 en dat blijft dan zal de actie blijven plaatsvinden. Mijn vraag is nu hoe kan ik als de waarde verandert van 0 naar 1, zolang de waarde 1 blijft de actie stoppen.

Op het moment dat de waarde 1 wordt moet de actie dus pas weer worden uitgevoerd als de waarde verandert naar 0. (iets in de trend van If change value?)
 
Alleen als cel L1 wijzigt én L1 is groter dan 0 dan krijgt cel L6 de waarde van A1.
Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("L1")) Is Nothing And Range("L1").Value > 0 Then
    Range("L6").Value = Range("A1").Value
ElseIf Not Intersect(Target, Range("L1")) Is Nothing Then
    Range("L6").Value = Range("O1").Value
End If
    
End Sub
In je code had je ook een Else gebruikt, maar dan blijft Excel berekenen omdat er steeds een cel verandert.

Met vriendelijke groet,


Roncancio
 
HET IS GELUKT,

Toch weer terug met de eerste code aan het werk gegaan, wat bleek stomme fout gemaakt. Hij werkt perfect.

dit is hem:
HTML:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

If Range("L1").Value > 0 And Range("M1").Value = Range("O1").Value Then Range("M1").Value = Range("A1").Value
If Range("L1").Value = 0 Then Range("M1").Value = Range("O1").Value
    

End Sub

Bij deze dus ERG BEDANKT Roncancio:thumb::thumb::thumb: Sorry dat ik je zo bezig heb gehouden maar ik heb weer veel geleerd
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan