Bonsoir à tous
Peut-on mettre plusieures instructions qui n'ont rien à voir entre elles dans un même "Private Sub Worksheet_Change(ByVal Target As Range)".
Si j'utilise deux "Private Sub Worksheet_Change(ByVal Target As Range)", j'ai un message d'erreur :
Erreur de compilation
Non ambigu détecté : Worksheet_Change
1) *******************************************
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Dim Rech As Variant
If Not Intersect(Target, Range("D6")) Is Nothing Then
Set Rech = Range("D8" & Range("D65536").End(xlUp).Row).Find(Target.Value, , xlValues, xlWhole, , , True)
If Not Rech Is Nothing Then
Application.Goto Reference:=Rech, Scroll:=True
End If
End If
Application.ScreenUpdating = False
If Application.CountIf(Range("H10:H1160"), Target) > 1 Then
Set cellFind = Range("H10:H1160").Find(Target, , , xlWhole)
While cellFind.Address = Target.Address
Set cellFind = Range("H10:H1160").FindNext(cellFind)
Wend
'MsgBox "Numéro opération déjà renseigné dans le tableau (colonne """ & Cells(1, cellFind.Column).Text & """) ! Veuillez vérifier SVP !", vbCritical, "Double saisie !"
MsgBox "Numéro opération déjà renseigné dans le tableau. Veuillez vérifier SVP !", vbCritical, "Double saisie !"
End If
End Sub
2) *******************************************
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Dim x As Integer
With Application
.Calculation = xlManual
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False
For x = 1 To Range("A65536").End(xlUp).Row
If Range("Z" & x).Value = "x" Then
Rows(x).EntireRow.Hidden = True
Else
Rows(x).EntireRow.Hidden = False
End If
Next
With Application
.Calculation = xlAutomatic
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False
Application.ScreenUpdating = True
End Sub
D'ailleurs est-ce vraiment Change que j'ai besoin pour mon deuxième ou un SelectionChange voire autre chose ?
Merci pour votre aide précieuse.
Cordialement.
Quincy
Peut-on mettre plusieures instructions qui n'ont rien à voir entre elles dans un même "Private Sub Worksheet_Change(ByVal Target As Range)".
Si j'utilise deux "Private Sub Worksheet_Change(ByVal Target As Range)", j'ai un message d'erreur :
Erreur de compilation
Non ambigu détecté : Worksheet_Change
1) *******************************************
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Dim Rech As Variant
If Not Intersect(Target, Range("D6")) Is Nothing Then
Set Rech = Range("D8" & Range("D65536").End(xlUp).Row).Find(Target.Value, , xlValues, xlWhole, , , True)
If Not Rech Is Nothing Then
Application.Goto Reference:=Rech, Scroll:=True
End If
End If
Application.ScreenUpdating = False
If Application.CountIf(Range("H10:H1160"), Target) > 1 Then
Set cellFind = Range("H10:H1160").Find(Target, , , xlWhole)
While cellFind.Address = Target.Address
Set cellFind = Range("H10:H1160").FindNext(cellFind)
Wend
'MsgBox "Numéro opération déjà renseigné dans le tableau (colonne """ & Cells(1, cellFind.Column).Text & """) ! Veuillez vérifier SVP !", vbCritical, "Double saisie !"
MsgBox "Numéro opération déjà renseigné dans le tableau. Veuillez vérifier SVP !", vbCritical, "Double saisie !"
End If
End Sub
2) *******************************************
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Dim x As Integer
With Application
.Calculation = xlManual
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False
For x = 1 To Range("A65536").End(xlUp).Row
If Range("Z" & x).Value = "x" Then
Rows(x).EntireRow.Hidden = True
Else
Rows(x).EntireRow.Hidden = False
End If
Next
With Application
.Calculation = xlAutomatic
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False
Application.ScreenUpdating = True
End Sub
D'ailleurs est-ce vraiment Change que j'ai besoin pour mon deuxième ou un SelectionChange voire autre chose ?
Merci pour votre aide précieuse.
Cordialement.
Quincy
Dernière édition: