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

exell probleem formule tijd weergeven in cel na ingave in ander cel

Status
Niet open voor verdere reacties.

ginogcsbelgie

Gebruiker
Lid geworden
17 nov 2014
Berichten
63
Hallo,

Ik ben met een exell lijst bezig, en ik zou graag via een formule als ik bv in cel a2 het getal 8000,8001 of 8002 ingeef automatisch in bv cel b2 de tijd weergeven van deze ingave.
Weet hier iemand een formule voor aub?
Alvast bedankt
 
En hoe zou deze moeten weergegeven worden?
plaats even een voorbeeld bestandje met de nodige uitleg
 
Zet de eigenschappen van B2 op Tijd en dan deze formule er in:
=ALS(OF(A2=8000;A2=8002;A2=8003);NU();"")
 
Laatst bewerkt:
nog 1 probleem aan deze formule ,
als ik bv in een a2 8000 in geef wordt de tijd in b2 gezet, dat is in orde
maar als ik dit ook doe in bv a3 en de tijd komt in b3, dan veranderd b2 ook terug mee naar de nieuwe tijd en dat zou niet mogen!
eens geregistreerd zou die tijd niet meer mogen veranderen.
=ALS(OF(A2=8000;A2=8001;A2=8002;A2=8003;A2=8004;A2=8005;);NU();"")

kan iemand me hier nog mee helpen aub
alvast bedankt
 
Verwijder de functie en zet dit achter het werkblad:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Select Case Target.Column
        Case 1: Call StaticTime(Target)
    End Select
    Application.EnableEvents = True
End Sub

Sub StaticTime(Target As Range)
    Select Case Target.Value
        Case 8000 To 8005:
            Target.Offset(, 1).Value = Time()
        Case Else
            Target.Offset(, 1).Value = ""
    End Select
End Sub

Sla het document op als document met macro's.
 
Edmoor hartelijk dank werkt perfect, alleen heb ik in het werkblad al een code staan, en als ik de deze er bij zet geeft hij een foutcode dat ik twee keer dezelfde argumenten gebruik als ik deze erbij zet

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$a$1" Then Exit Sub
    Dim Rij, Waarde As Integer
    Rij = Target.Row
    If Target.Column = 8 Then
    
        Waarde = Target.Value
        If Waarde = 0 Then Range(Cells(Rij, "A"), Cells(Rij, "G")).Interior.Color = xlNone: Exit Sub
        Select Case Waarde
            Case 8000
                Range(Cells(Rij, "A"), Cells(Rij, "G")).Interior.Color = vbGreen
                MsgBox "Bedankt voor de registratie van uw uitgevoerde werken Sebastien"
                
            Case 8001
                 Range(Cells(Rij, "A"), Cells(Rij, "G")).Interior.Color = vbGreen
            Case 8002
                 Range(Cells(Rij, "A"), Cells(Rij, "G")).Interior.Color = vbGreen
            Case 8003
                 Range(Cells(Rij, "A"), Cells(Rij, "G")).Interior.Color = vbGreen
            Case 8004
                 Range(Cells(Rij, "A"), Cells(Rij, "G")).Interior.Color = vbGreen
            Case 8005
                 Range(Cells(Rij, "A"), Cells(Rij, "G")).Interior.Color = vbGreen
             Case 1
                 Range(Cells(Rij, "A"), Cells(Rij, "j")).Interior.Color = vbRed
        End Select
    End If

End Sub

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Select Case Target.Column
        Case 1: Call StaticTime(Target)
    End Select
    Application.EnableEvents = True
End Sub

Sub StaticTime(Target As Range)
    Select Case Target.Value
        Case 8000 To 8005:
            Target.Offset(, 1).Value = Time()
        Case Else
            Target.Offset(, 1).Value = ""
    End Select
End Sub
 
Gebruik voor de verkleuring de daarvoor ingebouwde Exceloptie: voorwaardelijke opmaak.
 
Bij een reeds bestaande Worksheet_Change moet je ze uiteraard samenvoegen.
Een routinenaam mag maar 1x in een module bestaan.
 
bedankt edmoor en snb voor de hulp , maar dan ga ik wel proberen met voorwaardelijke opmaak en uw stukje code want het samen voegen lukt me niet
krijg altijd errors geretourneerd.
 
