Ou est l'erreur?

Dandy_danbe Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   -  
Dandy_danbe Messages postés 108 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

Mike-31 Messages postés 18406 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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
Dandy_danbe Messages postés 108 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
Mike-31 Messages postés 18406 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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
Dandy_danbe Messages postés 108 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
Mike-31 Messages postés 18406 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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
Dandy_danbe Messages postés 108 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour;
ok et merci beaucoup
0