Ou est l'erreur?

Bonjour, je ne suis pas sur, j'ai ajouter un code après End Sub et ai je bien fait
merci de vos reponces

Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
If Target.Count > 1 Then Exit Sub
If Target.Address = "$E$6" Then
With Worksheets("Betaalt")
Set C = .Columns(2).Find(Target.Offset(-3), , xlValues, xlWhole)
If Not C Is Nothing Then
.Cells(C.Row, Columns.Count).End(xlToLeft).Offset(, 1).Resize(, Target.Value).Value = "B"
MsgBox "Report effectué."
Application.EnableEvents = False
Target.Select
Target.ClearContents
Application.EnableEvents = True
End If
End With
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
If Target.Count > 1 Then Exit Sub
If Target.Address = "$E$17" Then
With Worksheets("Berekening")
Set C = .Columns(2).Find(Target.Offset(-3), , xlValues, xlWhole)
If Not C Is Nothing Then
.Cells(C.Row, Columns.Count).End(xlToLeft).Offset(, 1).Resize(, Target.Value).Value = "B"
MsgBox "Report effectué."
Application.EnableEvents = False
Target.Select
Target.ClearContents
Application.EnableEvents = True
End If
End With
End If
End Sub

4 réponses

  1. Bonjour,

    dans les propriétés d'un onglet tu ne peux avoir qu'une seule syntaxe
    Private Sub Worksheet_Change(ByVal Target As Range)

    il te faut donc supprimer le
    End Sub
    et
    Private Sub Worksheet_Change(ByVal Target As Range)
    et
    If Target.Count > 1 Then Exit Sub
    qui se trouvent au centre de ton code ainsi que cette variable
    Dim C As Range déjà présente en début de code

    tu peux également simplifier
    Target.Select
    Target.ClearContents
    par
    Target.ClearContents

    quoi que en regardant ton code, il s'applique à deux onglets
    Betaalt et Berekening
    il convient donc de mettre un code dans chaque propriété onglet


    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
    1. Bonjour;
      j'ai corrige le code, mais je ne comprend pas
      quoi que en regardant ton code, il s'applique à deux onglets
      Betaalt et Berekening
      il convient donc de mettre un code dans chaque propriété onglet?
      le code fonctionne mais pas comme je le voudrais!
      le B en fin de colonne a la place de à droite la dernier celulle pleine
      il faut que le "B" soit sur la ligne (6)
      exemple les celulles ( ligne 6 b,c,d,)contienne deja un "B" il faut ajoute un " b"(ligne 6 e6)
      0
      1. Re,

        clic droit sur l'onglet Betaalt/visualiser le code/coller ce code
        Private Sub Worksheet_Change(ByVal Target As Range)
        Dim C As Range
        If Target.Count > 1 Then Exit Sub
        If Target.Address = "$E$6" Then
        With Worksheets("Betaalt")
        Set C = .Columns(2).Find(Target.Offset(-3), , xlValues, xlWhole)
        If Not C Is Nothing Then
        .Cells(C.Row, Columns.Count).End(xlToLeft).Offset(, 1).Resize(, Target.Value).Value = "B"
        MsgBox "Report effectué."
        Application.EnableEvents = False
        Target.Select
        Target.ClearContents
        Application.EnableEvents = True
        End If
        End With
        End If
        End Sub


        pour l'instant ce code colle des B à partir de la colonne B
        si en E6 tu saisis 2 deux B sont reportés en B2 et C2
        si tu resaisis en E6 exemple 4 le code retranscrit quatre B à la ligne suivante soit B2, C2, D2 et E4 etc ...

        si ce n'est pas ce que tu attends explique tes attentes
        0
        1. Bonjour;
          merci de votre réponce, ce code je l'ai reçu de cyruis
          ce que je voudrais c'est ajouter un deuxime code si c'est possible
          0
      2. Re,

        tout est possible si tu expliques ce que tu veux faire ce code s'applique à la feuille nommée "Betaalt"
        Private Sub Worksheet_Change(ByVal Target As Range)
        Dim C As Range
        If Target.Count > 1 Then Exit Sub
        If Target.Address = "$E$6" Then
        With Worksheets("Betaalt")
        Set C = .Columns(2).Find(Target.Offset(-3), , xlValues, xlWhole)
        If Not C Is Nothing Then
        .Cells(C.Row, Columns.Count).End(xlToLeft).Offset(, 1).Resize(, Target.Value).Value = "B"
        MsgBox "Report effectué."
        Application.EnableEvents = False
        Target.ClearContents
        Application.EnableEvents = True
        End If
        End With
        End If
        End Sub

        si tu veux utiliser ce code pour ta feuille "Berekening" il faut coller ce code dans les propriétés de cette feuille et non dans celle de la feuille "Betaalt"

        Private Sub Worksheet_Change(ByVal Target As Range)
        Dim C As Range
        If Target.Count > 1 Then Exit Sub
        If Target.Address = "$E$6" Then
        With Worksheets("Berekening")
        Set C = .Columns(2).Find(Target.Offset(-3), , xlValues, xlWhole)
        If Not C Is Nothing Then
        .Cells(C.Row, Columns.Count).End(xlToLeft).Offset(, 1).Resize(, Target.Value).Value = "B"
        MsgBox "Report effectué."
        Application.EnableEvents = False
        Target.ClearContents
        Application.EnableEvents = True
        End If
        End With
        End If
        End Sub
        0
        1. Bonjour;
          ok et merci beaucoup
          0