Workbook_sheetChange + modification de contenu d'une cellule

Bonjour,

J'ai un souci avec la fonction workbook_sheetchange.

Voici le code

Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
'Application.ScreenUpdating = False
If ActiveSheet.Name = "SR" Then
rempla
End If
'Application.ScreenUpdating = True
If sh.Name = "Input" Then Exit Sub
If sh.CodeName = "REPO" Then Exit Sub
If sh.Name = "Configuration" Then Exit Sub
If Target.Row = 2 Or Target.Row = 7 Then
Refresh
Worksheets("input").Cells(14, sh.Index + 2).Formula = sh.Range("codePf")
Worksheets("input").Cells(17, sh.Index + 2).Formula = "=PortfolioDisponibilites(" & sh.Index & ")"
End If

End Sub

Le problème est que le module "rempla" que j'ai crée est destiné à remplacer le "." par "," dans un ensemble de cellules dans mon fichier.

Sauf que dès que les remplacements commencent, la fonction workbook_sheetchange détecte ça comme un changement et relance depuis le début la procédure, créant une boucle que je ne sais contourner.

Pourriez-vous m'aider svp?

Merci d'avance.

Thomas

Bonjour

Rajoute en début de macro de ta feuille

Application.EnableEvents=false

et à la fin et aussi avant chaque EXIT SUB

Application.EnableEvents=true

Bonjour

Autre solution qui évite notamment de perdre les événements si votre code plante entre les deux instructions Application.EnableEvents, c'est faire ceci :

Votre début du code :

Dim encours as Boolean
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
If encours = true then Exit Sub
...

ensuite après votre instruction Refresh (ou avant --> à tester), mettez ceci

encours = True

Et avant le END SUB, mettez ceci

encours = False

si ok-->

Cordialement

Rechercher des sujets similaires à "workbook sheetchange modification contenu"