XL 2010 Cumuler les Private Sub Worksheet_Change

Francky79

XLDnaute Occasionnel
Bonsoir le forum,

Il y a t'il une solution pour cumuler deux Private Sub Worksheet_Change dans une même feuille ?
Mon premier code:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i&
Set Target = Intersect(Target, [U:U], UsedRange)
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
On Error Resume Next
With Feuil7 'CodeName à adapter
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    For Each Target In Target 'si entrées/effacements multiples
        If Target.Row > 1 Then
            If LCase(Target) = "t" Then
                i = 0
                i = Application.Match(Target(1, 0), .Columns(1), 0)
                If i = 0 Then i = .Cells(.Rows.Count, 1).End(xlUp).Row + 1: .Cells(i, 1) = Target(1, -17)
                Hyperlinks.Add Target(1, 2), "", .Name & "!" & .Cells(i, 1).Address(0, 0), TextToDisplay:="OA"
            ElseIf Target = "" Then
                Target(1, 2).Clear 'RAZ
                .Rows(Application.Match(Target(1, -17), .Columns(1), 0)).Delete
            End If
        End If
    Next
End With
[V:V].HorizontalAlignment = xlCenter 'centrage
Application.EnableEvents = True 'réactive les évènements
End Sub

Et mon deuxième code:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 3 And Target.Count = 1 Then ' colonne 3 seulement
    If Target.Comment Is Nothing Then Target.AddComment
    Target.Comment.Text Text:=Format(Date, "dd/mm/yy")
    Target.Comment.Shape.TextFrame.AutoSize = True
  End If
End Sub

J'ai essayé plusieurs combinaisons mais pas moyen de le faire marcher.

Merci de votre aide.
 

fanch55

XLDnaute Barbatruc
Bonsoir,
On a du mal à cerner votre problème .
Vous avez 2 exemples de Sub pour le même événement et vous désirez que les 2 s’exécutent .
Pourquoi ne pas mettre le code du 2ème exemple en haut de celui du 1er exemple ?

Sinon, sans un classeur exemple expurgé, les intervenants vont avoir du mal à vous aider.
 

Phil69970

XLDnaute Barbatruc
Francky79, Fanch55, le forum

VB:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 3 And Target.Count = 1 Then ' colonne 3 seulement
    If Target.Comment Is Nothing Then Target.AddComment
    Target.Comment.Text Text:=Format(Date, "dd/mm/yy")
    Target.Comment.Shape.TextFrame.AutoSize = True
 End If

Dim i&
Set Target = Intersect(Target, [U:U], UsedRange)
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
On Error Resume Next
With Feuil7 'CodeName à adapter
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    For Each Target In Target 'si entrées/effacements multiples
        If Target.Row > 1 Then
            If LCase(Target) = "t" Then
                i = 0
                i = Application.Match(Target(1, 0), .Columns(1), 0)
                If i = 0 Then i = .Cells(.Rows.Count, 1).End(xlUp).Row + 1: .Cells(i, 1) = Target(1, -17)
                Hyperlinks.Add Target(1, 2), "", .Name & "!" & .Cells(i, 1).Address(0, 0), TextToDisplay:="OA"
            ElseIf Target = "" Then
                Target(1, 2).Clear 'RAZ
                .Rows(Application.Match(Target(1, -17), .Columns(1), 0)).Delete
            End If
        End If
    Next
End With
[V:V].HorizontalAlignment = xlCenter 'centrage
Application.EnableEvents = True 'réactive les évènements
End Sub

Sinon un fichier anonyme serait le bienvenu...
@Phil69970
 

Discussions similaires