Problème code

Bonjour à tous,

J'essaie d'incrémenter le nom de mes feuilles lorsqu'il est identique (avec 2 cas nom <31 caractères ou >31). Malheureusement il y a une erreur dans mon code et le nom des feuilles n'est incrémenté que jusqu'à 2...

Quelqu'un aurait-il la gentillesse de regarder ce qui ne va pas avec mon code ??

Merci,

Bonne journée,

Amicalement

Private Sub Worksheet_Change(ByVal Target As Range)
Dim NomFeuille As String, Sh As Worksheet, i As Long
Application.EnableEvents = False
  i = 1
1 Err = 0
  i = i + 1
If Len(NomFeuille) < 31 Then
NomFeuille = "nom " & [B4] & " - prénom" & [C4] & " - 1"
End If
If Len(NomFeuille) > 31 Then
NomFeuille = Left(NomFeuille, 22) & "... - 1"
End If
For Each Sh In Worksheets
If Sh.Name = NomFeuille Then
If Len(NomFeuille) > 31 Then
NomFeuille = Left(NomFeuille, 22) & "... - " & i
     End If

If Len(NomFeuille) < 31 Then
NomFeuille = "nom " & [B4] & " - prénom " & [C4] & " - " & i
End If

End If
If Err Then GoTo 1
Next
ActiveSheet.Name = NomFeuille
Application.EnableEvents = True

End Sub

Bonjour

A tester

Private Sub Worksheet_Change(ByVal Target As Range)
Dim NomFeuille As String, I As Long

  On Error Resume Next
  Do
    Err.Clear
    I = I + 1
    NomFeuille = "nom " & [B4] & " - prénom" & [C4] & " - " & I
      If Len(NomFeuille) > 31 Then
      NomFeuille = Left(NomFeuille, 22) & "... - " & I
    End If
    ActiveSheet.Name = NomFeuille
  Loop Until Err.Number = 0
End Sub

Si j'ai compris ce code est dans chaque feuille

Il serait peut-être envisageable de le mettre seulement dans le module ThisWorrkbook

dans ce cas il faudrait connaitre les noms des pages qui ne doivent pas être modifiées

Bonjour Banzai64, le forum,

Comme d'habitude, ce code correspond parfaitement à mes attentes ! Merci beaucoup !

Oui, effectivement, je vais essayer de placer ce code dans ThisWorkbook pour alléger le code !

Merci encore,

Bonne soirée,

Amicalement

Rechercher des sujets similaires à "probleme code"