Hier het ik het hele spul voor je samen gevoegd. Probeer het eens:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then Exit Sub
    
    Application.EnableEvents = False
    Select Case Target.Column
        Case 1
            Select Case Target.Value
                Case 8000 To 8005:
                    Target.Offset(, 1).Value = Time()
                Case Else
                    Target.Offset(, 1).Value = ""
            End Select
        Case 8
            Select Case Target.Value
                Case 0
                    Range(Cells(Target.Row, "A"), Cells(Rij, "G")).Interior.Color = vbRed
                Case 1
                    Range(Cells(Target.Row, "A"), Cells(Rij, "J")).Interior.Color = xlNone
                Case 8000
                    Range(Cells(Target.Row, "A"), Cells(Rij, "G")).Interior.Color = vbGreen
                    MsgBox "Bedankt voor de registratie van uw uitgevoerde werken Sebastien"
                Case 8001 To 8005
                    Range(Cells(Target.Row, "A"), Cells(Rij, "G")).Interior.Color = vbGreen
            End Select
    End Select
    Application.EnableEvents = True
End Sub
 
bedankt edmoor voor de hulp, als ik deze in mijn exell bestand plak in de programmacode van het werkblad en ik tik bv in rij H 8000 in, dan krijg ik de tijd in rij J , das perfect
maar de cellen kleuren niet groen bij het intikken van de 8000 in rij H ?
ik denk dat ik iets over het hoofd zie.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then Exit Sub
    
    Application.EnableEvents = False
    Select Case Target.Column
        Case 8
            Select Case Target.Value
                Case 8000 To 8005:
                    Target.Offset(, 2).Value = Time()
                Case Else
                    Target.Offset(, 2).Value = ""
            End Select
        Case 8
            Select Case Target.Value
                Case 0
                    Range(Cells(Target.Row, "A"), Cells(Rij, "G")).Interior.Color = vbRed
                Case 1
                    Range(Cells(Target.Row, "A"), Cells(Rij, "G")).Interior.Color = xlNone
                Case 8000
                    Range(Cells(Target.Row, "A"), Cells(Rij, "G")).Interior.Color = vbGreen
                    
                Case 8001 To 8005
                    Range(Cells(Target.Row, "A"), Cells(Rij, "G")).Interior.Color = vbGreen
      End Select
    End Select
    Application.EnableEvents = True
End Sub
 
Je hebt de code aangepast en daarom werkt het niet. In #1 staat dat de tijd ingevuld moet worden als je een bepaalde waarde in kolom A intikt. Dat moet dus H zijn? Dan wordt het ineens anders.
Wees precies bij voorbeelden.
 
Laatst bewerkt:
Ja heb ze aangepast omdat ik mijn getal in rij 8 moet invoeren om het resultaat te krijgen in rij 10 en dat werkt perfect met de tijd weergave maar niet met de kleuren maar ga uw orginele code eerst eens plakken in een leeg exell blad , alvast bedankt voor de hulp
 
Volgens mijn originele voorbeeld wordt de tijd gevuld in kolom B bij een bepaalde ingave in kolom A en de kleuren aangepast bij een bepaalde ingave in kolom H.
Precies volgens je voorbeelden.
 
Laatst bewerkt:
heb jou orginele code in een leeg blad geplakt edmoor en als ik in rij H 8000 intik krijg ik een fout van visual basic in case 8000 ?
als ik in rij A 8000 intik dat werkt perfect.
 
Ik heb nog wat overbodige zaken uit je eigen gedeelte gehaald:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then Exit Sub
    
    Application.EnableEvents = False
    Select Case Target.Column
        Case 1
            Select Case Target.Value
                Case 8000 To 8005:
                    Target.Offset(, 1).Value = Time()
                Case Else
                    Target.Offset(, 1).Value = ""
            End Select
        Case 8
            Select Case Target.Value
                Case 0
                    Cells(Target.Row, "G").Interior.Color = vbRed
                Case 1
                    Cells(Target.Row, "J").Interior.Color = xlNone
                Case 8000
                    Cells(Target.Row, "G").Interior.Color = vbGreen
                    MsgBox "Bedankt voor de registratie van uw uitgevoerde werken Sebastien"
                Case 8001 To 8005
                    Cells(Target.Row, "G").Interior.Color = vbGreen
            End Select
    End Select
    Application.EnableEvents = True
End Sub
 
Laatst bewerkt:
Hartelijk dank Edmoor voor de hulp, en alles werkt perfect met uw laatste code.
Ben er ook in geslaagd om nog wat dingen bij te voegen en andere rijen te laten inkleuren na de ingave van een getal
Bij deze hou ik deze topic voor gesloten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan