Erreur de compilation: Non ambigu détecté Worksheet_Change

Quincy

XLDnaute Occasionnel
Supporter XLD
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:D" & 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:

JNP

XLDnaute Barbatruc
Re : Erreur de compilation: Non ambigu détecté Worksheet_Change

Bonsoir Quincy :),
Effectivement, avoir 2 Sub du même nom dans le même module est interdit (Laquelle lancer ?).
Tu peux soit regrouper les codes (attention, le premier quitte la sub en fonction de la cellule qui vient de changer, donc c'est la deuxième qu'il faut mettre en tête).
Tu peux aussi utiliser Selection_Change pour la 2ème, vu que tu n'utilises pas la valeur de Target.
Tu peux enfin appeler la 2ème Sub CalculAFaire par exemple, et mettre au début de la première Call CalculAFaire.
Il y a certainement d'autres possibilités que je n'ai pas évoqué :p...
Bon courage :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 306
Messages
2 087 094
Membres
103 467
dernier inscrit
Pandiska