VBA vraag wat is fout aan de code

Status
Niet open voor verdere reacties.

Hylas

Gebruiker
Lid geworden
5 mrt 2012
Berichten
150
Wat is er nu mis met deze code, ik kom er even niet uit, zal wel simpel zijn maar ik zie hem even niet

HTML:
Private Sub Worksheet_Change(ByVal Target As Range)
    

If Target.Column = 18 And Target.Value > 0 Then
With Target
.Offset(0, 4) = Date
.Offset(0, 5) = Time

If Target.Column = 24 And Target.Value > 0 Then
With Target
.Offset(0, 1) = Date
.Offset(0, 2) = Time

Application.DisplayAlerts = False

End With

End If

End Sub
 
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  If (Target.Column = 18 Or Target.Column = 24) And Target.Value > 0 Then Target.Offset(, 1 - 3 * (Target.Column = 18)).Resize(, 2) = Array(Date, Time)
End Sub
 
Wat er aan je code fout is, is dat je een End With en een End If mist.
Daarnaast moet die Application.DisplayAlerts eruit.
 
Laatst bewerkt:
Je zal een with moeten afsluiten met een End with en zo ook een IF moeten afsluiten met END IF.

Maar die melding heb je toch ook wel gekregen.
 
Schermafbeelding 2017-09-14 om 18.16.47.jpg dan krijg ik deze melding, en ik zoek het voor de gehele rij
 
Laatst bewerkt:
Dan heb je het vast niet goed gedaan of de melding komt ergens anders vandaan.
Beter plaats je je document.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 18 And Target.Value > 0 Then
        With Target
            .Offset(0, 4) = Date
            .Offset(0, 5) = Time
        End With
    End If
    
    If Target.Column = 24 And Target.Value > 0 Then
        With Target
            .Offset(0, 1) = Date
            .Offset(0, 2) = Time
        End With
    End If
End Sub

En heb je die van snb al bekeken?
 
Yeah goed gedaan Edmor thanks

Dan heb je het vast niet goed gedaan of de melding komt ergens anders vandaan.
Beter plaats je je document.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 18 And Target.Value > 0 Then
        With Target
            .Offset(0, 4) = Date
            .Offset(0, 5) = Time
        End With
    End If
    
    If Target.Column = 24 And Target.Value > 0 Then
        With Target
            .Offset(0, 1) = Date
            .Offset(0, 2) = Time
        End With
    End If
End Sub

En heb je die van snb al bekeken?
 
Ok, maar goed is dat nog niet.
Selecteer maar eens een aantal cellen op dat blad en druk dan op de DEL toets.
Kijk eens naar deze:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count = 1 Then
        Select Case Target.Column
            Case 18, 24
                With Target
                    .Offset(0, 4) = Date
                    .Offset(0, 5) = Time
                End With
        End Select
    End If
End Sub

Die van snb is mooier maar deze is makkelijker te lezen voor je denk ik.
 
Laatst bewerkt:
Ook deze werkt Edmoor, maar dan is de offset ook iets verder, ik zou de rijen kunnen verbergen maar de eerste oplossing van jou werkt prima, die van snb geeft bij mij juist een foutcode, werk in office 2016 dat zou niets uit moeten maken denk ik.
maar ik ben er blij mee hoor.
Ok, maar goed is dat nog niet.
Selecteer maar eens een aantal cellen op dat blad en druk dan op de DEL toets.
Kijk eens naar deze:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count = 1 Then
        Select Case Target.Column
            Case 18, 24
                With Target
                    .Offset(0, 4) = Date
                    .Offset(0, 5) = Time
                End With
        End Select
    End If
End Sub

Die van snb is mooier maar deze is makkelijker te lezen voor je denk ik.
 
Die doet precies hetzelfde, dus met dezelfde offset. Alleen is het probleem van meerdere cellen er in opgelost en staat het plaatsen van de datum en tijd er maar 1x in i.p.v. 2x dezelfde code.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan