Erreur de compilation: Non ambigu détecté Worksheet_Change

  • Initiateur de la discussion Initiateur de la discussion Quincy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Quincy

XLDnaute Occasionnel
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
 
Dernière édition:
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é 😛...
Bon courage 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
4
Affichages
223
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
318
Retour