Ou est l'erreur?

Fermé
Dandy_danbe Messages postés 108 Date d'inscription mardi 18 mars 2014 Statut Membre Dernière intervention 11 avril 2022 - 20 août 2016 à 06:46
Dandy_danbe Messages postés 108 Date d'inscription mardi 18 mars 2014 Statut Membre Dernière intervention 11 avril 2022 - 22 août 2016 à 05:38
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 18337 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 27 septembre 2024 5 099
Modifié par Mike-31 le 20/08/2016 à 07:58
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 mardi 18 mars 2014 Statut Membre Dernière intervention 11 avril 2022
20 août 2016 à 08:39
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 18337 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 27 septembre 2024 5 099
20 août 2016 à 10:20
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 mardi 18 mars 2014 Statut Membre Dernière intervention 11 avril 2022
21 août 2016 à 08:01
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 18337 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 27 septembre 2024 5 099
21 août 2016 à 09:06
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 mardi 18 mars 2014 Statut Membre Dernière intervention 11 avril 2022
22 août 2016 à 05:38
Bonjour;
ok et merci beaucoup
0