Ou est l'erreur?

Dandy_danbe Messages postés 109 Date d'inscription   Statut Membre Dernière intervention   -  
Dandy_danbe Messages postés 109 Date d'inscription   Statut Membre Dernière intervention   -
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. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  2. Dandy_danbe Messages postés 109 Date d'inscription   Statut Membre Dernière intervention  
     
    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
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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. Dandy_danbe Messages postés 109 Date d'inscription   Statut Membre Dernière intervention  
       
      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
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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. Dandy_danbe Messages postés 109 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour;
      ok et merci beaucoup
      0