• 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.

Printen van een tijd als cel = 1

  • Onderwerp starter Onderwerp starter Arito
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Arito

Gebruiker
Lid geworden
31 mei 2006
Berichten
140
Ik heb een sheet (zie voorbeeld) waarbij kolom B de waarde 0 of 1 heeft (afhankelijk van externe factoren). Ik wil graag dat cel E1 (de tijd) wordt gecopy paste (values) naar kolom C zodra er in kolom B een 1 komt te staan. Deze tijd in kolom C moet uiteraard daarna niet meer meelopen, alleen de waarde moet gekopieerd worden. Is dit mogelijk?

Nogmaals, bvd!
 

Bijlagen

dat zou b.v als volgt kunnen
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Column = 2 And Target.Value = 1 Then Target.Offset(0, 1) = Cells(1, 5)
End Sub


de waarde van cel E1 is in principe niet nodig je kunt in de code ook NOW() gebruiken.
zie bijlage
mvg leo
 

Bijlagen

Laatst bewerkt:
Kan ook met formule

Waarom dit oplossen met VBA? Het kan ook door een formule te plaatsen in de cel in kolom C. Dat zou dan bijv voor cel C5 dit moeten zijn:
Code:
=ALS(B5=1;WAARDE(NU());"")
Als je dit doortrekt naar alle cellen waar je de berekening wilt hebben, ben je klaar.

:)
 
Hallo,
Als ik in een cel de formule =waarde(nu()) neerzet, is de tijd wel veranderd als ik het bestand weer opnieuw open. (excel 2007)
Ik dacht dat de vragensteller nu juist wilde dat de tijd niet meer veranderde.

Kees
 
Klopt helemaal.

Ik heb het nu met de formules geprobeerd maar de tijd tikt dan door, en dat wil ik graag voorkomen. De oplossing van leofact lijkt goed te werken!
 
dat zou b.v als volgt kunnen
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Column = 2 And Target.Value = 1 Then Target.Offset(0, 1) = Cells(1, 5)
End Sub


de waarde van cel E1 is in principe niet nodig je kunt in de code ook NOW() gebruiken.
zie bijlage
mvg leo

Is het mogelijk om deze code met een knop te activeren? Dus dat de macro niet loopt als ik de sheet open, maar pas vanaf het moment dat ik op een knop druk?
 
Nog een vraag. Ik heb de sheet nu gemaakt zoals ik het wilde, maar de macro doet het toch niet helemaal zoals ik het wil. De kolom waarin de waarde van 0 naar 1 veranderd (kolom D in bijgevoegd bestand) is namelijk een formule die verwijst naar kolom C (de formule in die kolom heb ik verwijderd omdat je daar een add-in voor nodig hebt). Als er in kolom C een waarde > 0 komt, wordt kolom D 1, maar dan komt er geen timestamp in kolom E. Die komt er enkel als ik een 1 tik in kolom D.

Weet je hier iets tegen?
 

Bijlagen

Je kunt bv een togglebutto gebruiken
In de bijlage draait de macro alleen als de log knop ingedrukt is.
Er wordt gereageerd op verandering in de c en gekeken naar de waarde van de D
(type voor de test een 1 in c)
Of er goed op de add in wordt gereageerd weet ik niet zonder deze add in.

mvg leo
 

Bijlagen

Laatst bewerkt:
Voor het kopieëren heb je hier voldoende aan

Code:
Sub LOGTIME()
    Application.ScreenUpdating = False
    [G4:Q4].Copy
    Sheets("LOG").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
    [E1:E436].Copy
    Sheets("TIME").Range("IV1").End(xlToLeft).Offset(0, 1).PasteSpecial xlPasteValuesAndNumberFormats
    With Application
        .CutCopyMode = False
        .ScreenUpdating = True
    End With
    [A1].Select
End Sub

Mvg

Rudi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan